-
Notifications
You must be signed in to change notification settings - Fork 1.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Scoped impl Trait for Type
#3634
Commits on Nov 26, 2023
-
Configuration menu - View commit details
-
Copy full SHA for a10729f - Browse repository at this point
Copy the full SHA a10729fView commit details -
Configuration menu - View commit details
-
Copy full SHA for dfa5a2e - Browse repository at this point
Copy the full SHA dfa5a2eView commit details
Commits on Dec 3, 2023
-
- Defined rules for the observed `TypeId` of generic type parameters' opaque types, rewrote sections on type identity and layout-compatibility - Added section on sealed traits - Corrected the use of 'blanket implementation' vs. 'generic implementation' vs. 'implementation on a generic type' - Sketched two more warnings and one more error - Added a section Behaviour change/Warning: `TypeId` of generic discretised using generic type parameters - Removed the Trait binding site section but kept Coercion to trait objects and slightly expanded it - Added section Unexpected behaviour of `TypeId::of::<Self>()` in implementations on generics in the consumer-side presence of scoped implementations and `transmute` - Near-completely rewrote the Rationale and alternatives section with subheadings and before/after-style examples, added more positive effects of the feature - Rewrote Alternatives section - Removed some Unresolved questions that are now tentatively resolved - Added top-level syntax and a field example to Explicit binding, elaborated a bit more - Added Future possibilities: - Conversions where a generic only cares about specific bounds' consistency - Scoped bounds as contextual alternative to sealed traits - Glue crate suggestions - Various small fixes, adjustments and clarifications
Configuration menu - View commit details
-
Copy full SHA for 7cd3473 - Browse repository at this point
Copy the full SHA 7cd3473View commit details -
Configuration menu - View commit details
-
Copy full SHA for 1c4a5bf - Browse repository at this point
Copy the full SHA 1c4a5bfView commit details
Commits on Dec 5, 2023
-
- Added a list of bullet points to the Summary and revised it slightly - Coined the term *implementation environment* to refer to the set of all implementations applicable (to a given type) in a given place - Near-completely rewrote the Logical consistency subsection to add subheadings and examples - Small fixes and adjustments
Configuration menu - View commit details
-
Copy full SHA for 7aa8966 - Browse repository at this point
Copy the full SHA 7aa8966View commit details -
Configuration menu - View commit details
-
Copy full SHA for d21a6bb - Browse repository at this point
Copy the full SHA d21a6bbView commit details -
Configuration menu - View commit details
-
Copy full SHA for b0cd5c2 - Browse repository at this point
Copy the full SHA b0cd5c2View commit details
Commits on Dec 8, 2023
-
- Distinguish between implementation-aware generics and implementation-invariant generics - Minor edits and fixes
Configuration menu - View commit details
-
Copy full SHA for 047fc15 - Browse repository at this point
Copy the full SHA 047fc15View commit details -
Configuration menu - View commit details
-
Copy full SHA for e73714e - Browse repository at this point
Copy the full SHA e73714eView commit details
Commits on Mar 7, 2024
-
- Added section "(Pending changes to this draft)". - Revised "`TypeId` of generic type parameters' opaque types" as tuples are implementation-invariant. - Replaced section "Contextual monomorphisation of generic implementations and generic functions" with sections "Binding choice by implementations' bounds" and "Binding and generics". - Added sections "Marking a generic as implementation-invariant is a breaking change" and "Efficient compilation". - Renamed future possibilities section "Scoped bounds as contextual alternative to sealed traits" to "Sealed trait bounds". - Added future possibilities section "Reusable limited-access APIs". - a range of smaller adjustments to wording and formatting
Configuration menu - View commit details
-
Copy full SHA for 483f22a - Browse repository at this point
Copy the full SHA 483f22aView commit details
Commits on May 5, 2024
-
- Implemented the former Future Possibilities section "Explicit binding" into the main text as "inline implementation environments", mainly in form of grammar extensions. - Specified that call expressions capture the implementation environment of their function operand, acting as host for implementation-invariant generics there. - Miscellaneous wording clarifications and fixes. (Turns out you can't call a tuple struct's implicit constructor through a type alias, whoops.)
Configuration menu - View commit details
-
Copy full SHA for b0fe6b3 - Browse repository at this point
Copy the full SHA b0fe6b3View commit details
Commits on May 12, 2024
-
Final RFC-draft for Scoped
impl Trait for Type
- Added more guide-level documentation changes - Reordered warnings and errors to the end of the reference-level explanation - Some small adustments to wording and formatting
Configuration menu - View commit details
-
Copy full SHA for 36da3b5 - Browse repository at this point
Copy the full SHA 36da3b5View commit details -
Configuration menu - View commit details
-
Copy full SHA for aa4985f - Browse repository at this point
Copy the full SHA aa4985fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 7af6148 - Browse repository at this point
Copy the full SHA 7af6148View commit details -
Configuration menu - View commit details
-
Copy full SHA for f82162b - Browse repository at this point
Copy the full SHA f82162bView commit details -
Configuration menu - View commit details
-
Copy full SHA for b7fb5e2 - Browse repository at this point
Copy the full SHA b7fb5e2View commit details
Commits on May 13, 2024
-
Changed "## Type parameters capture their *implementation environment…
…*" to "## Type arguments capture their *implementation environment*" and clarified the role of type arguments vs. type parameters This was pointed out in the Rust Programming Language Community Discord.
Configuration menu - View commit details
-
Copy full SHA for ef35245 - Browse repository at this point
Copy the full SHA ef35245View commit details -
Fixes https://github.com/rust-lang/rfcs/pull/3634/files#r1598697056 . An inline implementation environment can only refer to implementations that it can actually see.
Configuration menu - View commit details
-
Copy full SHA for 129e734 - Browse repository at this point
Copy the full SHA 129e734View commit details -
Configuration menu - View commit details
-
Copy full SHA for f3589ad - Browse repository at this point
Copy the full SHA f3589adView commit details -
Configuration menu - View commit details
-
Copy full SHA for 9c1ef7a - Browse repository at this point
Copy the full SHA 9c1ef7aView commit details -
Changed "No priority over type-associated methods" into "Resolution p…
…riority" with more and more precise information
Configuration menu - View commit details
-
Copy full SHA for 6fc4bf9 - Browse repository at this point
Copy the full SHA 6fc4bf9View commit details
Commits on May 25, 2024
-
Replaced "Static interception of dynamic calls" with "Limitations on …
…trait object types"
Configuration menu - View commit details
-
Copy full SHA for 99dc572 - Browse repository at this point
Copy the full SHA 99dc572View commit details
Commits on May 26, 2024
-
Added "Limitations on bounded opaque types and type variables" as sub…
…section of "Limitations on trait object types"
Configuration menu - View commit details
-
Copy full SHA for 308af53 - Browse repository at this point
Copy the full SHA 308af53View commit details -
Added "Forbidden implementation combinations" and the error "potentia…
…lly unsound combination of implementations"
Configuration menu - View commit details
-
Copy full SHA for 360a594 - Browse repository at this point
Copy the full SHA 360a594View commit details
Commits on Jun 1, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 4d74669 - Browse repository at this point
Copy the full SHA 4d74669View commit details -
Configuration menu - View commit details
-
Copy full SHA for bf0379f - Browse repository at this point
Copy the full SHA bf0379fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 1d5ad36 - Browse repository at this point
Copy the full SHA 1d5ad36View commit details -
Configuration menu - View commit details
-
Copy full SHA for 251e4c4 - Browse repository at this point
Copy the full SHA 251e4c4View commit details