diff options
Diffstat (limited to 'tests/ui/traits/next-solver/alias_eq_substs_eq_not_intercrate.rs')
-rw-r--r-- | tests/ui/traits/next-solver/alias_eq_substs_eq_not_intercrate.rs | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/tests/ui/traits/next-solver/alias_eq_substs_eq_not_intercrate.rs b/tests/ui/traits/next-solver/alias_eq_substs_eq_not_intercrate.rs new file mode 100644 index 000000000..4717aa804 --- /dev/null +++ b/tests/ui/traits/next-solver/alias_eq_substs_eq_not_intercrate.rs @@ -0,0 +1,17 @@ +// compile-flags: -Znext-solver + +// check that a `alias-eq(<?a as TraitB>::Assoc, <?b as TraitB>::Assoc)` goal fails +// during coherence. We must not incorrectly constrain `?a` and `?b` to be +// equal. + +trait TraitB { + type Assoc; +} + +trait Overlaps<T> {} + +impl<T: TraitB> Overlaps<Box<T>> for <T as TraitB>::Assoc {} +impl<U: TraitB> Overlaps<U> for <U as TraitB>::Assoc {} +//~^ ERROR conflicting implementations of trait + +fn main() {} |