Skip to content

Generics Implementation Tasks #6411

@danakj

Description

@danakj

Living task list for Generics implementation

  • [jonmeow] Expansion of a definition of one generic that depends on expansion of another
  • [danakj] Named constraints (number of TODOs in tests or in code)
  • [danakj] require decls
    • Diagnose missing impls for require [example test]
    • require allows use of named facet types in symbolic facets [test]
    • Name lookup into extend require [test]
  • [danakj] extend (impls and require) doesn't yet apply inside enclosing scope, currently doesn't get applied until end of scope
  • extend impl as in an interface (proposal Interface extension and final impl update #5337)
  • alias in interface or constraint
  • Support types other than Self in an impls requirement
  • .Self needs to be removed from the design, and its replacement implemented
  • require decls with requirements, both rewrite (treated as equality) and impls.
  • Equality constraint requirements
  • observe
  • Implied constraints [example test]
  • Constraints on an impl as don't do anything (other than rewrites into .Self)
  • where declarations in impl definitions
  • Should impl lookup distinguish and/or fallback on const and/or MaybeUnformed? #6068
  • match_first
  • Orphan rule
  • Termination rule
  • Form generics (still in proposal process)
  • Need way to implicit conversions between integers of different sizes (maybe template-y?)
  • Generics can't see builtin impls (e.g. ImplicitAs does not know about builtin conversions) #5750
  • Compile-time known value is more specific for type structure than unknown (Including the value of non-types in the type structure) [notes] (needs proposal)
  • Deduction of types in where clauses (test) (smaller test)
  • Deduction of array bounds
    • As i32 paramter [test]
    • From tuple value [test]
    • Conversion issues when we deduced the array bounds as type or IntLiteral parameter [test]
  • Deduction of parameter that is a class access into generic class value [test]
  • Access into symbolic associated constant with aggregate value [tests]
  • Final specialization poisoning after using a concrete value [test]
  • Symbolic constants in multiple where exprs match [test]
  • default for interface functions and associated constants
  • final for interface functions (and associated constants?)
  • Associated constants shouldn't have to be complete [test]
  • Compound member access in rewrite (and equality) constraints [example test]
  • Default function syntax sugar (omitting .Op) (needs proposal I think still)

All of template is excluded here. We exclude variadics here (they would be a large separable task).

This list is as-of November 20, 2025. Many tasks were done prior. 😄

Metadata

Metadata

Assignees

No one assigned

    Labels

    long term issueIssues expected to take over 90 days to resolve. Does not apply to PRs.toolchain

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions