mirror of
https://github.com/rust-lang/rust.git
synced 2024-12-04 20:54:13 +00:00
28 lines
486 B
Rust
28 lines
486 B
Rust
//@ 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);
|
|
}
|