//@ build-pass (FIXME(62277): could be check-pass?)

// FIXME(eddyb) shorten the name so windows doesn't choke on it.
#![crate_name = "trait_test"]

// Regression test related to #56288. Check that a supertrait projection (of
// `Output`) that references `Self` is ok if there is another occurrence of
// the same supertrait that specifies the projection explicitly, even if
// the projection's associated type is not explicitly specified in the object type.
//
// Note that in order for this to compile, we need the `Self`-referencing projection
// to normalize fairly directly to a concrete type, otherwise the trait resolver
// will hate us.
//
// There is a test in `trait-object-with-self-in-projection-output-bad.rs` that
// having a normalizing, but `Self`-containing projection does not *by itself*
// allow you to avoid writing the projected type (`Output`, in this example)
// explicitly.

trait ConstI32 {
    type Out;
}

impl<T: ?Sized> ConstI32 for T {
    type Out = i32;
}

trait Base {
    type Output;
}

trait NormalizingHelper: Base<Output=<Self as ConstI32>::Out> + Base<Output=i32> {
    type Target;
}

impl Base for u32
{
    type Output = i32;
}

impl NormalizingHelper for u32
{
    type Target = i32;
}

fn main() {
    // Make sure this works both with and without the associated type
    // being specified.
    let _x: Box<dyn NormalizingHelper<Target=i32>> = Box::new(2u32);
    let _y: Box<dyn NormalizingHelper<Target=i32, Output=i32>> = Box::new(2u32);
}
