mirror of https://github.com/rust-lang/rust
32 lines
825 B
Rust
32 lines
825 B
Rust
#![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>(T);
|
|
|
|
trait Tr {
|
|
type Pr;
|
|
}
|
|
|
|
impl<T> Tr for S<T> {
|
|
type Pr = ();
|
|
}
|
|
|
|
#[cfg(shadowed)]
|
|
impl S<()> {
|
|
type Pr = i32;
|
|
}
|
|
|
|
fn main() {
|
|
let _: S::<bool>::Pr = ();
|
|
//[shadowed]~^ ERROR associated type `Pr` not found
|
|
//[uncovered]~^^ ERROR ambiguous associated type
|
|
}
|