#![feature(trait_alias)] | |
struct B; | |
struct C; | |
trait Tr {} | |
impl Tr for B {} | |
impl Tr for C {} | |
trait Tr2<S> = Into<S>; | |
fn foo2<T: Tr2<()>>() {} | |
fn foo() -> impl Tr { | |
let x = foo2::<_>(); | |
match true { | |
true => B, | |
false => C, | |
//~^ `match` arms have incompatible types | |
} | |
} | |
fn main() {} |