Skip to content

Tracking issue for const generics (RFC 2000) #44580

Closed

Description

Tracking issue for rust-lang/rfcs#2000

Updates:

If you want to help out, take a look at the open const generics issues and feel free to ping @varkor, @eddyb, @yodaldevoid, @oli-obk or @lcnr for help in getting started!


Blocking stabilization:

  • Design:
    • Resolving ordering of const and type parameters, with default parameters
    • Decide what the best UX / implementation cost balance is for unifying abstract const expressions.
    • How we determine well formedness of const expressions.
  • Implementation
  • Documentation
    • rustc guide

Remaining implementation issues:

  • Resolve various FIXME(const_generics) comments.
  • Resolve concerns with canonicalisation / lazy normalisation.
  • Investigate handling of const parameters in patterns.
  • Add more tests.
  • Implement defaults for const parameters (FIXME(const_generics_defaults)).
  • Fix other A-const-generics issues.
  • Audit uses of has_infer_types.
  • Forbid complex expressions for const arguments involving parameters (for now), e.g. {X * 2}.
  • Audit diagnostics (e.g. Add help note to unconstrained const parameter #76401 (comment)).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Labels

A-const-fnArea: const fn foo(..) {..}. Pure functions which can be applied at compile time.A-const-genericsArea: const generics (parameters and arguments)A-typesystemArea: The type systemB-RFC-approvedBlocker: Approved by a merged RFC but not yet implemented.C-tracking-issueCategory: A tracking issue for an RFC or an unstable feature.F-const_generics`#![feature(const_generics)]`S-tracking-impl-incompleteStatus: The implementation is incomplete.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.T-langRelevant to the language team, which will review and decide on the PR/issue.requires-nightlyThis issue requires a nightly compiler in some way.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions