error[E0308]: mismatched types --> $DIR/invalid-upcast.rs:53: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:55: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:57: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:60: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:62: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:64: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:66: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:69: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:71: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:73: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:75: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:78: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:80: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:82: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:84: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`.