diff options
| author | bors <bors@rust-lang.org> | 2022-04-22 09:57:00 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2022-04-22 09:57:00 +0000 |
| commit | ed22428b7292db18f8e0b90e06b91a802c0bf647 (patch) | |
| tree | 7d10eacdd915fd08eaa80d0c05311803fbd7ed77 /compiler/rustc_llvm/llvm-wrapper/CoverageMappingWrapper.cpp | |
| parent | cf68cadc4556c5139e12c082e2c05fa716553e2b (diff) | |
| parent | 4424aa444c2b24c3728e3f09d85bd9b69f57a48d (diff) | |
| download | rust-ed22428b7292db18f8e0b90e06b91a802c0bf647.tar.gz rust-ed22428b7292db18f8e0b90e06b91a802c0bf647.zip | |
Auto merge of #8717 - Alexendoo:manual-split-once-manual-iter, r=dswij,xFrednet
`manual_split_once`: lint manual iteration of `SplitN`
changelog: `manual_split_once`: lint manual iteration of `SplitN`
Now lints:
```rust
let mut iter = "a.b.c".splitn(2, '.');
let first = iter.next().unwrap();
let second = iter.next().unwrap();
let mut iter = "a.b.c".splitn(2, '.');
let first = iter.next()?;
let second = iter.next()?;
let mut iter = "a.b.c".rsplitn(2, '.');
let first = iter.next().unwrap();
let second = iter.next().unwrap();
let mut iter = "a.b.c".rsplitn(2, '.');
let first = iter.next()?;
let second = iter.next()?;
```
It suggests (minus leftover whitespace):
```rust
let (first, second) = "a.b.c".split_once('.').unwrap();
let (first, second) = "a.b.c".split_once('.')?;
let (second, first) = "a.b.c".rsplit_once('.').unwrap();
let (second, first) = "a.b.c".rsplit_once('.')?;
```
Currently only lints if the statements are next to each other, as detecting the various kinds of shadowing was tricky, so the following won't lint
```rust
let mut iter = "a.b.c".splitn(2, '.');
let something_else = 1;
let first = iter.next()?;
let second = iter.next()?;
```
Diffstat (limited to 'compiler/rustc_llvm/llvm-wrapper/CoverageMappingWrapper.cpp')
0 files changed, 0 insertions, 0 deletions
