Summary
Opaque types and function item types are handling late bound lifetimes very hackily.
We think something along the lines of the ideas below can work, but mainly we want to try out lots of things here and land whatever sticks to the wall ("sticky" meaning "improves things")
- make FnDef's args higher ranked (i.e. put them behind a binder)
- update all the HIR ty lowering logic for args to functions to properly map stuff to late bound parameters and check them
- track late bound function parameters in generics_of
- try to make opaque types nicer by stopping to duplicae args/params all over the place
Sparse on purpose, we're figuring things out as we go
Tasks and status
Note: we have updated the body to match the 2026 goal. Your original text is preserved below.
Details
Summary
Opaque types and function item types are handling late bound lifetimes very hackily.
We think something along the lines of the ideas below can work, but mainly we want to try out lots of things here and land whatever sticks to the wall ("sticky" meaning "improves things")
- make FnDef's args higher ranked (i.e. put them behind a binder)
- update all the HIR ty lowering logic for args to functions to properly map stuff to late bound parameters and check them
- track late bound function parameters in generics_of
- try to make opaque types nicer by stopping to duplicae args/params all over the place
Sparse on purpose, we're figuring things out as we go
Tasks and status
Summary
Opaque types and function item types are handling late bound lifetimes very hackily.
We think something along the lines of the ideas below can work, but mainly we want to try out lots of things here and land whatever sticks to the wall ("sticky" meaning "improves things")
Sparse on purpose, we're figuring things out as we go
Tasks and status
Note: we have updated the body to match the 2026 goal. Your original text is preserved below.
Details
Summary
Opaque types and function item types are handling late bound lifetimes very hackily.
We think something along the lines of the ideas below can work, but mainly we want to try out lots of things here and land whatever sticks to the wall ("sticky" meaning "improves things")
Sparse on purpose, we're figuring things out as we go
Tasks and status