error[E0308]: mismatched types --> $DIR/invalid-upcast.rs:54:35 | LL | let _: &dyn std::fmt::Debug = baz; | -------------------- ^^^ expected trait `Debug`, found trait `Baz` | | | expected due to this | = note: expected reference `&dyn Debug` found reference `&dyn Baz` error[E0308]: mismatched types --> $DIR/invalid-upcast.rs:56:24 | LL | let _: &dyn Send = baz; | --------- ^^^ expected trait `Send`, found trait `Baz` | | | expected due to this | = note: expected reference `&dyn Send` found reference `&dyn Baz` error[E0308]: mismatched types --> $DIR/invalid-upcast.rs:58:24 | LL | let _: &dyn Sync = baz; | --------- ^^^ expected trait `Sync`, found trait `Baz` | | | expected due to this | = note: expected reference `&dyn Sync` found reference `&dyn Baz` error[E0308]: mismatched types --> $DIR/invalid-upcast.rs:61:25 | LL | let bar: &dyn Bar = baz; | -------- ^^^ expected trait `Bar`, found trait `Baz` | | | expected due to this | = note: expected reference `&dyn Bar` found reference `&dyn Baz` error[E0308]: mismatched types --> $DIR/invalid-upcast.rs:63:35 | LL | let _: &dyn std::fmt::Debug = bar; | -------------------- ^^^ expected trait `Debug`, found trait `Bar` | | | expected due to this | = note: expected reference `&dyn Debug` found reference `&dyn Bar` error[E0308]: mismatched types --> $DIR/invalid-upcast.rs:65:24 | LL | let _: &dyn Send = bar; | --------- ^^^ expected trait `Send`, found trait `Bar` | | | expected due to this | = note: expected reference `&dyn Send` found reference `&dyn Bar` error[E0308]: mismatched types --> $DIR/invalid-upcast.rs:67:24 | LL | let _: &dyn Sync = bar; | --------- ^^^ expected trait `Sync`, found trait `Bar` | | | expected due to this | = note: expected reference `&dyn Sync` found reference `&dyn Bar` error[E0308]: mismatched types --> $DIR/invalid-upcast.rs:70:25 | LL | let foo: &dyn Foo = baz; | -------- ^^^ expected trait `Foo`, found trait `Baz` | | | expected due to this | = note: expected reference `&dyn Foo` found reference `&dyn Baz` error[E0308]: mismatched types --> $DIR/invalid-upcast.rs:72:35 | LL | let _: &dyn std::fmt::Debug = foo; | -------------------- ^^^ expected trait `Debug`, found trait `Foo` | | | expected due to this | = note: expected reference `&dyn Debug` found reference `&dyn Foo` error[E0308]: mismatched types --> $DIR/invalid-upcast.rs:74:24 | LL | let _: &dyn Send = foo; | --------- ^^^ expected trait `Send`, found trait `Foo` | | | expected due to this | = note: expected reference `&dyn Send` found reference `&dyn Foo` error[E0308]: mismatched types --> $DIR/invalid-upcast.rs:76:24 | LL | let _: &dyn Sync = foo; | --------- ^^^ expected trait `Sync`, found trait `Foo` | | | expected due to this | = note: expected reference `&dyn Sync` found reference `&dyn Foo` error[E0308]: mismatched types --> $DIR/invalid-upcast.rs:79:25 | LL | let foo: &dyn Foo = bar; | -------- ^^^ expected trait `Foo`, found trait `Bar` | | | expected due to this | = note: expected reference `&dyn Foo` found reference `&dyn Bar` error[E0308]: mismatched types --> $DIR/invalid-upcast.rs:81:35 | LL | let _: &dyn std::fmt::Debug = foo; | -------------------- ^^^ expected trait `Debug`, found trait `Foo` | | | expected due to this | = note: expected reference `&dyn Debug` found reference `&dyn Foo` error[E0308]: mismatched types --> $DIR/invalid-upcast.rs:83:24 | LL | let _: &dyn Send = foo; | --------- ^^^ expected trait `Send`, found trait `Foo` | | | expected due to this | = note: expected reference `&dyn Send` found reference `&dyn Foo` error[E0308]: mismatched types --> $DIR/invalid-upcast.rs:85:24 | LL | let _: &dyn Sync = foo; | --------- ^^^ expected trait `Sync`, found trait `Foo` | | | expected due to this | = note: expected reference `&dyn Sync` found reference `&dyn Foo` error: aborting due to 15 previous errors For more information about this error, try `rustc --explain E0308`.