Add regression test for issue 91831
This commit is contained in:
parent
9d82de19df
commit
92646739fe
2 changed files with 33 additions and 0 deletions
|
|
@ -0,0 +1,13 @@
|
|||
// Regression test for #91831
|
||||
|
||||
struct Foo<'a>(&'a i32);
|
||||
|
||||
impl<'a> Foo<'a> {
|
||||
fn modify(&'a mut self) {}
|
||||
}
|
||||
|
||||
fn bar(foo: &mut Foo) {
|
||||
foo.modify(); //~ ERROR lifetime may not live long enough
|
||||
}
|
||||
|
||||
fn main() {}
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
error: lifetime may not live long enough
|
||||
--> $DIR/ex3-both-anon-regions-one-is-struct-5.rs:10:5
|
||||
|
|
||||
LL | fn bar(foo: &mut Foo) {
|
||||
| --- - let's call the lifetime of this reference `'1`
|
||||
| |
|
||||
| has type `&mut Foo<'2>`
|
||||
LL | foo.modify();
|
||||
| ^^^^^^^^^^^^ argument requires that `'1` must outlive `'2`
|
||||
|
|
||||
= note: requirement occurs because of a mutable reference to `Foo<'_>`
|
||||
= note: mutable references are invariant over their type parameter
|
||||
= help: see <https://doc.rust-lang.org/nomicon/subtyping.html> for more information about variance
|
||||
help: consider introducing a named lifetime parameter
|
||||
|
|
||||
LL | fn bar<'a>(foo: &'a mut Foo<'a>) {
|
||||
| ++++ ++ ++++
|
||||
|
||||
error: aborting due to 1 previous error
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue