error[E0404]: expected trait, found struct `Struct` --> $DIR/suggest-swapping-self-ty-and-trait.rs:10:13 | LL | impl<'a, T> Struct for Trait<'a, T> {} | ^^^^^^^^^ not a trait | help: `impl` items mention the trait being implemented first and the type it is being implemented for second | LL | impl<'a, T> Trait<'a, T> for Struct {} | ~~~~~~~~~~~~ ~~~~~~~~~ error[E0404]: expected trait, found enum `Enum` --> $DIR/suggest-swapping-self-ty-and-trait.rs:15:13 | LL | impl<'a, T> Enum for Trait<'a, T> {} | ^^^^^^^ not a trait | help: `impl` items mention the trait being implemented first and the type it is being implemented for second | LL | impl<'a, T> Trait<'a, T> for Enum {} | ~~~~~~~~~~~~ ~~~~~~~ error[E0404]: expected trait, found union `Union` --> $DIR/suggest-swapping-self-ty-and-trait.rs:18:13 | LL | impl<'a, T> Union for Trait<'a, T> {} | ^^^^^^^^ not a trait | help: `impl` items mention the trait being implemented first and the type it is being implemented for second | LL | impl<'a, T> Trait<'a, T> for Union {} | ~~~~~~~~~~~~ ~~~~~~~~ warning: trait objects without an explicit `dyn` are deprecated --> $DIR/suggest-swapping-self-ty-and-trait.rs:10:27 | LL | impl<'a, T> Struct for Trait<'a, T> {} | ^^^^^^^^^^^^ | = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! = note: for more information, see = note: `#[warn(bare_trait_objects)]` on by default help: use `dyn` | LL | impl<'a, T> Struct for dyn Trait<'a, T> {} | +++ error: aborting due to 3 previous errors; 1 warning emitted For more information about this error, try `rustc --explain E0404`.