Skip to content

Commit

Permalink
17905 also no longer errors, thanks to IHLE
Browse files Browse the repository at this point in the history
But its test was written in an outdated way that hits a different error despite IHLE, so keep a variant around for that case.
  • Loading branch information
scottmcm committed Oct 20, 2018
1 parent ae130b0 commit 4ab691a
Show file tree
Hide file tree
Showing 4 changed files with 76 additions and 12 deletions.
26 changes: 26 additions & 0 deletions src/test/ui/issues/issue-17905-2.rs
Original file line number Diff line number Diff line change
@@ -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();
}
45 changes: 45 additions & 0 deletions src/test/ui/issues/issue-17905-2.stderr
Original file line number Diff line number Diff line change
@@ -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`.
8 changes: 5 additions & 3 deletions src/test/ui/issues/issue-17905.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
}

Expand Down
9 changes: 0 additions & 9 deletions src/test/ui/issues/issue-17905.stderr

This file was deleted.

0 comments on commit 4ab691a

Please sign in to comment.