#![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() {}
