#![feature(inherent_associated_types)] #![allow(incomplete_features)] // Check that it's okay to report “[inherent] associated type […] not found” for inherent associated // type candidates that are not applicable (due to unsuitable Self type) even if there exists a // “shadowed” associated type from a trait with the same name since its use would be ambiguous // anyway if the IAT didn't exist. // FIXME(inherent_associated_types): Figure out which error would be more helpful here. // revisions: shadowed uncovered struct S(T); trait Tr { type Pr; } impl Tr for S { type Pr = (); } #[cfg(shadowed)] impl S<()> { type Pr = i32; } fn main() { let _: S::::Pr = (); //[shadowed]~^ ERROR associated type `Pr` not found //[uncovered]~^^ ERROR ambiguous associated type }