Add regression test for issue 91831

This commit is contained in:
aklaiber 2025-09-16 06:36:22 +02:00
parent 9d82de19df
commit 92646739fe
2 changed files with 33 additions and 0 deletions

View file

@ -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() {}

View file

@ -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