// check-pass struct A; struct X; impl X { fn inner() -> A { outer::() } } fn outer() -> A { A } fn main() { let i: A<3usize> = outer::<3usize>(); let o: A<3usize> = X::inner::<3usize>(); }