1 error: unconstrained opaque type
2 --> $DIR/recursive-type-alias-impl-trait-declaration-too-subtle.rs:4:16
4 LL | type Foo = impl PartialEq<(Foo, i32)>;
5 | ^^^^^^^^^^^^^^^^^^^^^^^^^^
7 = note: `Foo` must be used in combination with a concrete type within the same module
9 error: unconstrained opaque type
10 --> $DIR/recursive-type-alias-impl-trait-declaration-too-subtle.rs:17:16
12 LL | type Foo = impl PartialEq<(Foo, i32)>;
13 | ^^^^^^^^^^^^^^^^^^^^^^^^^^
15 = note: `Foo` must be used in combination with a concrete type within the same module
17 error[E0276]: impl has stricter requirements than trait
18 --> $DIR/recursive-type-alias-impl-trait-declaration-too-subtle.rs:23:9
20 LL | fn eq(&self, _other: &(Bar, i32)) -> bool {
21 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ impl has extra requirement `b::Bar: PartialEq<(b::Bar, i32)>`
23 error: aborting due to 3 previous errors
25 For more information about this error, try `rustc --explain E0276`.