You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
thread 'rustc' panicked at 'Box', /buildslave/rust-buildbot/slave/stable-dist-rustc-linux/build/src/librustc_errors/lib.rs:382
note: Run with RUST_BACKTRACE=1 for a backtrace.
Here's a fragment of code sufficient to trigger the bug. It's not minimal yet, sorry. The code might not be correct; I was kinda relying on the compiler to tell me. ;-)
I have some more evidence that I think is worth recording here. Our minimised version above crashes the compiler in a case where it should be reporting an error. I now have a version that crashes the compiler when it should be accepting the program.
I returned to my original program and specialized it to the case I care about, i.e. I instantiated all the generics. After minor fixes, it works. However, replacing &'a mut f32 with the equivalent <Vec<f32> as Array<'a, usize>>::Element crashes the compiler.
Activity
est31 commentedon Feb 20, 2017
Fairly minimized: https://play.rust-lang.org/?gist=621b19255bd764d427cc9d05f2b1ba80&version=stable&backtrace=0
est31 commentedon Feb 20, 2017
Even smaller: https://play.rust-lang.org/?gist=55a654881aa050566fa44f9c0bdd011d&version=stable&backtrace=0
apt1002 commentedon Feb 20, 2017
https://play.rust-lang.org/?gist=9404547723645a7f5d9c4661be8364c5&version=stable&backtrace=0 <-- I've been minimising too!
apt1002 commentedon Feb 20, 2017
The following features seem to be essential:
est31 commentedon Feb 20, 2017
I think I found it:
This gives an error message like:
Note the
expected: &(), found: ()hereapt1002 commentedon Feb 20, 2017
Good spot. Can also interchange () with &() to get an even simpler version.
apt1002 commentedon Feb 20, 2017
The <() as Visit> part seems to be essential. No ICE.
apt1002 commentedon Feb 20, 2017
Another slight simplification.
apt1002 commentedon Feb 22, 2017
I have some more evidence that I think is worth recording here. Our minimised version above crashes the compiler in a case where it should be reporting an error. I now have a version that crashes the compiler when it should be accepting the program.
I returned to my original program and specialized it to the case I care about, i.e. I instantiated all the generics. After minor fixes, it works. However, replacing
&'a mut f32with the equivalent<Vec<f32> as Array<'a, usize>>::Elementcrashes the compiler.Parially minmized. Fully minimized.
use the evaluation cache instead of the global fulfillment cache
Auto merge of #42840 - arielb1:poison-smoke-and-mirrors, r=nikomatsakis