23 lines
350 B
Rust
23 lines
350 B
Rust
// compile-flags: -Ztrait-solver=next
|
|
// check-pass
|
|
|
|
trait Mirror {
|
|
type Assoc;
|
|
}
|
|
|
|
impl<T> Mirror for T {
|
|
type Assoc = T;
|
|
}
|
|
|
|
trait Test {}
|
|
impl Test for i64 {}
|
|
impl Test for u64 {}
|
|
|
|
fn mirror_me<T: Mirror>(t: T, s: <T as Mirror>::Assoc) where <T as Mirror>::Assoc: Test {}
|
|
|
|
fn main() {
|
|
let mut x = 0;
|
|
mirror_me(x, 1);
|
|
x = 1i64;
|
|
}
|