1 2 3 4 5 6 7 8 9 10 11 12 13
// compile-flags: -Znext-solver // check-pass #![feature(trait_upcasting)] trait Foo: Bar<i32> + Bar<u32> {} trait Bar<T> {} fn main() { let x: &dyn Foo = todo!(); let y: &dyn Bar<i32> = x; let z: &dyn Bar<u32> = x; }