rust/tests/ui/delegation/explicit-paths-in-traits-pass.rs
2024-03-27 15:51:48 +03:00

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);
}