@@ -75,11 +75,13 @@ each element in the original tuple. For example,
75
75
` (A, B, C)::AsRefs = (&A, &B, &C) ` and
76
76
` (A, B, C)::AsMuts = (&mut A, &mut B, &mut C) `
77
77
78
- The ` Tuple ` trait should only be implemented for tuples. This would allow
79
- coherence and type-checking to be extended to assume that no implementations
80
- of ` Tuple ` will be added. This enables an increased level of negative
81
- reasoning making it easier to write blanket implementations of traits for
82
- tuples.
78
+ The ` Tuple ` trait should only be implemented for tuples and marked with the
79
+ ` #[fundamental] ` attribute described in
80
+ [ the coherence RFC] ( https://github.com/rust-lang/rfcs/blob/master/text/1023-rebalancing-coherence.md ) .
81
+ This would allow coherence and type-checking to be extended to assume that no
82
+ implementations of ` Tuple ` will be added. This enables an increased level of
83
+ negative reasoning making it easier to write blanket implementations of traits
84
+ for tuples.
83
85
84
86
## The ` (Head, ...Tail) ` Type Syntax
85
87
This syntax would allow for a ` Cons ` -cell-like representation of tuple types.
@@ -188,11 +190,6 @@ there is an expression immediately before the ellipsis.
188
190
- Implement one of the other variadic designs, such as
189
191
[ #1582 ] ( https://github.com/rust-lang/rfcs/pull/1582 ) or
190
192
[ #1921 ] ( https://github.com/rust-lang/rfcs/pull/1921 )
191
- - Implement this RFC, but leave out the extra-special coherence rules for
192
- ` Tuple ` . This would simplify the implementation of the ` Tuple ` intrinsic
193
- and remove some of the additional complexity it introduces. However, this
194
- also makes it much more challenging to write coherent blanket
195
- implementations for ` Tuple ` s.
196
193
197
194
# Unresolved questions
198
195
[ unresolved ] : #unresolved-questions
0 commit comments