-
Notifications
You must be signed in to change notification settings - Fork 12.9k
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
Compiler hangs at ObligationForest #80066
Comments
perf top says |
By changing the cache key used in
I believe that we need to tweak the hashing algorithm for the cache key to consider some inferred lifetimes to be the same. To clarify, the hack of using debug output for the cache key causes a lot of regressions, is not an adequate fix, but it was good enough to verify my assumptions. |
The plot thickens: rust/compiler/rustc_trait_selection/src/traits/select/candidate_assembly.rs Lines 51 to 54 in 696b239
I can't tell for sure that this is what is causing the type's obligations to be expanded with fresh lifetimes, growing indefinitely, but that @nikomatsakis comment stopped me on my tracks and is making me suspicious. |
I tried something like the code below:
playground
I thought this should compile, because everything checks out, but instead I got the compiler to go into an infinite loop! It never stops (I had one instance run for over 10 minutes, with no end in sight)
The text was updated successfully, but these errors were encountered: