#![feature(fn_delegation)] #![allow(incomplete_features)] 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 ::C; //~^ ERROR item `C` is an associated method, which doesn't match its trait `Trait` //~| ERROR expected function, found associated constant `Trait::C` reuse ::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 ::baz; //~^ ERROR method `baz` is not a member of trait `Trait` //~| ERROR cannot find method or associated constant `baz` in trait `Trait` reuse ::bar; reuse foo { &self.0 } //~^ ERROR cannot find function `foo` in this scope reuse Trait::foo2 { self.0 } //~^ ERROR cannot find function `foo2` in trait `Trait` //~| ERROR method `foo2` is not a member of trait `Trait` } mod prefix {} reuse unresolved_prefix::{a, b, c}; //~ ERROR use of undeclared crate or module `unresolved_prefix` reuse prefix::{self, super, crate}; //~ ERROR `crate` in paths can only be used in start position fn main() {}