diff options
| author | Matthias Krüger <matthias.krueger@famsik.de> | 2024-08-08 18:57:01 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-08-08 18:57:01 +0200 |
| commit | 53f2ac30e40958803cc42d10b2c4724584527ddb (patch) | |
| tree | 3e6010fd51f2550b6c4e4293c80f4e6c33bdd678 /tests | |
| parent | 2d7075cf0018f7dc642cb2909deba764c36713dc (diff) | |
| parent | 8eaef3eca04793eeb380870f8b9701c0e6727cd9 (diff) | |
| download | rust-53f2ac30e40958803cc42d10b2c4724584527ddb.tar.gz rust-53f2ac30e40958803cc42d10b2c4724584527ddb.zip | |
Rollup merge of #128648 - tiif:issue-125873, r=lcnr
Add regression test Fixes #125873
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/ui/inline-const/using-late-bound-from-closure.rs | 16 | ||||
| -rw-r--r-- | tests/ui/inline-const/using-late-bound-from-closure.stderr | 19 |
2 files changed, 35 insertions, 0 deletions
diff --git a/tests/ui/inline-const/using-late-bound-from-closure.rs b/tests/ui/inline-const/using-late-bound-from-closure.rs new file mode 100644 index 00000000000..2b12b2e26a2 --- /dev/null +++ b/tests/ui/inline-const/using-late-bound-from-closure.rs @@ -0,0 +1,16 @@ +// Test for ICE: cannot convert ReLateParam to a region vid +// https://github.com/rust-lang/rust/issues/125873 + +#![feature(closure_lifetime_binder)] +fn foo() { + let a = for<'a> |b: &'a ()| -> &'a () { + const { + let awd = (); + let _: &'a () = &awd; + //~^ `awd` does not live long enough + }; + b + }; +} + +fn main() {} diff --git a/tests/ui/inline-const/using-late-bound-from-closure.stderr b/tests/ui/inline-const/using-late-bound-from-closure.stderr new file mode 100644 index 00000000000..d6e1579aa34 --- /dev/null +++ b/tests/ui/inline-const/using-late-bound-from-closure.stderr @@ -0,0 +1,19 @@ +error[E0597]: `awd` does not live long enough + --> $DIR/using-late-bound-from-closure.rs:9:29 + | +LL | let a = for<'a> |b: &'a ()| -> &'a () { + | -- lifetime `'a` defined here +LL | const { +LL | let awd = (); + | --- binding `awd` declared here +LL | let _: &'a () = &awd; + | ------ ^^^^ borrowed value does not live long enough + | | + | type annotation requires that `awd` is borrowed for `'a` +LL | +LL | }; + | - `awd` dropped here while still borrowed + +error: aborting due to 1 previous error + +For more information about this error, try `rustc --explain E0597`. |
