Skip to content

ICE with cross-crate projection #37291

Closed
Closed
@ziish

Description

Running rustdoc all testcases for this crate fails with an ICE. The relevant testcase is currently disabled. To enable it go to image/impl_core.rs:24 and remove the ignore marker.

rustc --version --verbose:

rustc 1.14.0-nightly (16eeeac78 2016-10-18)
binary: rustc
commit-hash: 16eeeac783d2ede28e09f2a433c612dea309fe33
commit-date: 2016-10-18
host: x86_64-pc-windows-msvc
release: 1.14.0-nightly
LLVM version: 3.9

This is the result of cargo test:

    Finished debug [unoptimized + debuginfo] target(s) in 0.0 secs
     Running target\debug\deps\img-7ec732e017a2f5eb.exe

running 4 tests
test px::test_arithmetic ... ok
test px::test_raw_buffer_funcs ... ok
test scalar::test_arithmetic ... ok
test image::test_image_buffer ... ok

test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured

   Doc-tests img

running 8 tests
test px::generic::PixelArithmetic_0 ... ok
test image::generics::Image_0 ... ok
test image::impl_core::ImageVal_0 ... FAILED
test px::generic::Pixel::calc_minimum_pitch_0 ... ok
test px::generic::Pixel_0 ... ok
test scalar::generic::Scalar_0 ... ok
test px::impl_core::PixelVal_0 ... ok
test scalar::impl_core::ScalarVal_0 ... ok

failures:

---- image::impl_core::ImageVal_0 stdout ----
        error: internal compiler error: ../src/librustc\traits\specialize/mod.rs:198: specializes: obligation `Obligation(predicate=Binder(ProjectionPredicate(ProjectionTy { trait_
ref: <_ as img::PixelArithmetic>, item_name: ScalarT(4511) }, _)),depth=1)` has inference types/regions

thread 'image::impl_core::ImageVal_0' panicked at 'Box<Any>', ../src/librustc_errors/lib.rs:656
stack backtrace:
   0:      0x7fee2c7f804 - <u32 as std::sys::IsZero>::is_zero::hb501b477ff597565
   1:      0x7fee2c7bca9 - std::panicking::Location::line::h756ee230b7a7fab3
   2:      0x7fee2c7c6ed - std::panicking::rust_panic_with_hook::hcd9d05f53fa0dafc
   3:      0x7fef3d128ea - <unknown>
   4:      0x7fef3d2608d - rustc_errors::Handler::bug::haca77c19c882b432
   5:      0x7fee197b2d5 - <rustc::util::ppaux::TraitAndProjections<'tcx> as core::fmt::Debug>::fmt::hb5d03a0e1370418a
   6:      0x7fee189b262 - rustc::session::bug_fmt::hde22f071bf5a80ea
   7:      0x7fee189af7c - rustc::session::bug_fmt::hde22f071bf5a80ea
   8:      0x7fee1975d31 - <rustc::util::ppaux::TraitAndProjections<'tcx> as core::fmt::Debug>::fmt::hb5d03a0e1370418a
   9:      0x7fee16c6dd7 - <unknown>
  10:      0x7fee19165d5 - rustc::ty::context::TyCtxt::free_region_map::h82e8c7df0d75ed07
  11:      0x7fee18d5cc6 - rustc::traits::specialize::specializes::hc06f881417f11f03
  12:      0x7fee18c8ae0 - rustc::traits::select::SelectionContext::evaluate_obligation_conservatively::h7dc149b5b7563089
  13:      0x7fee18c29da - rustc::traits::select::SelectionContext::evaluate_obligation_conservatively::h7dc149b5b7563089
  14:      0x7fee18c0da7 - rustc::traits::select::SelectionContext::evaluate_obligation_conservatively::h7dc149b5b7563089
  15:      0x7fee18c0430 - rustc::traits::select::SelectionContext::evaluate_obligation_conservatively::h7dc149b5b7563089
  16:      0x7fee18bfc9a - rustc::traits::select::SelectionContext::evaluate_obligation::h918f689b79ed78ea
  17:      0x7fee1da81e4 - rustc_typeck::check::method::<impl rustc_typeck::check::FnCtxt<'a, 'gcx, 'tcx>>::lookup_method_in_trait_adjusted::h23bf843644a86a1c
  18:      0x7fee1dce0d8 - rustc_typeck::check::op::<impl rustc_typeck::check::FnCtxt<'a, 'gcx, 'tcx>>::check_user_unop::hccfdc1643ed36810
  19:      0x7fee1dccd9c - rustc_typeck::check::op::<impl rustc_typeck::check::FnCtxt<'a, 'gcx, 'tcx>>::check_binop::h5fef06b12193950d
  20:      0x7fee1dcc782 - rustc_typeck::check::op::<impl rustc_typeck::check::FnCtxt<'a, 'gcx, 'tcx>>::check_binop::h5fef06b12193950d
  21:      0x7fee1dfa4ca - rustc_typeck::check::FnCtxt::check_struct_path::h0a3b8cb3a9a77f78
  22:      0x7fee1dfa066 - rustc_typeck::check::FnCtxt::check_struct_path::h0a3b8cb3a9a77f78
  23:      0x7fee1dfadf1 - rustc_typeck::check::FnCtxt::check_struct_path::h0a3b8cb3a9a77f78
  24:      0x7fee1dfa066 - rustc_typeck::check::FnCtxt::check_struct_path::h0a3b8cb3a9a77f78
  25:      0x7fee1e0accb - rustc_typeck::check::FnCtxt::check_stmt::he33c1a72110694ef
  26:      0x7fee1e0b1ca - rustc_typeck::check::FnCtxt::check_block_no_value::h45608011ee74f15e
  27:      0x7fee1dd5806 - <rustc_typeck::check::GatherLocalsVisitor<'a, 'gcx, 'tcx> as rustc::hir::intravisit::Visitor<'gcx>>::visit_ty::hd4c15b543ae85d6e
  28:      0x7fee1dd38b0 - rustc_typeck::check::check_drop_impls::hf0fd3120466d7e2f
  29:      0x7fee1dd7f79 - rustc_typeck::check::check_item_body::h3223fb19b212e96a
  30:      0x7fee1dd072b - rustc_typeck::check::check_item_bodies::ha98a70a8fce7849f
  31:      0x7fee1e4f563 - rustc_typeck::check_crate::hd5386d41de8aa25b
  32:      0x7fee205b815 - <rustc_driver::Compilation as core::fmt::Debug>::fmt::hfc4845a68da21d3e
  33:      0x7fee1f8a06e - <unknown>
  34:      0x7fee2012353 - rustc_driver::driver::compile_input::h5b63ccd49eeeb98b
  35:      0x7fee2144800 - <unknown>
  36:      0x7fee2c81ce1 - _rust_maybe_catch_panic
  37:      0x7fee227755e - rustdoc::test::run::hcc44ccd17e8a0827
  38:      0x7fee2145a4f - <unknown>
  39:      0x7fee2c81ce1 - _rust_maybe_catch_panic
  40:      0x7fee5e63b4b - <unknown>
  41:      0x7fee2c81ce1 - _rust_maybe_catch_panic
  42:      0x7fee5e6b7fa - <unknown>
  43:      0x7fee2c79b2e - std::sys::thread::Thread::new::hf599b376c47e7cb9
  44:         0x76df59cc - BaseThreadInitThunk
thread 'image::impl_core::ImageVal_0' panicked at 'couldn't compile the test', ../src/librustdoc\test.rs:283
stack backtrace:
   0:      0x7fee2c7f804 - <u32 as std::sys::IsZero>::is_zero::hb501b477ff597565
   1:      0x7fee2c7bca9 - std::panicking::Location::line::h756ee230b7a7fab3
   2:      0x7fee2c7c6ed - std::panicking::rust_panic_with_hook::hcd9d05f53fa0dafc
   3:      0x7fee2142cd3 - <unknown>
   4:      0x7fee2278e14 - rustdoc::test::run::hcc44ccd17e8a0827
   5:      0x7fee2145a4f - <unknown>
   6:      0x7fee2c81ce1 - _rust_maybe_catch_panic
   7:      0x7fee5e63b4b - <unknown>
   8:      0x7fee2c81ce1 - _rust_maybe_catch_panic
   9:      0x7fee5e6b7fa - <unknown>
  10:      0x7fee2c79b2e - std::sys::thread::Thread::new::hf599b376c47e7cb9
  11:         0x76df59cc - BaseThreadInitThunk


failures:
    image::impl_core::ImageVal_0

test result: FAILED. 7 passed; 1 failed; 0 ignored; 0 measured

error: test failed

This fails on stable and nightly. I do not have time to create a reduced test case right now. Hope this helps anyway.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

Labels

I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️P-highHigh priorityT-compilerRelevant to the compiler team, which will review and decide on the PR/issue.regression-from-stable-to-stablePerformance or correctness regression from one stable version to another.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions