From 31d3783050c1d09be1313ffdf6609dda7084cc98 Mon Sep 17 00:00:00 2001 From: Michael Hewson Date: Thu, 9 Nov 2017 09:16:55 -0500 Subject: [PATCH] fixed all the compile-fail error messages now that we've fixed the bug where constraint origins were getting overwritten, the good error messages are back (with some tweaks) --- .../explicit-self-lifetime-mismatch.rs | 14 +++++++++++--- src/test/compile-fail/issue-17740.rs | 10 ++++++++-- src/test/compile-fail/ufcs-explicit-self-bad.rs | 15 ++++++++++----- 3 files changed, 29 insertions(+), 10 deletions(-) diff --git a/src/test/compile-fail/explicit-self-lifetime-mismatch.rs b/src/test/compile-fail/explicit-self-lifetime-mismatch.rs index 0c3ee1739a31..eac134ff3cc7 100644 --- a/src/test/compile-fail/explicit-self-lifetime-mismatch.rs +++ b/src/test/compile-fail/explicit-self-lifetime-mismatch.rs @@ -1,5 +1,3 @@ -//~ ERROR mismatched types -//~| ERROR mismatched types // Copyright 2014 The Rust Project Developers. See the COPYRIGHT // file at the top-level directory of this distribution and at // http://rust-lang.org/COPYRIGHT. @@ -16,7 +14,17 @@ struct Foo<'a,'b> { } impl<'a,'b> Foo<'a,'b> { - fn bar(self: Foo<'b,'a>) {} + fn bar(self: + Foo<'b,'a> + //~^ ERROR mismatched method receiver + //~| expected type `Foo<'a, 'b>` + //~| found type `Foo<'b, 'a>` + //~| lifetime mismatch + //~| ERROR mismatched method receiver + //~| expected type `Foo<'a, 'b>` + //~| found type `Foo<'b, 'a>` + //~| lifetime mismatch + ) {} } fn main() {} diff --git a/src/test/compile-fail/issue-17740.rs b/src/test/compile-fail/issue-17740.rs index 99a7d39ce845..1d5ef4360dc1 100644 --- a/src/test/compile-fail/issue-17740.rs +++ b/src/test/compile-fail/issue-17740.rs @@ -1,5 +1,3 @@ -//~ ERROR mismatched types -//~| ERROR mismatched types // Copyright 2014 The Rust Project Developers. See the COPYRIGHT // file at the top-level directory of this distribution and at // http://rust-lang.org/COPYRIGHT. @@ -16,6 +14,14 @@ struct Foo<'a> { impl <'a> Foo<'a>{ fn bar(self: &mut Foo) { + //~^ mismatched method receiver + //~| expected type `Foo<'a>` + //~| found type `Foo<'_>` + //~| lifetime mismatch + //~| mismatched method receiver + //~| expected type `Foo<'a>` + //~| found type `Foo<'_>` + //~| lifetime mismatch } } diff --git a/src/test/compile-fail/ufcs-explicit-self-bad.rs b/src/test/compile-fail/ufcs-explicit-self-bad.rs index 553fd79f5e50..5160ceaf48e4 100644 --- a/src/test/compile-fail/ufcs-explicit-self-bad.rs +++ b/src/test/compile-fail/ufcs-explicit-self-bad.rs @@ -1,7 +1,3 @@ -//~ ERROR mismatched types -//~| ERROR mismatched types -//~| ERROR mismatched types -//~| ERROR mismatched types // Copyright 2012 The Rust Project Developers. See the COPYRIGHT // file at the top-level directory of this distribution and at // http://rust-lang.org/COPYRIGHT. @@ -51,8 +47,17 @@ trait SomeTrait { impl<'a, T> SomeTrait for &'a Bar { fn dummy1(self: &&'a Bar) { } - fn dummy2(self: &Bar) {} + fn dummy2(self: &Bar) {} //~ ERROR mismatched method receiver + //~^ ERROR mismatched method receiver fn dummy3(self: &&Bar) {} + //~^ ERROR mismatched method receiver + //~| expected type `&'a Bar` + //~| found type `&Bar` + //~| lifetime mismatch + //~| ERROR mismatched method receiver + //~| expected type `&'a Bar` + //~| found type `&Bar` + //~| lifetime mismatch } fn main() {