reference
reference copied to clipboard
Unsized coercion of TyCtor(T) clarity issue
In type-coercions.md, the following is really not clear:
* TyCtor(`T`) to TyCtor(`U`), where TyCtor(`T`) is one of
- `&T`
- `&mut T`
- `*const T`
- `*mut T`
- `Box<T>`
and where `U` can be obtained from `T` by [unsized coercion](#unsized-coercions).
<!--In the future, coerce_inner will be recursively extended to tuples and
structs. In addition, coercions from subtraits to supertraits will be
added. See [RFC 401] for more details.-->
Ideally, the text should not require deciphering. It seems to be redundantly stating that &T can be coerced to &U. However, is it merely stating that &, &mut, *const, *mut, and Box have special permissibility when unsized coercions exists for their argument types.
I feel like this whole bullet point might have simply become seriously outdated, because it appears to describe some (but not all) of the coercions that now work via CoerceUnsized. Here’s some relevant forum discussion.