-
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
Bail on any found recursion when expanding opaque types #87546
Conversation
Fixes rust-lang#87450. More of a bandaid because it does not fix the exponential complexity of the type folding used for opaque type expansion.
Thanks for the pull request, and welcome! The Rust team is excited to review your changes, and you should hear from @davidtwco (or someone else) soon. Please see the contribution instructions for more information. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could you add the test case from #87450?
Since this test is exercizing exponential compile times, how long does it take to compile with this PR ? (it would be good not to slow down CI and contributors' tests too much with a huge stress test :) |
It is pretty fast on the testcase from issue 87450: From >400 seconds with master down to 0.06:
One would need to add much more recursion to get a significant runtime (i.e. >20 |
@bors r+ |
📌 Commit 2aa1996 has been approved by |
⌛ Testing commit 2aa1996 with merge 92f015cefdfc37b37b6e9392a638f1fc9fdf3b7f... |
The job Click to see the possible cause of the failure (guessed by this bot)
|
💔 Test failed - checks-actions |
Looks like an intermittent connectivity issue? |
@bors retry |
☀️ Test successful - checks-actions |
Fixes #87450. More of a bandaid because it does not fix the exponential complexity of the type folding used for opaque type expansion.