rust/tests/ui/traits/new-solver/assembly/assemble-normalizing-self-ty-impl-ambiguity.rs

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

28 lines
486 B
Rust
Raw Normal View History

// compile-flags: -Ztrait-solver=next
2023-07-20 03:40:59 -05:00
// check-pass
// Checks that we do not get ambiguity by considering an impl
// multiple times if we're able to normalize the self type.
2023-07-20 03:40:59 -05:00
trait Trait<'a> {}
impl<'a, T: 'a> Trait<'a> for T {}
fn impls_trait<'a, T: Trait<'a>>() {}
trait Id {
type Assoc;
}
impl<T> Id for T {
type Assoc = T;
}
fn call<T>() {
impls_trait::<<T as Id>::Assoc>();
}
fn main() {
call::<()>();
impls_trait::<<<() as Id>::Assoc as Id>::Assoc>();
}