-
Notifications
You must be signed in to change notification settings - Fork 12.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ICE with cross-crate projection #37291
Comments
Regression from 1.9.0 to 1.10.0. Requires the ice'ing code to be in a separate crate. |
This was introduced between I reduced the code some, although it can probably be reduced further, see https://gist.github.com/7cd880ff5d32b7de65c7910935d36d6e. |
Thanks @TimNN ! |
Reduced test cases wanted! Nominating to get eyes on my compiler team. |
@rust-lang/compiler Does this look like any known lifetime-related bug that you can think of? |
Nothing that jumps to mind. I can try to dig in a bit. |
Thanks for the effort so far! I think this test case is easier to analyze: https://gist.github.com/physhh/0d4046b38940a309ce2b6e0ce516c4a9 Everytime I tried to further reduce the amount of types involved the ICE disappeared. |
@physhh: Nice work! I just remembered something I noticed while reducing the initial code: Commenting out either one of the |
Sorry for being slow to act on this. I am able to reproduce the problem. Investigating. |
Use impl obligations as initial environment for specialization This corrects a small regression in specialization that crept in, I think as part of the refactoring to introduce arenas. I also made an experiment (in the last commit) to cleanup the code to be more aggressive about normalization. As the commit log notes, I am not 100% sure that this is correct, but it feels safer, and I think that at worst it yields *more* ICEs (as opposed to admitting faulty code). I'll schedule a crater run to check beyond the testbase. Fixes #37291. r? @aturon
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 theignore
marker.rustc --version --verbose
:This is the result of
cargo test
:This fails on stable and nightly. I do not have time to create a reduced test case right now. Hope this helps anyway.
The text was updated successfully, but these errors were encountered: