Closed blacksoil closed 9 years ago
Thanks! An ICE is always a compiler bug, even if your code is buggy too.
FWIW ran into the same bug with more recent nigtly:
Fresh typeable v0.0.4
Compiling error v0.0.3 (file:///home/melle/Projects/repos/rust-error)
Running `rustc /home/melle/Projects/repos/rust-error/src/lib.rs --crate-name error --crate-type lib -g -C metadata=cb8c656eca10aad6 -C extra-filename=-cb8c656eca10aad6 --out-dir /home/melle/Projects/repos/rust-error/target --emit=dep-info,link -L /home/melle/Projects/repos/rust-error/target -L /home/melle/Projects/repos/rust-error/target/deps --extern typeable=/home/melle/Projects/repos/rust-error/target/deps/libtypeable-c9d1fd492eab7aee.rlib`
/home/melle/Projects/repos/rust-error/src/lib.rs:4:12: 4:28 warning: feature is deprecated and will only be available for a limited time, please rewrite code that relies on it
/home/melle/Projects/repos/rust-error/src/lib.rs:4 #![feature(old_orphan_check)]
^~~~~~~~~~~~~~~~
/home/melle/Projects/repos/rust-error/src/lib.rs:4:12: 4:28 warning: feature is deprecated and will only be available for a limited time, please rewrite code that relies on it
/home/melle/Projects/repos/rust-error/src/lib.rs:4 #![feature(old_orphan_check)]
^~~~~~~~~~~~~~~~
/home/melle/Projects/repos/rust-error/src/lib.rs:84:1: 86:2 error: internal compiler error: coherence failed to report ambiguity: cannot locate the impl of the trait `core::fmt::Show` for the type `Error + 'static`
/home/melle/Projects/repos/rust-error/src/lib.rs:84 impl Show for Error {
/home/melle/Projects/repos/rust-error/src/lib.rs:85 fn fmt(&self, f: &mut Formatter) -> fmt::Result { (*self).fmt(f) }
/home/melle/Projects/repos/rust-error/src/lib.rs:86 }
note: the compiler unexpectedly panicked. this is a bug.
note: we would appreciate a bug report: http://doc.rust-lang.org/complement-bugreport.html
note: run with `RUST_BACKTRACE=1` for a backtrace
thread 'rustc' panicked at 'Box<Any>', /home/rustbuild/src/rust-buildbot/slave/nightly-dist-rustc-linux/build/src/libsyntax/diagnostic.rs:123
stack backtrace:
1: 0x7f8d04371920 - sys::backtrace::write::h36422e877a8b3158yQs
2: 0x7f8d04397650 - failure::on_fail::hde5005d61795902da3y
3: 0x7f8d042fd4a0 - rt::unwind::begin_unwind_inner::ha0668a3a9d73b9a7RHy
4: 0x7f8cff1b3af0 - rt::unwind::begin_unwind::h9147230717703493418
5: 0x7f8cff1b3a80 - diagnostic::SpanHandler::span_bug::hee7de6e88971705bDFF
6: 0x7f8d02692590 - middle::traits::error_reporting::report_fulfillment_error::h923ad3a17f8b31cfaEO
7: 0x7f8d02565010 - middle::traits::error_reporting::report_fulfillment_errors::ha648826445912c38FDO
8: 0x7f8d039219b0 - check::vtable::select_all_fcx_obligations_or_error::hb3611e6686523fabvjb
9: 0x7f8d0399bce0 - check::wf::CheckTypeWellFormedVisitor<'ccx, 'tcx>::with_fcx::h0df2a1129da2a633Hfi
10: 0x7f8d039a2760 - check::wf::CheckTypeWellFormedVisitor<'ccx, 'tcx>.Visitor<'v>::visit_item::hc72c9294b1b3f21ftoi
11: 0x7f8d03b90bd0 - check_crate::unboxed_closure.40283
12: 0x7f8d03b8b820 - check_crate::h4ba306a17295b431iux
13: 0x7f8d048b2600 - driver::phase_3_run_analysis_passes::h56810662503f92d8Sva
14: 0x7f8d048a0aa0 - driver::compile_input::h8d0abf631800220evba
15: 0x7f8d0496c070 - thunk::F.Invoke<A, R>::invoke::h13263903969514368718
16: 0x7f8d0496ae20 - rt::unwind::try::try_fn::h2272437873322108176
17: 0x7f8d043fb8b0 - rust_try_inner
18: 0x7f8d043fb8a0 - rust_try
19: 0x7f8d0496b170 - thunk::F.Invoke<A, R>::invoke::h17236552692728063371
20: 0x7f8d04383490 - sys::thread::thread_start::hd19c7749b7af23e8EGv
21: 0x7f8cfe9d70c0 - start_thread
22: 0x7f8d03fa7ec9 - __clone
23: 0x0 - <unknown>
Could not compile `error`.
Caused by:
Process didn't exit successfully: `rustc /home/melle/Projects/repos/rust-error/src/lib.rs --crate-name error --crate-type lib -g -C metadata=cb8c656eca10aad6 -C extra-filename=-cb8c656eca10aad6 --out-dir /home/melle/Projects/repos/rust-error/target --emit=dep-info,link -L /home/melle/Projects/repos/rust-error/target -L /home/melle/Projects/repos/rust-error/target/deps --extern typeable=/home/melle/Projects/repos/rust-error/target/deps/libtypeable-c9d1fd492eab7aee.rlib` (status=101)
rustc 0.13.0-nightly (ad9e75938 2015-01-05 00:26:28 +0000)
binary: rustc
commit-hash: ad9e759382ad7daed26f86732f41f5f83cd673e2
commit-date: 2015-01-05 00:26:28 +0000
host: x86_64-unknown-linux-gnu
release: 0.13.0-nightly
To reproduce, check out Jonathan Reem's rust-error and add the old orphan check as the compiler suggests when building it.
I just ran into a situation which also breaks the compiler with the same error message. I used rustc 1.0.0-nightly (ea6f65c5f 2015-01-06 19:47:08 +0000)
:
trait Trait: Sized {
fn foo(self) -> int;
}
struct Wrapped<D> {
d: D
}
impl<'a, D> Trait for &'a Wrapped<D> where &'a D: Trait {
fn foo(self) -> int {
let r: &'a D = &self.d;
r.foo()
}
}
fn main() {}
If I remove : Sized
from the first line, it will compile. Here's the error message:
wtf.rs:11:13: 11:14 error: internal compiler error: coherence failed to report ambiguity: cannot locate the impl of the trait `core::kinds::Sized` for the type `&'a D`
wtf.rs:11 let r: &'a D = &self.d;
^
note: the compiler unexpectedly panicked. this is a bug.
note: we would appreciate a bug report: http://doc.rust-lang.org/complement-bugreport.html
note: run with `RUST_BACKTRACE=1` for a backtrace
thread 'rustc' panicked at 'Box<Any>', /home/rustbuild/src/rust-buildbot/slave/nightly-dist-rustc-linux/build/src/libsyntax/diagnostic.rs:123
which is weird because I expect &'a D
always to be Sized. The full backtrace is…
stack backtrace:
1: 0x7f7d142e0410 - sys::backtrace::write::hb159f9850e834894l1s
2: 0x7f7d14305150 - failure::on_fail::hd4fb51e7b66e269fxgz
3: 0x7f7d1426af20 - rt::unwind::begin_unwind_inner::he95e3015bc1198c6tVy
4: 0x7f7d0efc1dd0 - rt::unwind::begin_unwind::h1691522525006698826
5: 0x7f7d0efc1d60 - diagnostic::SpanHandler::span_bug::h419846186c6e05bbkEF
6: 0x7f7d126f2360 - middle::traits::error_reporting::report_fulfillment_error::h23831a3c82b7aea8LKO
7: 0x7f7d125cd2f0 - middle::traits::error_reporting::report_fulfillment_errors::h85e3379b4029c0b8gKO
8: 0x7f7d139be950 - check::vtable::select_all_fcx_obligations_or_error::h019e719f5fe0b73dqkb
9: 0x7f7d13a600f0 - check::check_bare_fn::h368991e084d6817flzj
10: 0x7f7d13a663a0 - check::check_method_body::hf3fecb89a7935cbeB1j
11: 0x7f7d13a57840 - check::check_item::hcbf00dd224aa026f7Rj
12: 0x7f7d13b4bae0 - check_crate::unboxed_closure.40379
13: 0x7f7d13b46720 - check_crate::h3f64d3a4a846d0b2Nrx
14: 0x7f7d14820cd0 - driver::phase_3_run_analysis_passes::had0a81b4c9f8a9cd6va
15: 0x7f7d1480eb50 - driver::compile_input::h4f21f66f6761bb22vba
16: 0x7f7d148d7640 - thunk::F.Invoke<A, R>::invoke::h1208443586143045988
17: 0x7f7d148d63f0 - rt::unwind::try::try_fn::h4735177180287591181
18: 0x7f7d14369810 - rust_try_inner
19: 0x7f7d14369800 - rust_try
20: 0x7f7d148d6740 - thunk::F.Invoke<A, R>::invoke::h6623100047367797814
21: 0x7f7d142f13d0 - sys::thread::thread_start::h89f54a8cba556c09RSv
22: 0x7f7d0e7e20c0 - start_thread
23: 0x7f7d13f12ec9 - __clone
24: 0x0 - <unknown>
Found another variation of this ICE:
pub struct Range<A>;
impl<A> Clone for Range<A> where A: Clone {
fn clone(&self) -> Range<A> {
panic!()
}
}
pub struct RangeInclusive<A> {
range: Range<A>,
}
impl<A> Clone for RangeInclusive<A> where Range<A>: Clone {
fn clone(&self) -> RangeInclusive<A> {
panic!()
}
}
fn main() {}
Errors with:
ice.rs:13:1: 17:2 error: internal compiler error: coherence failed to report ambiguity: cannot locate the impl of the trait `core::marker::Sized` for the type `Range<A>`
ice.rs:13 impl<A> Clone for RangeInclusive<A> where Range<A>: Clone {
ice.rs:14 fn clone(&self) -> RangeInclusive<A> {
ice.rs:15 panic!()
ice.rs:16 }
ice.rs:17 }
note: the compiler unexpectedly panicked. this is a bug.
note: we would appreciate a bug report: http://doc.rust-lang.org/complement-bugreport.html
note: run with `RUST_BACKTRACE=1` for a backtrace
thread 'rustc' panicked at 'Box<Any>', /Users/rustbuild/src/rust-buildbot/slave/nightly-dist-rustc-mac/build/src/libsyntax/diagnostic.rs:123
stack backtrace:
1: 0x112b474b5 - sys::backtrace::write::h64ca2fb259c4ae97lCt
2: 0x112b6994f - failure::on_fail::h64ff5ae6887860cc0Hz
3: 0x112ad55ca - rt::unwind::begin_unwind_inner::h1d4bc098fd350446Qpz
4: 0x1107e90b7 - rt::unwind::begin_unwind::h1123425023578864118
5: 0x1107e904c - diagnostic::SpanHandler::span_bug::he8deb1e61e0360e4nQF
6: 0x10ff7c664 - middle::traits::error_reporting::report_fulfillment_error::h16099ad7ea752bc9hQO
7: 0x10fe6ee52 - middle::traits::error_reporting::report_fulfillment_errors::h681a99cf8909bc49MPO
8: 0x10f8d1cad - check::vtable::select_all_fcx_obligations_or_error::h185f88f1cc7da26fdkb
9: 0x10f939294 - check::wf::CheckTypeWellFormedVisitor<'ccx, 'tcx>::check_item_well_formed::h8ce2ab3c40901df62Ai
10: 0x10fa14fce - check_crate::unboxed_closure.30671
11: 0x10fa10873 - check_crate::h32fc7f8788be683523x
12: 0x10f37e982 - driver::phase_3_run_analysis_passes::h4c5cf0d8fe5d55degwa
13: 0x10f365420 - driver::compile_input::h31580cbd7ea87613xba
14: 0x10f430fda - monitor::unboxed_closure.22557
15: 0x10f42f735 - thunk::F.Invoke<A, R>::invoke::h6367419564961841226
16: 0x10f42e510 - rt::unwind::try::try_fn::h7763956589852599824
17: 0x112bd02a9 - rust_try_inner
18: 0x112bd0296 - rust_try
19: 0x10f42ec0c - thunk::F.Invoke<A, R>::invoke::h16724184168577887652
20: 0x112b57154 - sys::thread::thread_start::hbd8f2f8bdd3a3baadrw
21: 0x7fff9358c2fc - _pthread_body
22: 0x7fff9358c279 - _pthread_body
% rustc --version
rustc 1.0.0-nightly (44a287e6e 2015-01-08 17:03:40 -0800)
Plausibly this is fixed now.
Specifically I think it was a dup of https://github.com/rust-lang/rust/issues/20959
This has been fixed in master.
i'm getting this same error with latest rust nightly (Feb, 04) when trying to compile https://github.com/sebcrozet/nalgebra
not sure if i should open a new issue:
Running `rustc src/lib.rs --crate-name nalgebra --crate-type lib -g -C metadata=a9022f5b54c1ddb2 -C extra-filename=-a9022f5b54c1ddb2 --out-dir /home/arturo/Code/rin/libs/nalgebra/target --emit=dep-info,link -L dependency=/home/arturo/Code/rin/libs/nalgebra/target -L dependency=/home/arturo/Code/rin/libs/nalgebra/target/deps --extern rustc-serialize=/home/arturo/Code/rin/libs/nalgebra/target/deps/librustc-serialize-285c9bed5802d3eb.rlib`
src/lib.rs:612:7: 612:19 error: internal compiler error: coherence failed to report ambiguity: cannot locate the impl of the trait `traits::structure::Mat<N, LV, LV>` for the type `<R as traits::geometry::RotationMatrix<N, LV, AV>>::Output`
src/lib.rs:612 r.to_rot_mat()
^~~~~~~~~~~~
note: the compiler unexpectedly panicked. this is a bug.
note: we would appreciate a bug report: http://doc.rust-lang.org/complement-bugreport.html
note: run with `RUST_BACKTRACE=1` for a backtrace
thread 'rustc' panicked at 'Box<Any>', /home/rustbuild/src/rust-buildbot/slave/nightly-dist-rustc-linux/build/src/libsyntax/diagnostic.rs:129
stack backtrace:
1: 0x7fd616a5ae80 - sys::backtrace::write::h84a1347ec8a3d425Aru
2: 0x7fd616a7e4a0 - failure::on_fail::h1cb2299eb5e255ae9GB
3: 0x7fd6169e92d0 - rt::unwind::begin_unwind_inner::ha34a1c7f0630f466IlB
4: 0x7fd613de2bf0 - rt::unwind::begin_unwind::h12804436560652988965
5: 0x7fd613de2b80 - diagnostic::SpanHandler::span_bug::h7782d96edbc369daAME
6: 0x7fd614b29890 - middle::traits::error_reporting::report_fulfillment_errors::h9d98ce1dd7e3fcdeGnN
7: 0x7fd616126a20 - check::vtable::select_all_fcx_obligations_or_error::hc5e5e8e652f479efRvb
8: 0x7fd6161d6680 - check::check_bare_fn::h306f8ecc226858bctAm
9: 0x7fd6161cde70 - check::check_item::h7d555ba822408851KTm
10: 0x7fd61629cd10 - check_crate::closure.34569
11: 0x7fd616297850 - check_crate::h2469153404b647bauEA
12: 0x7fd616feb710 - driver::phase_3_run_analysis_passes::h198ed79d6101094dtGa
13: 0x7fd616fd22b0 - driver::compile_input::h08caf95be513bd6bBba
14: 0x7fd61709cdd0 - run_compiler::hf1a36c26381910e09ac
15: 0x7fd61709b460 - thunk::F.Invoke<A, R>::invoke::h6996223324138754953
16: 0x7fd61709a390 - rt::unwind::try::try_fn::h16059966258548481805
17: 0x7fd616ae9910 - rust_try_inner
18: 0x7fd616ae9900 - rust_try
19: 0x7fd61709a640 - thunk::F.Invoke<A, R>::invoke::h12998514134271589737
20: 0x7fd616a6aca0 - sys::thread::thread_start::h756cedb2df1b4200Pnx
21: 0x7fd610c66fe0 - start_thread
22: 0x7fd61666b859 - __clone
23: 0x0 - <unknown>
Could not compile `nalgebra`.
Caused by:
Process didn't exit successfully: `rustc src/lib.rs --crate-name nalgebra --crate-type lib -g -C metadata=a9022f5b54c1ddb2 -C extra-filename=-a9022f5b54c1ddb2 --out-dir /home/arturo/Code/rin/libs/nalgebra/target --emit=dep-info,link -L dependency=/home/arturo/Code/rin/libs/nalgebra/target -L dependency=/home/arturo/Code/rin/libs/nalgebra/target/deps --extern rustc-serialize=/home/arturo/Code/rin/libs/nalgebra/target/deps/librustc-serialize-285c9bed5802d3eb.rlib` (status=101)
I'm getting what appears to be the same ICE when trying to run hematite.
$ RUST_BACKTRACE=1 cargo run --release ~/Library/Application\ Support/minecraft/saves/test
Compiling image v0.2.0-alpha.10 (https://github.com/PistonDevelopers/image#ffbd2d5e)
Compiling gl v0.0.8 (https://github.com/bjz/gl-rs#64d26f54)
Compiling gfx_gl v0.1.1
/Users/fenhl/.cargo/git/checkouts/image-f4d4ca6613133df7/master/src/imageops/colorops.rs:62:46: 62:66 error: internal compiler error: coherence failed to report ambiguity: cannot locate the impl of the trait `traits::Num` for the type `<<I as image::GenericImage>::Pixel as buffer::Pixel>::Subpixel`
/Users/fenhl/.cargo/git/checkouts/image-f4d4ca6613133df7/master/src/imageops/colorops.rs:62 let max: <I::Pixel as Pixel>::Subpixel = Primitive::max_value();
^~~~~~~~~~~~~~~~~~~~
note: the compiler unexpectedly panicked. this is a bug.
note: we would appreciate a bug report: http://doc.rust-lang.org/complement-bugreport.html
note: run with `RUST_BACKTRACE=1` for a backtrace
thread 'rustc' panicked at 'Box<Any>', /Users/rustbuild/src/rust-buildbot/slave/nightly-dist-rustc-mac/build/src/libsyntax/diagnostic.rs:129
stack backtrace:
1: 0x109ac4cf7 - sys::backtrace::write::h1864de2e29cfcfa3jWA
2: 0x109aec8f2 - failure::on_fail::hb779450ca026c246YwJ
3: 0x109a363d8 - rt::unwind::begin_unwind_inner::h252a44c757d4dd84eeJ
4: 0x109166e5f - rt::unwind::begin_unwind::h4771388940342094321
5: 0x109166e0c - diagnostic::SpanHandler::span_bug::hd8309936b923a05674E
6: 0x106ae542c - middle::traits::error_reporting::report_fulfillment_errors::hbe697315f4245bcdsuO
7: 0x106415ee9 - check::vtable::select_all_fcx_obligations_or_error::h1aab9eca37d5de28oPb
8: 0x1064c90ad - check::check_bare_fn::h08eeba9e9dfaab5eScn
9: 0x1064c0821 - check::check_item::hf6e90ce2411e3a51lwn
10: 0x1064c69c3 - visit::walk_item::h10596481115374198522
11: 0x1064c69ce - visit::walk_item::h10596481115374198522
12: 0x1065961de - check_crate::closure.35462
13: 0x10659154e - check_crate::h59e1f00c8e9e52b5OxB
14: 0x105f115c5 - driver::phase_3_run_analysis_passes::h5d5a99ee07ec1be1SGa
15: 0x105ef7441 - driver::compile_input::hd4a314c6edff3df0Eba
16: 0x105fcd1b0 - run_compiler::hacde47e333c8d7485bc
17: 0x105fca682 - thunk::F.Invoke<A, R>::invoke::h7196015415497398923
18: 0x105fc9350 - rt::unwind::try::try_fn::h6570971418868152995
19: 0x109b63f69 - rust_try_inner
20: 0x109b63f56 - rust_try
21: 0x105fc9a49 - thunk::F.Invoke<A, R>::invoke::h16470735320018065311
22: 0x109ad6623 - sys::thread::thread_start::ha3ace5b5b28cf521mOE
23: 0x7fff919a6268 - _pthread_body
24: 0x7fff919a61e5 - _pthread_body
Build failed, waiting for other jobs to finish...
Could not compile `image`.
To learn more, run the command again with --verbose.
I'm not too sure if this ia compiler bug or not, but the compiler asks me to report it :)
Code: https://github.com/reem/rust-error/ plus old_orphan_check