about summary refs log tree commit diff
path: root/compiler/rustc_codegen_llvm/src/llvm_util.rs
diff options
context:
space:
mode:
authorMatthias Krüger <matthias.krueger@famsik.de>2023-11-02 15:31:21 +0100
committerGitHub <noreply@github.com>2023-11-02 15:31:21 +0100
commit957562583538aa4934957121fef155cbf7324d56 (patch)
tree7a420e8318d5fe21441796feba4f0f3eedffbd1e /compiler/rustc_codegen_llvm/src/llvm_util.rs
parent298edd6d463c4c4f32cff3e6a18fd569854ba5c5 (diff)
parent1221b7b652a9859340fad0cd6db78c7493f3847f (diff)
downloadrust-957562583538aa4934957121fef155cbf7324d56.tar.gz
rust-957562583538aa4934957121fef155cbf7324d56.zip
Rollup merge of #117495 - compiler-errors:unsize-docs, r=lcnr
Clarify `Unsize` documentation

The documentation erroneously says that:

```rust
/// - Types implementing a trait `Trait` also implement `Unsize<dyn Trait>`.
/// - Structs `Foo<..., T, ...>` implement `Unsize<Foo<..., U, ...>>` if all of these conditions
///   are met:
///   - `T: Unsize<U>`.
///   - Only the last field of `Foo` has a type involving `T`.
///   - `Bar<T>: Unsize<Bar<U>>`, where `Bar<T>` stands for the actual type of that last field.
```

Specifically, `T: Unsize<U>` is not required to hold -- only the final field must implement `FinalField<T>: Unsize<FinalField<U>>`. This can be demonstrated by the test I added.

---

Second commit fleshes out the documentation a lot more.
Diffstat (limited to 'compiler/rustc_codegen_llvm/src/llvm_util.rs')
0 files changed, 0 insertions, 0 deletions