Skip to content

Allow turbofishing late bound vars #711

Description

@nxsaken
Metadata
Point of contact @oli-obk
Team(s) compiler, lang, types
Goal document 2026/turbofishing-late-bound

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

Metadata
Point of contact @oli-obk
Team(s) compiler, lang, types
Goal document 2026/turbofishing-late-bound

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions