]>
Commit | Line | Data |
---|---|---|
1 | // check-fail | |
2 | #![feature(trait_upcasting)] | |
3 | #![allow(incomplete_features)] | |
4 | ||
5 | trait Bar<T> { | |
6 | fn bar(&self, _: T) {} | |
7 | } | |
8 | ||
9 | trait Foo : Bar<i32> + Bar<u32> { | |
10 | fn foo(&self, _: ()) {} | |
11 | } | |
12 | ||
13 | struct S; | |
14 | ||
15 | impl Bar<i32> for S {} | |
16 | impl Bar<u32> for S {} | |
17 | impl Foo for S {} | |
18 | ||
19 | fn main() { | |
20 | let s: &dyn Foo = &S; | |
21 | let t: &dyn Bar<_> = s; //~ ERROR mismatched types | |
22 | } |