#![feature(trait_upcasting)]
#![feature(trait_alias)]

// Although we *elaborate* `T: Alias` to `i32: B`, we should
// not consider `B` to be a supertrait of the type.
trait Alias = A where i32: B;

trait A {}

trait B {
    fn test(&self);
}

trait C: Alias {}

impl A for () {}

impl C for () {}

impl B for i32 {
    fn test(&self) {
        println!("hi {self}");
    }
}

fn test(x: &dyn C) -> &dyn B {
    x
    //~^ ERROR mismatched types
}

fn main() {
    let x: &dyn C = &();
}
