//@ run-pass | |
#![feature(fn_delegation)] | |
#![allow(incomplete_features)] | |
trait ToReuse { | |
fn foo(&self, x: i32) -> i32 { x } | |
fn foo1(x: i32) -> i32 { x } | |
} | |
fn foo2() -> i32 { 42 } | |
trait Trait: ToReuse { | |
reuse ToReuse::foo; | |
reuse <Self as ToReuse>::foo1; | |
reuse foo2; | |
} | |
struct S; | |
impl ToReuse for S {} | |
impl Trait for S {} | |
fn main() { | |
assert_eq!(<S as Trait>::foo(&S, 1), 1); | |
assert_eq!(<S as Trait>::foo1(1), 1); | |
assert_eq!(<S as Trait>::foo2(), 42); | |
} |