1 error[E0053]: method `fmt` has an incompatible type for trait
2 --> $DIR/trait_type.rs:17:4
4 LL | fn fmt(&self, x: &str) -> () { }
5 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ types differ in mutability
7 = note: expected type `fn(&MyType, &mut std::fmt::Formatter<'_>) -> std::result::Result<(), std::fmt::Error>`
8 found type `fn(&MyType, &str)`
10 error[E0050]: method `fmt` has 1 parameter but the declaration in trait `std::fmt::Display::fmt` has 2
11 --> $DIR/trait_type.rs:22:11
13 LL | fn fmt(&self) -> () { }
14 | ^^^^^ expected 2 parameters, found 1
16 = note: `fmt` from trait: `fn(&Self, &mut std::fmt::Formatter<'_>) -> std::result::Result<(), std::fmt::Error>`
18 error[E0186]: method `fmt` has a `&self` declaration in the trait, but not in the impl
19 --> $DIR/trait_type.rs:27:4
21 LL | fn fmt() -> () { }
22 | ^^^^^^^^^^^^^^ expected `&self` in impl
24 = note: `fmt` from trait: `fn(&Self, &mut std::fmt::Formatter<'_>) -> std::result::Result<(), std::fmt::Error>`
26 error[E0046]: not all trait items implemented, missing: `fmt`
27 --> $DIR/trait_type.rs:31:1
29 LL | impl std::fmt::Display for MyType4 {}
30 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ missing `fmt` in implementation
32 = note: `fmt` from trait: `fn(&Self, &mut std::fmt::Formatter<'_>) -> std::result::Result<(), std::fmt::Error>`
34 error: aborting due to 4 previous errors
36 Some errors occurred: E0046, E0050, E0053, E0186.
37 For more information about an error, try `rustc --explain E0046`.