-
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
internal compiler error: no type for node HirId ... #69378
Comments
I'm looking into this! But mostly as a learning exercise. Spent ~4 hours exploring typeck & error handling today to see why this exact combination of things triggers an error. My friend and I will probably have a solution at some point, but it might be a few weeks from now. If anyone has a good & quick solution, or if it is deemed high-priority, then feel free to ignore me. |
EDIT: |
The ICE goes away if I apply this patch:
(Though I'd guess that making this change would cause us to regress on the problems that #59266 fixed.) |
This change fixes the ICE and avoids regressing on
I'm unsure whether this respects the intended meaning of |
@dwrensha on a very cursory look that patch looks reasonable. |
#50643 has some additional relevant context. |
Unfortunately, the patch that I proposed above fails on this modification of struct Point {
pub x: u64,
pub y: u64,
0: u64,
}
fn main() {
let _ = |t: Point| {
Point {
nonexistent: 0,
..t
}
};
} |
triage: P-high. Removing nomination. Added regression stable-to-stable tag. |
I think I found a way to resolve this without regressing on #59266. The point of this PR is to not emit an error if it might be invalid to the user. But there are errors in context still. The patch I propose is this:
This does pass every UI test. I'll open a PR so this can be discussed more easely. |
I'm seeing an internal compiler error on the following input (found by fuzz-rustc):
The error happens on
stable
,beta
, andnightly
.The text was updated successfully, but these errors were encountered: