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