//@ compile-flags: -Znext-solver //@ check-pass trait Mirror { type Assoc; } impl Mirror for T { type Assoc = T; } trait Test {} impl Test for i64 {} impl Test for u64 {} fn mirror_me(t: T, s: ::Assoc) where ::Assoc: Test {} fn main() { let mut x = 0; mirror_me(x, 1); x = 1i64; }