Fix some style issues

pull/290/head
Yuki Okushi 4 years ago
parent 614212ef59
commit 09e800100a
No known key found for this signature in database
GPG Key ID: DABA5B072961C18A

@ -1,19 +1,16 @@
# Coercions # Coercions
Types can implicitly be coerced to change in certain contexts. These changes are Types can implicitly be coerced to change in certain contexts.
generally just *weakening* of types, largely focused around pointers and These changes are generally just *weakening* of types, largely focused around pointers and lifetimes.
lifetimes. They mostly exist to make Rust "just work" in more cases, and are They mostly exist to make Rust "just work" in more cases, and are largely harmless.
largely harmless.
For an exhaustive list of all the types of coercions, see the [Coercion types] section on the reference. For an exhaustive list of all the types of coercions, see the [Coercion types] section on the reference.
## Cases where coercions do not perform ## Cases where coercions do not perform
Note that we do not perform coercions when matching traits (except for Note that we do not perform coercions when matching traits (except for receivers, see below).
receivers, see below). If there is an impl for some type `U` and `T` coerces to If there is an `impl` for some type `U` and `T` coerces to `U`, that does not constitute an implementation for `T`.
`U`, that does not constitute an implementation for `T`. For example, the For example, the following will not type check, even though it is OK to coerce `t` to `&T` and there is an `impl` for `&T`:
following will not type check, even though it is OK to coerce `t` to `&T` and
there is an impl for `&T`:
```rust,compile_fail ```rust,compile_fail
trait Trait {} trait Trait {}
@ -28,6 +25,8 @@ fn main() {
} }
``` ```
which fails like the following:
```text ```text
error[E0277]: the trait bound `&mut i32: Trait` is not satisfied error[E0277]: the trait bound `&mut i32: Trait` is not satisfied
--> src/main.rs:9:9 --> src/main.rs:9:9

Loading…
Cancel
Save