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