@@ -32,21 +32,21 @@ Built-in implementations are provided for:
32
32
33
33
## Structural implementations
34
34
35
- There are two implementations of ` Unsize ` which can be thought of as
35
+ There is one implementation of ` Unsize ` which can be thought of as
36
36
structural:
37
- * ` (A1, A2, .., An): Unsize<(A1, A2, .., U)> ` given ` An: Unsize<U> ` , which
38
- allows the tail field of a tuple to be unsized. This is gated behind the
39
- [ ` unsized_tuple_coercion ` ] feature.
40
37
* ` Struct<.., Pi, .., Pj, ..>: Unsize<Struct<.., Ui, .., Uj, ..>> ` given
41
38
` TailField<Pi, .., Pj>: Unsize<Ui, .. Uj> ` , which allows the tail field of a
42
39
struct to be unsized if it is the only field that mentions generic parameters
43
40
` Pi ` , .., ` Pj ` (which don't need to be contiguous).
44
41
45
- The rules for the latter implementation are slightly complicated, since they
42
+ The rules for struct unsizing are slightly complicated, since they
46
43
may allow more than one parameter to be changed (not necessarily unsized) and
47
44
are best stated in terms of the tail field of the struct.
48
45
49
- [ `unsized_tuple_coercion` ] : https://doc.rust-lang.org/beta/unstable-book/language-features/unsized-tuple-coercion.html
46
+ (Tuple unsizing was previously implemented behind the feature gate
47
+ ` unsized_tuple_coercion ` , but the implementation was removed by [ #137728 ] .)
48
+
49
+ [ #137728 ] : https://github.com/rust-lang/rust/pull/137728
50
50
51
51
## Upcasting implementations
52
52
0 commit comments