-
Notifications
You must be signed in to change notification settings - Fork 12.8k
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: unexpected const placeholder #131538
Comments
Reduced: #![feature(generic_associated_types_extended)]
#![feature(trivial_bounds)]
trait HealthCheck {
async fn check<const N: usize>();
}
fn do_health_check_par()
where
HealthCheck: HealthCheck,
{
} Removing |
Hi All! Do we know what the expected behavior for this case should be? As is, it runs into recursion limits and then My intuition is that it should behave exactly as it does when Is this a reasonable/accurate assumption? (I'm new to reading |
663da00 does change the behavior here for the current minified example, though I think there should still be a way of triggering the ICE now. I'll try to produce a new test that still exhibits the behavior after that. EDIT: new repro that accommodates the changes: #![feature(generic_associated_types_extended)]
#![feature(trivial_bounds)]
trait HealthCheck {
async fn check<const N: usize>();
}
fn do_health_check_par()
where
dyn HealthCheck: HealthCheck,
{
} |
Additional experimentation to take out some red herrings, this also hangs rustc as when removing the #![feature(generic_associated_types_extended)]
trait U {
}
trait HealthCheck {
fn check(&self) -> impl U;
}
fn do_health_check_par()
where
dyn HealthCheck: HealthCheck,
{
} The |
Similar reproducers: |
The feature has been removed (#133768). Not reproducible without it. |
Code
Meta
rustc --version --verbose
:Error output
Backtrace
The text was updated successfully, but these errors were encountered: