#![feature(type_alias_impl_trait)] //@ check-pass struct Foo(T); impl Foo { fn method() {} fn method2(self) {} } type Bar = impl Sized; fn bar() -> Bar { 42_u32 } impl Foo { fn foo() -> Bar { Self::method(); Foo::::method(); let x = Foo(bar()); Foo::method2(x); let x = Self(bar()); Self::method2(x); todo!() } } fn main() {}