From 992ba801c271aeb087b1619467c487e35bae4e65 Mon Sep 17 00:00:00 2001 From: Michael Goulet Date: Wed, 28 Dec 2022 06:44:29 +0000 Subject: [PATCH] Add test for bad suggestion --- .../mismatched-where-clause-regions.rs | 12 ++++++++++++ .../mismatched-where-clause-regions.stderr | 17 +++++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 src/test/ui/generic-associated-types/mismatched-where-clause-regions.rs create mode 100644 src/test/ui/generic-associated-types/mismatched-where-clause-regions.stderr diff --git a/src/test/ui/generic-associated-types/mismatched-where-clause-regions.rs b/src/test/ui/generic-associated-types/mismatched-where-clause-regions.rs new file mode 100644 index 000000000000..8caf5317693e --- /dev/null +++ b/src/test/ui/generic-associated-types/mismatched-where-clause-regions.rs @@ -0,0 +1,12 @@ +trait Foo { + type T<'a1, 'b1> + where + 'a1: 'b1; +} + +impl Foo for () { + type T<'a2, 'b2> = () where 'b2: 'a2; + //~^ ERROR impl has stricter requirements than trait +} + +fn main() {} diff --git a/src/test/ui/generic-associated-types/mismatched-where-clause-regions.stderr b/src/test/ui/generic-associated-types/mismatched-where-clause-regions.stderr new file mode 100644 index 000000000000..91a030076408 --- /dev/null +++ b/src/test/ui/generic-associated-types/mismatched-where-clause-regions.stderr @@ -0,0 +1,17 @@ +error[E0276]: impl has stricter requirements than trait + --> $DIR/mismatched-where-clause-regions.rs:8:38 + | +LL | type T<'a1, 'b1> + | ---------------- definition of `T` from trait +... +LL | type T<'a2, 'b2> = () where 'b2: 'a2; + | ^^^ impl has extra requirement `'b2: 'a2` + | +help: copy the `where` clause predicates from the trait + | +LL | type T<'a2, 'b2> = () where 'a2: 'b2; + | ~~~~~~~~~~~~~~ + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0276`.