Closed
Description
Tracking issue for rust-lang/rfcs#195
This meta-bug contains links to the most significant tasks remaining for associated items. For a comprehensive listing of bugs, please search using the A-associated-items label.
Post 1.0 Tasks
- Normalize associated types used in where clauses (Normalization of projections in where clauses #20765) and associated type bounds (Normalization of projections in trait bounds on associated types #20775)
- Implement associated lifetimes (see Issue subtask of RFC 195: implement associated lifetimes #17842),
- Update library code for associated constants (see Issue identify traits in libstd that should use associated constants #17825).
Completed Tasks
- Implement associated output types (see PR librustc: Implement associated types behind a feature gate. #16377),
- Update library code for associated output types (see Issue identify traits in libstd that should use associated types (as output parameters) #17826),
- Implement multi-dispatch (see PR Implement multidispatch and conditional dispatch. #17669),
- Update library code for multi-dispatch (see Issue identify traits in libstd that should use multidispatch #17827),
- ICE: Unbound path ICE with associated types: unbound path #17388
- Clarify outlives requirements on projected types (Clarify outlives requirements on associated types #20303)
- Integrate projection types into method dispatch Integrate projection types into method dispatch #20469
- Some types not normalized? Associated types may not all be normalized #20604
- ICE with missing impl items ICE due to missing associated type in trait implementation #20347
- Associated types should permit builtin bounds (Support builtin bounds on associated types and make them Sized by default #17921)
- Implement
Trait<Out=Type>
syntax (Support theTrait<Output=Type>
syntax #18432) - Support
T::Type
syntax (SupportT::Type
shorthand for referencing associated types #18433) - Associated types are used as inputs for multidispatch (Associated types are used as inputs for multidispatch #18437)
- Traits with associated types appearing on structs, enums, or other traits (Traits with associated types appearing on structs, enums or other traits #18768)
- Qualified paths don't check type arguments in the trait reference (Qualified paths don't consider the type arguments supplied to the trait #18865)
- rustdoc panics when dealing with associated types (rustdoc panics when dealing with associated types #18594)
- Associated types should permit arbitrary bounds (Associated types should permit arbitrary bounds #18178)
- Associated types need to do transitive bound expansion (Associated types need to do transitive bound expansion #18434)
- Traits with where clauses that themselves reference traits with assoc types (Traits with where clauses that themselves reference associated types #18436)
- Integrate object projection predicates into rustdoc (Integrate object projection predicates into rustdoc #20299)
- Convert T::Foo resolution to use where clauses, not bounds (Convert
T::Foo
resolution to use where clauses, not bounds #20300) - Implement associated constants (see Issue subtask of RFC 195: Implement associated constants #17841),
- Implement defaults for associated types (see issue Implement defaults for associated types #19476),
Declined tasks
Permit unqualified references to associated types of the trait within the trait definition (Permit unqualified references to associated types of the trait within the trait definition #18764)Update library code for associated lifetimes (see Issue identify traits in libstd that should use associated lifetimes #17828),