blob: df456f94507beab10d9df150d2c17a875bf19cca [file] [log] [blame]
#![feature(fn_delegation)]
//~^ WARN the feature `fn_delegation` is incomplete
trait Trait {
const C: u32 = 0;
type Type;
fn bar() {}
fn foo(&self, x: i32) -> i32 { x }
}
struct F;
impl Trait for F {
type Type = i32;
}
impl F {
fn foo(&self, x: i32) -> i32 { x }
}
struct S(F);
impl Trait for S {
//~^ ERROR not all trait items implemented, missing: `Type`
reuse <F as Trait>::C;
//~^ ERROR item `C` is an associated method, which doesn't match its trait `Trait`
//~| ERROR expected function, found associated constant `Trait::C`
reuse <F as Trait>::Type;
//~^ ERROR item `Type` is an associated method, which doesn't match its trait `Trait`
//~| ERROR expected method or associated constant, found associated type `Trait::Type`
reuse <F as Trait>::baz;
//~^ ERROR method `baz` is not a member of trait `Trait`
//~| ERROR cannot find method or associated constant `baz` in trait `Trait`
reuse <F as Trait>::bar;
reuse foo { &self.0 }
//~^ ERROR cannot find function `foo` in this scope
reuse F::foo { &self.0 }
//~^ ERROR cannot find function `foo` in `F`
//~| ERROR duplicate definitions with name `foo`
}
impl S {
reuse F::foo { &self.0 }
//~^ ERROR cannot find function `foo` in `F`
}
fn main() {}