ICE combining universal plus existential impl Trait #46685
Labels
A-impl-trait
Area: `impl Trait`. Universally / existentially quantified anonymous types with static dispatch.
I-ICE
Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️
T-compiler
Relevant to the compiler team, which will review and decide on the PR/issue.
The following program will ICE:
The problem derives from the fact that universal impl traits, during HIR lowering, do not generate entries in the
hir::Generics
structure -- they are synthesized after the fact, in thety::Generics
. This interferes with theresolve_lifetime
code, which expects to use the HIR generics to determine the indices of things.I'm not sure the best fix here. The easiest fix is probably to count the number of universal impl traits and take them into account in
resolve_lifetime
. The best fix feels like it would be to actually insert the type parameters for universal impl trait instances intohir::Generics
.cc @cramertj @chrisvittal
The text was updated successfully, but these errors were encountered: