//! Check that type parameters in generic function arg position and in "nested" return type position //! can be inferred on an invocation of the generic function. //! //! See . //@ run-pass #![allow(dead_code)] #[derive(Debug)] struct Pair { a: T, b: U, } struct Triple { x: isize, y: isize, z: isize, } fn f(x: T, y: U) -> Pair { return Pair { a: x, b: y }; } pub fn main() { println!("{}", f(Triple {x: 3, y: 4, z: 5}, 4).a.x); println!("{}", f(5, 6).a); }