trait Array<'a> { | |
type Element: 'a; | |
} | |
trait Visit { | |
fn visit() {} | |
} | |
impl<'a> Array<'a> for () { | |
type Element = &'a (); | |
} | |
impl Visit for () where | |
//(): for<'a> Array<'a, Element=&'a ()>, // No ICE | |
(): for<'a> Array<'a, Element=()>, // ICE | |
{} | |
fn main() { | |
<() as Visit>::visit(); | |
//~^ ERROR type mismatch resolving `<() as Array<'a>>::Element == ()` | |
} |