| #![feature(fn_delegation)] | |
| #![allow(incomplete_features)] | |
| trait Trait { | |
| fn static_method(x: i32) -> i32 { x } | |
| } | |
| struct F; | |
| struct S(F); | |
| impl Trait for S {} | |
| fn foo(x: i32) -> i32 { x } | |
| fn bar<T: Default>(_: T) { | |
| reuse Trait::static_method { | |
| //~^ ERROR mismatched types | |
| let _ = T::Default(); | |
| //~^ ERROR can't use generic parameters from outer item | |
| } | |
| } | |
| fn main() { | |
| let y = 0; | |
| reuse <S as Trait>::static_method { | |
| let x = y; | |
| //~^ ERROR can't capture dynamic environment in a fn item | |
| foo(self); | |
| let reuse_ptr: fn(i32) -> i32 = static_method; | |
| reuse_ptr(0) | |
| } | |
| self.0; | |
| //~^ ERROR expected value, found module `self` | |
| let z = x; | |
| //~^ ERROR cannot find value `x` in this scope | |
| } |