//@ run-pass #![feature(fn_delegation)] #![allow(incomplete_features)] mod to_reuse { pub fn foo(x: T) -> T { x } } trait Trait1 { fn foo(&self, _: T, x: U) -> U { x } } #[derive(Default)] struct F; impl Trait1 for F {} trait Trait2 { fn get_f(&self) -> &F { &F } reuse Trait1::foo as bar { self.get_f() } reuse to_reuse::foo as baz; } impl Trait2 for F {} fn main() { assert_eq!(F.bar(1u8, 2u16), 2u16); assert_eq!(F::baz(1u8), 1u8); }