//@ check-pass | |
//@ compile-flags: -Zvalidate-mir | |
// This test checks that bivariant parameters are handled correctly | |
// in the mir. | |
#![allow(coherence_leak_check)] | |
trait Trait { | |
type Assoc; | |
} | |
struct Foo<T, U>(T) | |
where | |
T: Trait<Assoc = U>; | |
impl Trait for for<'a> fn(&'a ()) { | |
type Assoc = u32; | |
} | |
impl Trait for fn(&'static ()) { | |
type Assoc = String; | |
} | |
fn foo(x: Foo<for<'a> fn(&'a ()), u32>) -> Foo<fn(&'static ()), String> { | |
x | |
} | |
fn main() {} |