Repository navigation
Meta tracking issue for impl Trait #63066
Copy link
Copy link
Open
Labels
A-impl-traitArea: `impl Trait`. Universally / existentially quantified anonymous types with static dispatch.Area: `impl Trait`. Universally / existentially quantified anonymous types with static dispatch.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 RFCS-tracking-impl-incompleteStatus: The implementation is incomplete.Status: The implementation is incomplete.T-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.metabugIssues about issues themselves ("bugs about bugs")Issues about issues themselves ("bugs about bugs")
Description
This issue tracks the progress of impl Trait in general.
This issue is not for discussion about specific extensions to impl Trait and only exists to provide links to other places that track the progress of specific issues. If you wish to discuss some subject related to impl Trait, please find an existing appropriate issue below or create an new issue and comment here with a link to the newly created issue.
The impl Trait related issues currently on deck are as follows:
- Label
A-impl-trait - Permit
type Foo = impl Bar;. Tracking issue for RFC 2515, "Permit impl Trait in type aliases" #63063- Permit
type Foo = impl Bar;intraitdefinitions. Tracking issue for RFC 2532, "Associated type defaults" #29661
- Permit
- In
constandstaticitems andletbindings. Tracking issue forimpl Traitinconstandstaticitems andletbindings #63065 - Member constraints in region inference: Tracking issue for member constraints in region inference #61997
- Existential lifetimes. Tracking issue for existential lifetimes #60670
- Support lifetime elision in argument position. Argument-position
impl Traitrequires a named lifetime #49287 - Should we allow
impl Traitafter->infntypes or parentheses sugar? [impl Trait] Should we allowimpl Traitafter->infntypes or parentheses sugar? #45994 - Do we have to impose a DAG across all functions to allow for auto-safe leakage, or can we use some kind of deferral.
- Discussion: Implement
impl Traitin return type position by anonymization. #35091 (comment) - Present semantics: DAG.
- Discussion: Implement
- Should we permit specifying types if some parameters are implicit and some are explicit? e.g.,
fn foo<T>(x: impl Iterator<Item = T>>)?- Current behavior: An error to specify types
- Other alternatives: [treat
impl Traitas arguments in the list, permitting migration]
- Some concerns about nested impl Trait usage
Open RFCs:
None.
Reacted by Avi Dessauer, Charles Lew, Dmitry Rusakov, Sacha Arbonel, Andy Salerno, Patrik Buhring, Cameron Taggart, bstrie, Gurwinder Singh, Robin Freyler and 62 more
Reacted by Felipe S. S. Schneider and Manuel Sopena Ballesteros
Reacted by Michele Lacchia, Moritz Gunz, Hector Jusforgues, jgarvin, Andrew Hlynskyi, Felipe S. S. Schneider, Finn Bear, kamulos, Mishaa and Manuel Sopena Ballesteros
Reacted by Felipe S. S. Schneider, Sergo and Manuel Sopena Ballesteros
Reacted by Felipe S. S. Schneider and Manuel Sopena Ballesteros
Metadata
Metadata
Assignees
Labels
A-impl-traitArea: `impl Trait`. Universally / existentially quantified anonymous types with static dispatch.Area: `impl Trait`. Universally / existentially quantified anonymous types with static dispatch.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 RFCS-tracking-impl-incompleteStatus: The implementation is incomplete.Status: The implementation is incomplete.T-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.metabugIssues about issues themselves ("bugs about bugs")Issues about issues themselves ("bugs about bugs")
Activity
kevincox commentedon Oct 16, 2019
#65481 Allow
impl Traitin trait method return values.sighoya commentedon Nov 17, 2019
Aaron1011 commentedon Nov 17, 2019
CryZe commentedon Nov 17, 2019
sighoya commentedon Nov 17, 2019
mark-i-m commentedon Nov 17, 2019
CryZe commentedon Nov 17, 2019
Centril commentedon Nov 17, 2019
@sighoya @Aaron1011 @mark-i-m @CryZe This issue is not for general discussion about
impl Trait. It's only intended to collect links.1 remaining item
Nemo157 commentedon Jun 25, 2020
Trait definitions is your second example, covered by #29661. Your first example is trait implementations, which is covered by RFC 2515 (#63063), specifically the last example of RFC 2515 § Guide-level explanation § Type alias, and it currently works on nightly with
#![feature(type_alias_impl_trait)].rphmeier commentedon Jun 25, 2020
Thanks @Nemo157. I would find amendment to the issue text here to make clear that the link to #63063 also encompasses trait implementations and that the sub-link to #29661 is only about associated type defaults helpful. At the moment, the implication of the text is that #63063 is only about "bare" type aliases and #29661 is about impl Trait in associated types.
devxpy commentedon Sep 6, 2020
Hello, does this include allowing
impl Traitin structs? (something RFC2071 may have solved)E.g. -
The current workaround for doing this is quite unergonomic -
Source
vs if this was implemented -
ibraheemdev commentedon Jan 3, 2021
Is there a tracking issue for named existential types? The original tracking issue (#44685) was closed as a duplicate of #34511, which was closed in favor of this issue, but I don't see named existential types mentioned anywhere here...
memoryruins commentedon Jan 3, 2021
@ibraheemdev #63063
https://rust-lang.github.io/rfcs/2515-type_alias_impl_trait.html
move memory discovery to the Architecture trait
move memory discovery to the Architecture trait
move memory discovery to the Architecture trait
move memory discovery to the Architecture trait
move memory discovery to the Architecture trait
move memory discovery to the Architecture trait
move memory discovery to the Architecture trait
move memory discovery to the Architecture trait