mirror of https://github.com/rust-lang/rust
28 lines
359 B
Rust
28 lines
359 B
Rust
//@ run-pass
|
|
#![allow(dead_code)]
|
|
struct S<T, U = u16> {
|
|
a: T,
|
|
b: U,
|
|
}
|
|
|
|
trait Tr {
|
|
type A;
|
|
}
|
|
impl Tr for u8 {
|
|
type A = S<u8, u16>;
|
|
}
|
|
|
|
fn f<T: Tr<A = S<u8>>>() {
|
|
let s = T::A { a: 0, b: 1 };
|
|
match s {
|
|
T::A { a, b } => {
|
|
assert_eq!(a, 0);
|
|
assert_eq!(b, 1);
|
|
}
|
|
}
|
|
}
|
|
|
|
fn main() {
|
|
f::<u8>();
|
|
}
|