-
Notifications
You must be signed in to change notification settings - Fork 13.6k
Closed
Labels
A-GATsArea: Generic associated types (GATs)Area: Generic associated types (GATs)A-associated-itemsArea: Associated items (types, constants & functions)Area: Associated items (types, constants & functions)A-trait-systemArea: Trait systemArea: Trait systemA-type-systemArea: Type systemArea: Type systemB-RFC-approvedBlocker: Approved by a merged RFC but not yet implemented.Blocker: Approved by a merged RFC but not yet implemented.B-unstableBlocker: Implemented in the nightly compiler and unstable.Blocker: Implemented in the nightly compiler and unstable.C-tracking-issueCategory: An issue tracking the progress of sth. like the implementation of an RFCCategory: An issue tracking the progress of sth. like the implementation of an RFCF-generic_associated_types`#![feature(generic_associated_types)]` a.k.a. GATs`#![feature(generic_associated_types)]` a.k.a. GATsS-tracking-ready-to-stabilizeStatus: This is ready to stabilize; it may need a stabilization report and a PRStatus: This is ready to stabilize; it may need a stabilization report and a PRS-types-trackedStatus: Being actively tracked by the types teamStatus: Being actively tracked by the types teamT-compilerRelevant to the compiler team, which will review and decide on the PR/issue.Relevant to the compiler team, which will review and decide on the PR/issue.T-langRelevant to the language teamRelevant to the language teamT-typesRelevant to the types team, which will review and decide on the PR/issue.Relevant to the types team, which will review and decide on the PR/issue.requires-nightlyThis issue requires a nightly compiler in some way.This issue requires a nightly compiler in some way.
Description
This is a tracking issue for generic associated types (rust-lang/rfcs#1598)
Repository
- Detailed tracking information is available at the GAT initiative repository
Unresolved questions:
- GATs: Decide whether to have defaults for
where Self: 'a
#87479 -- defaults forwhere Self: 'a
- Proposal: Change syntax of where clauses on type aliases #89122 -- where to put where clauses
Blocking bugs
See also the GATs-blocking
tag (the list below should be a superset of that, but its good to double-check).
- lifetime-parametric GATs cause ICEs (with feature(generic_associated_types)) #62521
-
Associated type projections don't play well with HRTBs and normalization #30472No longer blocking - Pretty printing loses associated type generics and where clauses #67509
- Allow generic associate types in trait paths #67510
- Generic associated types can shadow lifetimes #67512
- Implement type- and const-generic associated types #67513
- GAT's arent typechecked, and can cause UB #68641
- GAT's and broken LLVM #68642
- GAT ICE: use of PlaceRef { local: _0, projection: [] } before def #68643
- GAT ICE: Encountered error
Unimplemented
selecting `Binder #68644 - GAT ICE: FulfillmentError #68645
- GAT ICE: impl item and trait item have different parameter counts #68648
- GAT ICE: place local already assigned to #68649
- GAT ICE: unsize_thin_ptr: called on bad types #68650
- GAT ICE: codegen_argument #68652
- GAT ICE: unelided lifetime in signature #68653
- GAT ICE: cannot directly store unsized values #68656
- Broken LLVM with GAT #74684
- [nightly] ICE when using GATs with const generics #75415
- ICE when combining GATs and HRTBs #76826
- Internal Compiler Error caused by Generic Associated Types #79768
-
Enum variant with GAT field fails to derive Sized #80626Not GATs specific, not blocking - Error when inferring a lifetime in return type using GATs #81487
- Bad diagnostics for GATs in trait paths #81801
- defaults on
GATs
emit an error but function correctlyish #99205
Postponed work
ashleysommer, Binero, F001, vi, Centril and 616 moreleijurv, Veetaha, CGMossa, syntacticsugarglider, frjnn and 3 morekennytm, lambda-fairy, DanielJin21, LunaBorowska, Robbepop and 213 morejmi2k, dnrusakov, sullvn, jonhoo, panicbit and 191 moreKailari, TennyZhuang, CGMossa, zkat, nirui and 108 morebecherling, frjnn, ahlinc, rokinsky, bczhc and 18 more
Metadata
Metadata
Assignees
Labels
A-GATsArea: Generic associated types (GATs)Area: Generic associated types (GATs)A-associated-itemsArea: Associated items (types, constants & functions)Area: Associated items (types, constants & functions)A-trait-systemArea: Trait systemArea: Trait systemA-type-systemArea: Type systemArea: Type systemB-RFC-approvedBlocker: Approved by a merged RFC but not yet implemented.Blocker: Approved by a merged RFC but not yet implemented.B-unstableBlocker: Implemented in the nightly compiler and unstable.Blocker: Implemented in the nightly compiler and unstable.C-tracking-issueCategory: An issue tracking the progress of sth. like the implementation of an RFCCategory: An issue tracking the progress of sth. like the implementation of an RFCF-generic_associated_types`#![feature(generic_associated_types)]` a.k.a. GATs`#![feature(generic_associated_types)]` a.k.a. GATsS-tracking-ready-to-stabilizeStatus: This is ready to stabilize; it may need a stabilization report and a PRStatus: This is ready to stabilize; it may need a stabilization report and a PRS-types-trackedStatus: Being actively tracked by the types teamStatus: Being actively tracked by the types teamT-compilerRelevant to the compiler team, which will review and decide on the PR/issue.Relevant to the compiler team, which will review and decide on the PR/issue.T-langRelevant to the language teamRelevant to the language teamT-typesRelevant to the types team, which will review and decide on the PR/issue.Relevant to the types team, which will review and decide on the PR/issue.requires-nightlyThis issue requires a nightly compiler in some way.This issue requires a nightly compiler in some way.