error[E0308]: mismatched types --> $DIR/equality2.rs:25:18 | LL | let _: u32 = hide(0_u32); | ^^^^^^^^^^^ expected u32, found opaque type | = note: expected type `u32` found opaque type `impl Foo` error[E0308]: mismatched types --> $DIR/equality2.rs:31:18 | LL | let _: i32 = Leak::leak(hide(0_i32)); | ^^^^^^^^^^^^^^^^^^^^^^^ expected i32, found associated type | = note: expected type `i32` found associated type `::T` = note: consider constraining the associated type `::T` to `i32` = note: for more information, visit https://doc.rust-lang.org/book/ch19-03-advanced-traits.html error[E0308]: mismatched types --> $DIR/equality2.rs:38:10 | LL | x = (x.1, | ^^^ expected u32, found i32 | = note: expected opaque type `impl Foo` (u32) found opaque type `impl Foo` (i32) error[E0308]: mismatched types --> $DIR/equality2.rs:41:10 | LL | x.0); | ^^^ expected i32, found u32 | = note: expected opaque type `impl Foo` (i32) found opaque type `impl Foo` (u32) error: aborting due to 4 previous errors For more information about this error, try `rustc --explain E0308`.