Open
Description
This is a tracking issue for trait aliases (rust-lang/rfcs#1733).
TODO:
- Implement: tracking issue
- Bringing a trait alias into scope doesn't allow calling methods from its component traits #56485 — Bringing a trait alias into scope doesn't allow calling methods from its component traits (done in resolve: collect trait aliases along with traits #59166)
- ICE with trait aliases and use items #56488 — ICE with trait aliases and use items
- Nightly Type Alias Compiler panic
unexpected definition: TraitAlias
#57023 — Nightly Type Alias Compiler panicunexpected definition: TraitAlias
-
INCOHERENT_AUTO_TRAIT_OBJECTS
future-compatibility warning #57059 —INCOHERENT_AUTO_TRAIT_OBJECTS
future-compatibility warning (superseded by add coherence future-compat warnings for marker-only trait objects #56481) - Document
- Stabilize
Unresolved questions:
- Are bounds on other input types than the receiver enforced or implied?
- Should we keep the current behaviour of "shallow-banning"
?Sized
bounds in trait objects, ban them "deeply" (through trait alias expansion), or permit them everywhere with no effect? - Insufficient flexibility
- Inconvenient syntax
- Misleading naming
- Which of constraint/bound/type aliases are desirable
Metadata
Metadata
Assignees
Labels
Area: Trait systemBlocker: Approved by a merged RFC but not yet implemented.Blocker: Implemented in the nightly compiler and unstable.Category: An issue tracking the progress of sth. like the implementation of an RFC`#![feature(trait_alias)]`Status: It's hard to tell what's been done and what hasn't! Someone should do some investigation.Relevant to the language team, which will review and decide on the PR/issue.