28 lines
559 B
Rust
28 lines
559 B
Rust
//! 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 <https://github.com/rust-lang/rust/issues/45>.
|
|
|
|
//@ run-pass
|
|
|
|
#![allow(dead_code)]
|
|
#[derive(Debug)]
|
|
struct Pair<T, U> {
|
|
a: T,
|
|
b: U,
|
|
}
|
|
|
|
struct Triple {
|
|
x: isize,
|
|
y: isize,
|
|
z: isize,
|
|
}
|
|
|
|
fn f<T, U>(x: T, y: U) -> Pair<T, U> {
|
|
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);
|
|
}
|