diff options
| author | Matthias Krüger <476013+matthiaskrgr@users.noreply.github.com> | 2025-06-14 11:27:12 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-06-14 11:27:12 +0200 |
| commit | 22f91aefd5b0ec5d17f9dfe8f6e8ceb5af25c8b3 (patch) | |
| tree | cb0b99d4f05c55816e20716f11c9491399b185fd /compiler/rustc_codegen_llvm/src/llvm/mod.rs | |
| parent | 4bf7765388da436dc952ac7300ffc114cff37676 (diff) | |
| parent | dac9d78647f2a1483710e2417d817c7df04eba8d (diff) | |
| download | rust-22f91aefd5b0ec5d17f9dfe8f6e8ceb5af25c8b3.tar.gz rust-22f91aefd5b0ec5d17f9dfe8f6e8ceb5af25c8b3.zip | |
Rollup merge of #142484 - dtolnay:bsetextract, r=m-ou-se
Remove unneeded lifetime bound from signature of BTreeSet::extract_if
One way to observe the difference between these signatures, using 0 explicit lifetimes and 0 contrived where-clauses:
```rust
use std::collections::btree_set::{BTreeSet, ExtractIf};
use std::ops::RangeFull;
fn repro(
set: &mut BTreeSet<i32>,
predicate: impl Fn(i32) -> bool,
) -> ExtractIf<i32, RangeFull, impl FnMut(&i32) -> bool> {
set.extract_if(.., move |x| predicate(*x))
}
```
**Before:**
```console
error[E0311]: the parameter type `impl Fn(i32) -> bool` may not live long enough
--> src/lib.rs:8:5
|
5 | set: &mut BTreeSet<i32>,
| ------------------ the parameter type `impl Fn(i32) -> bool` must be valid for the anonymous lifetime defined here...
...
8 | set.extract_if(.., move |x| predicate(*x))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ...so that the type `impl Fn(i32) -> bool` will meet its required lifetime bounds
|
help: consider adding an explicit lifetime bound
|
4 ~ fn repro<'a>(
5 ~ set: &'a mut BTreeSet<i32>,
6 ~ predicate: impl Fn(i32) -> bool + 'a,
7 ~ ) -> ExtractIf<'a, i32, RangeFull, impl FnMut(&i32) -> bool> {
|
```
**After:** compiles success.
- Tracking issue: https://github.com/rust-lang/rust/issues/70530
Diffstat (limited to 'compiler/rustc_codegen_llvm/src/llvm/mod.rs')
0 files changed, 0 insertions, 0 deletions
