blob: 5b9c40ecedea889894702c2f9f31fbeed41f6848 [file] [log] [blame]
#![feature(type_alias_impl_trait)]
mod a {
type Foo = impl PartialEq<(Foo, i32)>;
struct Bar;
impl PartialEq<(Bar, i32)> for Bar {
#[define_opaque(Foo)]
fn eq(&self, _other: &(Foo, i32)) -> bool {
//~^ ERROR: `eq` has an incompatible type for trait
//~| ERROR: item does not constrain `a::Foo::{opaque#0}`
true
}
}
}
mod b {
type Foo = impl PartialEq<(Foo, i32)>;
//~^ ERROR: unconstrained opaque type
struct Bar;
impl PartialEq<(Foo, i32)> for Bar {
fn eq(&self, _other: &(Bar, i32)) -> bool {
//~^ ERROR: `eq` has an incompatible type for trait
true
}
}
}
fn main() {}