diff options
| author | aklaiber <alex.klaiber@gmail.com> | 2025-09-16 06:36:22 +0200 |
|---|---|---|
| committer | aklaiber <alex.klaiber@gmail.com> | 2025-09-18 13:56:52 +0200 |
| commit | 92646739fe52bc4c40756db71f78fe83b666847e (patch) | |
| tree | dc951f8551d6776a02c1086c46a0cd48e346e3b4 /tests | |
| parent | 9d82de19dfae60e55c291f5f28e28cfc2c1b9630 (diff) | |
| download | rust-92646739fe52bc4c40756db71f78fe83b666847e.tar.gz rust-92646739fe52bc4c40756db71f78fe83b666847e.zip | |
Add regression test for issue 91831
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-one-is-struct-5.rs | 13 | ||||
| -rw-r--r-- | tests/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-one-is-struct-5.stderr | 20 |
2 files changed, 33 insertions, 0 deletions
diff --git a/tests/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-one-is-struct-5.rs b/tests/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-one-is-struct-5.rs new file mode 100644 index 00000000000..16039f177b4 --- /dev/null +++ b/tests/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-one-is-struct-5.rs @@ -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() {} diff --git a/tests/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-one-is-struct-5.stderr b/tests/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-one-is-struct-5.stderr new file mode 100644 index 00000000000..f02b65230b6 --- /dev/null +++ b/tests/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-one-is-struct-5.stderr @@ -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 + |
