about summary refs log tree commit diff
diff options
context:
space:
mode:
authorScott McMurray <scottmcm@users.noreply.github.com>2018-10-08 01:13:37 -0700
committerScott McMurray <scottmcm@users.noreply.github.com>2018-10-19 22:26:02 -0700
commit4ab691ac2c3dbfc28ecaeb292f76c933adb0a5e7 (patch)
treee8deaab6366eeb70addab6f709aef9a9f42960dd
parentae130b0889181e63b96bc32d5ce17b432f9225b1 (diff)
downloadrust-4ab691ac2c3dbfc28ecaeb292f76c933adb0a5e7.tar.gz
rust-4ab691ac2c3dbfc28ecaeb292f76c933adb0a5e7.zip
17905 also no longer errors, thanks to IHLE
But its test was written in an outdated way that hits a different error despite IHLE, so keep a variant around for that case.
-rw-r--r--src/test/ui/issues/issue-17905-2.rs26
-rw-r--r--src/test/ui/issues/issue-17905-2.stderr45
-rw-r--r--src/test/ui/issues/issue-17905.rs8
-rw-r--r--src/test/ui/issues/issue-17905.stderr9
4 files changed, 76 insertions, 12 deletions
diff --git a/src/test/ui/issues/issue-17905-2.rs b/src/test/ui/issues/issue-17905-2.rs
new file mode 100644
index 00000000000..7b4a40e26b1
--- /dev/null
+++ b/src/test/ui/issues/issue-17905-2.rs
@@ -0,0 +1,26 @@
+// 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.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+#[derive(Debug)]
+struct Pair<T, V> (T, V);
+
+impl Pair<
+    &str,
+    isize
+> {
+    fn say(self: &Pair<&str, isize>) {
+        println!("{:?}", self);
+    }
+}
+
+fn main() {
+    let result = &Pair("shane", 1);
+    result.say();
+}
diff --git a/src/test/ui/issues/issue-17905-2.stderr b/src/test/ui/issues/issue-17905-2.stderr
new file mode 100644
index 00000000000..f6f23be2ab8
--- /dev/null
+++ b/src/test/ui/issues/issue-17905-2.stderr
@@ -0,0 +1,45 @@
+error[E0308]: mismatched method receiver
+  --> $DIR/issue-17905-2.rs:18:18
+   |
+LL |     fn say(self: &Pair<&str, isize>) {
+   |                  ^^^^^^^^^^^^^^^^^^ lifetime mismatch
+   |
+   = note: expected type `Pair<&'_ str, _>`
+              found type `Pair<&str, _>`
+note: the anonymous lifetime #2 defined on the method body at 18:5...
+  --> $DIR/issue-17905-2.rs:18:5
+   |
+LL | /     fn say(self: &Pair<&str, isize>) {
+LL | |         println!("{:?}", self);
+LL | |     }
+   | |_____^
+note: ...does not necessarily outlive the lifetime '_ as defined on the impl at 15:5
+  --> $DIR/issue-17905-2.rs:15:5
+   |
+LL |     &str,
+   |     ^
+
+error[E0308]: mismatched method receiver
+  --> $DIR/issue-17905-2.rs:18:18
+   |
+LL |     fn say(self: &Pair<&str, isize>) {
+   |                  ^^^^^^^^^^^^^^^^^^ lifetime mismatch
+   |
+   = note: expected type `Pair<&'_ str, _>`
+              found type `Pair<&str, _>`
+note: the lifetime '_ as defined on the impl at 15:5...
+  --> $DIR/issue-17905-2.rs:15:5
+   |
+LL |     &str,
+   |     ^
+note: ...does not necessarily outlive the anonymous lifetime #2 defined on the method body at 18:5
+  --> $DIR/issue-17905-2.rs:18:5
+   |
+LL | /     fn say(self: &Pair<&str, isize>) {
+LL | |         println!("{:?}", self);
+LL | |     }
+   | |_____^
+
+error: aborting due to 2 previous errors
+
+For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/ui/issues/issue-17905.rs b/src/test/ui/issues/issue-17905.rs
index f11d482ea16..fc5069d9443 100644
--- a/src/test/ui/issues/issue-17905.rs
+++ b/src/test/ui/issues/issue-17905.rs
@@ -8,15 +8,17 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+// run-pass
+
 #[derive(Debug)]
 struct Pair<T, V> (T, V);
 
 impl Pair<
-    &str, //~ ERROR missing lifetime specifier
+    &str,
     isize
 > {
-    fn say(self: &Pair<&str, isize>) {
-        println!("{}", self);
+    fn say(&self) {
+        println!("{:?}", self);
     }
 }
 
diff --git a/src/test/ui/issues/issue-17905.stderr b/src/test/ui/issues/issue-17905.stderr
deleted file mode 100644
index 1a7aba17480..00000000000
--- a/src/test/ui/issues/issue-17905.stderr
+++ /dev/null
@@ -1,9 +0,0 @@
-error[E0106]: missing lifetime specifier
-  --> $DIR/issue-17905.rs:15:5
-   |
-LL |     &str, //~ ERROR missing lifetime specifier
-   |     ^ expected lifetime parameter
-
-error: aborting due to previous error
-
-For more information about this error, try `rustc --explain E0106`.