Description
Trying the Rayon nbody demo with the current nightly on MacOS 10.13.3 caused a compiler panic.
I executed the following from bash prompt:
cargo +nightly run --release -- nbody visualize
And received the following, apparently when compiling cgmath
:
thread 'rustc' panicked at 'assertion failed: `(left != right)` left: `ParamEnv(Binder(ProjectionPredicate(ProjectionTy { substs: Slice([S, S]), item_def_id: DefId(2/0:885 ~ core[6938]::ops[0]::arith[0]::Add[0]::Output[0]) }, S)))`, right: `ParamEnv(Binder(ProjectionPredicate(ProjectionTy { substs: Slice([S, S]), item_def_id: DefId(2/0:885 ~ core[6938]::ops[0]::arith[0]::Add[0]::Output[0]) }, S)))`', librustc/traits/project.rs:146:17 note: Run with `RUST_BACKTRACE=1` for a backtrace.
Meta
rustc --version --verbose
:
rustc --version --verbose rustc 1.24.0 (4d90ac38c 2018-02-12) binary: rustc commit-hash: 4d90ac38c0b61bb69470b61ea2cccea0df48d9e5 commit-date: 2018-02-12 host: x86_64-apple-darwin release: 1.24.0 LLVM version: 4.0
rustc +nightly --version --verbose
:
binary: rustc
commit-hash: bedbad61195d2eae69b43eca49c6d3e2aee8f208
commit-date: 2018-02-26
host: x86_64-apple-darwin
release: 1.26.0-nightly
LLVM version: 6.0```
Backtrace:
Compiling cocoa v0.13.0
thread 'rustc' panicked at 'assertion failed: `(left != right)`
left: `ParamEnv(Binder(ProjectionPredicate(ProjectionTy { substs: Slice([S, S]), item_def_id: DefId(2/0:885 ~ core[6938]::ops[0]::arith[0]::Add[0]::Output[0]) }, S)))`,
right: `ParamEnv(Binder(ProjectionPredicate(ProjectionTy { substs: Slice([S, S]), item_def_id: DefId(2/0:885 ~ core[6938]::ops[0]::arith[0]::Add[0]::Output[0]) }, S)))`', librustc/traits/project.rs:146:17
stack backtrace:
0: 0x106621323 - std::sys::unix::backtrace::tracing::imp::unwind_backtrace::h78255b011393efc6
1: 0x106618a92 - std::sys_common::backtrace::_print::h068788d7ab321c64
2: 0x10661e10d - std::panicking::default_hook::{{closure}}::h707de483218d106c
3: 0x10661dd98 - std::panicking::default_hook::ha4b75b184472ef99
4: 0x104c04fa0 - core::ops::function::Fn::call::h622a21864f3755f4
5: 0x10661e5d0 - std::panicking::rust_panic_with_hook::h8e832f9bf3226352
6: 0x10661e3ca - std::panicking::begin_panic_fmt::heebe356c4dcb17fb
7: 0x104f321bf - rustc::traits::project::ProjectionTyCandidateSet::push_candidate::h777952838de6649f
8: 0x104f36d79 - rustc::traits::project::opt_normalize_projection_type::h4e2a3fb7470ec768
9: 0x104f326c2 - rustc::traits::project::poly_project_and_unify_type::{{closure}}::h9534d6dd7cffc586
10: 0x104f322b6 - rustc::traits::project::poly_project_and_unify_type::h5c5c79ac648f1cae
11: 0x104f2fd93 - <rustc::traits::fulfill::FulfillProcessor<'a, 'b, 'gcx, 'tcx> as rustc_data_structures::obligation_forest::ObligationProcessor>::process_obligation::h470b336fd79eeb80
12: 0x104f2ebe8 - rustc::traits::fulfill::FulfillmentContext::select::h2241f3e06a4c0ed0
13: 0x104f2dbe6 - rustc::traits::fulfill::FulfillmentContext::select_all_or_error::h5407d27f7846e56f
14: 0x103eb85b0 - rustc_typeck::check::compare_method::compare_predicate_entailment::h1e2e8e86f71cddff
15: 0x103ed65e2 - rustc_typeck::check::check_impl_items_against_trait::heb5073227ba5d86e
16: 0x103ecfa9f - rustc_typeck::check::check_item_type::h09ca81f3691ac3b1
17: 0x103f1abbc - rustc_typeck::check_crate::{{closure}}::hc575e80d425c94f0
18: 0x103f16342 - rustc_typeck::check_crate::h1ee02350b3b6a17b
19: 0x1038bcc54 - rustc::ty::context::TyCtxt::create_and_enter::ha895fab321dd8998
20: 0x103924952 - rustc_driver::driver::compile_input::h09390d3c8da066cd
21: 0x10394089e - rustc_driver::run_compiler::hf1b7fcf47f029bd5
22: 0x10386b0c5 - std::sys_common::backtrace::__rust_begin_short_backtrace::hb34e4b4b9070b735
23: 0x10663903e - __rust_maybe_catch_panic
24: 0x1038a6915 - <F as alloc::boxed::FnBox<A>>::call_box::ha23cd4726d1af3ed
25: 0x10662ddbb - std::sys::unix::thread::Thread::new::thread_start::h0ccdb6055298a0f4
26: 0x7fff7ff706c0 - _pthread_body
27: 0x7fff7ff7056c - _pthread_start