From b75ed4f61cb867388eb17280f3acd933fe933f26 Mon Sep 17 00:00:00 2001 From: Ayrton Date: Thu, 23 Jul 2020 20:21:28 -0400 Subject: [PATCH] added a test case for reporting mismatched traits --- src/test/ui/error-codes/E0308-2.rs | 12 ++++++++++++ src/test/ui/error-codes/E0308-2.stderr | 18 ++++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 src/test/ui/error-codes/E0308-2.rs create mode 100644 src/test/ui/error-codes/E0308-2.stderr diff --git a/src/test/ui/error-codes/E0308-2.rs b/src/test/ui/error-codes/E0308-2.rs new file mode 100644 index 00000000000..157f992da99 --- /dev/null +++ b/src/test/ui/error-codes/E0308-2.rs @@ -0,0 +1,12 @@ +trait DynEq {} + +impl<'a> PartialEq for &'a (dyn DynEq + 'static) { + fn eq(&self, _other: &Self) -> bool { + true + } +} + +impl Eq for &dyn DynEq {} //~ ERROR E0308 + +fn main() { +} diff --git a/src/test/ui/error-codes/E0308-2.stderr b/src/test/ui/error-codes/E0308-2.stderr new file mode 100644 index 00000000000..e7c5e4b4240 --- /dev/null +++ b/src/test/ui/error-codes/E0308-2.stderr @@ -0,0 +1,18 @@ +error[E0308]: mismatched types + --> $DIR/E0308-2.rs:9:6 + | +LL | impl Eq for &dyn DynEq {} + | ^^ lifetime mismatch + | + = note: expected trait `std::cmp::PartialEq` + found trait `std::cmp::PartialEq` +note: the lifetime `'_` as defined on the impl at 9:13... + --> $DIR/E0308-2.rs:9:13 + | +LL | impl Eq for &dyn DynEq {} + | ^ + = note: ...does not necessarily outlive the static lifetime + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0308`.