rust/tests/ui/traits/next-solver/normalization-shadowing/alias-bound-shadowed-by-env.rs

20 lines
420 B
Rust

//@ compile-flags: -Znext-solver
//@ check-pass
trait Super {
type Assoc;
}
trait Bound {
type Assoc: Super<Assoc = u32>;
}
trait Trait: Super {}
// Elaborating the environment results in a `T::Assoc: Super` where-bound.
// This where-bound must not prevent normalization via the `Super<Assoc = u32>`
// item bound.
fn heck<T: Bound<Assoc: Trait>>(x: <T::Assoc as Super>::Assoc) -> u32 {
x
}
fn main() {}