| error[E0308]: mismatched types |
| --> $DIR/upcast-defining-opaque.rs:21:5 |
| | |
| LL | type Foo = impl Sized; |
| | ---------- the found opaque type |
| LL | |
| LL | fn upcast(x: &dyn Sub<Assoc = Foo>) -> &dyn Super<Assoc = i32> { |
| | ----------------------- expected `&dyn Super<Assoc = i32>` because of return type |
| LL | x |
| | ^ expected trait `Super`, found trait `Sub` |
| | |
| = note: expected reference `&dyn Super<Assoc = i32>` |
| found reference `&dyn Sub<Assoc = Foo>` |
| |
| error: aborting due to 1 previous error |
| |
| For more information about this error, try `rustc --explain E0308`. |