mirror of
https://github.com/rust-lang/rust-clippy
synced 2024-11-23 05:03:21 +00:00
Rollup merge of #97798 - WaffleLapkin:allow_for_suggestions_that_are_quite_far_away_from_each_other, r=estebank
Hide irrelevant lines in suggestions to allow for suggestions that are far from each other to be shown This is an attempt to fix suggestions one part of which is 6 lines or more far from the first. I've noticed "the problem" (of not showing some parts of the suggestion) here: https://github.com/rust-lang/rust/pull/97759#discussion_r889689230. I'm not sure about the implementation (this big closure is just bad and makes already complicated code even more so), but I want to at least discuss the result. Here is an example of how this changes the output: Before: ```text help: consider enclosing expression in a block | 3 ~ 'l: { match () { () => break 'l, 4 | 5 | 6 | 7 | 8 | ... ``` After: ```text help: consider enclosing expression in a block | 3 ~ 'l: { match () { () => break 'l, 4 | ... 31| 32~ } }; | ``` r? `@estebank` `@rustbot` label +A-diagnostics +A-suggestion-diagnostics
This commit is contained in:
commit
51e2d6a4a9
12 changed files with 102 additions and 21 deletions
|
@ -56,7 +56,25 @@ LL | if s == "43" {
|
|||
LL ~ return 43;
|
||||
LL | }
|
||||
LL | s == "42"
|
||||
LL | } {
|
||||
LL ~ return 45;
|
||||
LL | }
|
||||
LL | match s.len() {
|
||||
LL ~ 10 => 2,
|
||||
LL | 20 => {
|
||||
...
|
||||
LL | if foo() {
|
||||
LL ~ return 20;
|
||||
LL | }
|
||||
LL | println!("foo");
|
||||
LL ~ 3
|
||||
LL | };
|
||||
LL | }
|
||||
LL ~ 20
|
||||
LL | },
|
||||
LL ~ 40 => 30,
|
||||
LL ~ _ => 1,
|
||||
|
|
||||
|
||||
error: using `Option.and_then(|x| Some(y))`, which is more succinctly expressed as `map(|x| y)`
|
||||
--> $DIR/bind_instead_of_map_multipart.rs:61:13
|
||||
|
|
|
@ -98,7 +98,8 @@ LL + id: e_id,
|
|||
LL + name: "Player 1".to_string(),
|
||||
LL + some_data: vec![0x12, 0x34, 0x56, 0x78, 0x90],
|
||||
LL + };
|
||||
...
|
||||
LL + process_data(pack);
|
||||
|
|
||||
|
||||
error: all if blocks contain the same code at both the start and the end
|
||||
--> $DIR/shared_at_top_and_bottom.rs:94:5
|
||||
|
|
|
@ -28,7 +28,8 @@ LL + v
|
|||
LL + } else {
|
||||
LL + v2
|
||||
LL + }
|
||||
...
|
||||
LL + });
|
||||
|
|
||||
|
||||
error: usage of `contains_key` followed by `insert` on a `HashMap`
|
||||
--> $DIR/entry.rs:38:5
|
||||
|
@ -50,7 +51,8 @@ LL + v
|
|||
LL + } else {
|
||||
LL + v2
|
||||
LL + }
|
||||
...
|
||||
LL + });
|
||||
|
|
||||
|
||||
error: usage of `contains_key` followed by `insert` on a `HashMap`
|
||||
--> $DIR/entry.rs:47:5
|
||||
|
@ -72,7 +74,9 @@ LL + e.insert(v);
|
|||
LL + } else {
|
||||
LL + e.insert(v2);
|
||||
LL + return;
|
||||
...
|
||||
LL + }
|
||||
LL + }
|
||||
|
|
||||
|
||||
error: usage of `contains_key` followed by `insert` on a `HashMap`
|
||||
--> $DIR/entry.rs:57:5
|
||||
|
@ -111,7 +115,11 @@ LL + 1 if true => {
|
|||
LL + v
|
||||
LL + },
|
||||
LL + _ => {
|
||||
...
|
||||
LL + v2
|
||||
LL + },
|
||||
LL + }
|
||||
LL + });
|
||||
|
|
||||
|
||||
error: usage of `contains_key` followed by `insert` on a `HashMap`
|
||||
--> $DIR/entry.rs:75:5
|
||||
|
@ -133,7 +141,9 @@ LL + 0 => foo(),
|
|||
LL + _ => {
|
||||
LL + e.insert(v2);
|
||||
LL + },
|
||||
...
|
||||
LL + };
|
||||
LL + }
|
||||
|
|
||||
|
||||
error: usage of `contains_key` followed by `insert` on a `HashMap`
|
||||
--> $DIR/entry.rs:85:5
|
||||
|
@ -155,7 +165,26 @@ LL + match 0 {
|
|||
LL + 0 if false => {
|
||||
LL + v
|
||||
LL + },
|
||||
...
|
||||
LL + 1 => {
|
||||
LL + foo();
|
||||
LL + v
|
||||
LL + },
|
||||
LL + 2 | 3 => {
|
||||
LL + for _ in 0..2 {
|
||||
LL + foo();
|
||||
LL + }
|
||||
LL + if true {
|
||||
LL + v
|
||||
LL + } else {
|
||||
LL + v2
|
||||
LL + }
|
||||
LL + },
|
||||
LL + _ => {
|
||||
LL + v2
|
||||
LL + },
|
||||
LL + }
|
||||
LL + });
|
||||
|
|
||||
|
||||
error: usage of `contains_key` followed by `insert` on a `HashMap`
|
||||
--> $DIR/entry.rs:119:5
|
||||
|
|
|
@ -17,7 +17,9 @@ LL + e.insert(v);
|
|||
LL + }
|
||||
LL + std::collections::hash_map::Entry::Occupied(mut e) => {
|
||||
LL + e.insert(v2);
|
||||
...
|
||||
LL + }
|
||||
LL + }
|
||||
|
|
||||
|
||||
error: usage of `contains_key` followed by `insert` on a `HashMap`
|
||||
--> $DIR/entry_with_else.rs:22:5
|
||||
|
@ -37,7 +39,9 @@ LL + e.insert(v);
|
|||
LL + }
|
||||
LL + std::collections::hash_map::Entry::Vacant(e) => {
|
||||
LL + e.insert(v2);
|
||||
...
|
||||
LL + }
|
||||
LL + }
|
||||
|
|
||||
|
||||
error: usage of `contains_key` followed by `insert` on a `HashMap`
|
||||
--> $DIR/entry_with_else.rs:28:5
|
||||
|
@ -95,7 +99,9 @@ LL + e.insert(v);
|
|||
LL + }
|
||||
LL + std::collections::hash_map::Entry::Occupied(mut e) => {
|
||||
LL + e.insert(v2);
|
||||
...
|
||||
LL + }
|
||||
LL + }
|
||||
|
|
||||
|
||||
error: usage of `contains_key` followed by `insert` on a `HashMap`
|
||||
--> $DIR/entry_with_else.rs:46:5
|
||||
|
@ -115,7 +121,10 @@ LL + if true { Some(e.insert(v)) } else { Some(e.insert(v2)) }
|
|||
LL + }
|
||||
LL + std::collections::hash_map::Entry::Vacant(e) => {
|
||||
LL + e.insert(v);
|
||||
...
|
||||
LL + None
|
||||
LL + }
|
||||
LL ~ };
|
||||
|
|
||||
|
||||
error: usage of `contains_key` followed by `insert` on a `HashMap`
|
||||
--> $DIR/entry_with_else.rs:52:5
|
||||
|
|
|
@ -32,7 +32,8 @@ LL + .map(|i| i * 2)
|
|||
LL + .filter(|i| i % 2 == 0)
|
||||
LL + .map(|_| ())
|
||||
LL + .next()
|
||||
...
|
||||
LL + .unwrap();
|
||||
|
|
||||
|
||||
error: this let-binding has unit value
|
||||
--> $DIR/let_unit.rs:80:5
|
||||
|
|
|
@ -122,7 +122,14 @@ LL + let a = 42;
|
|||
LL + let b = 21;
|
||||
LL + if a < b {
|
||||
LL + let c = 21;
|
||||
...
|
||||
LL + let d = 42;
|
||||
LL + if c < d {
|
||||
LL + let _ = 42;
|
||||
LL + }
|
||||
LL + }
|
||||
LL + 42
|
||||
LL + }
|
||||
|
|
||||
|
||||
error: this function can be simplified using the `async fn` syntax
|
||||
--> $DIR/manual_async_fn.rs:92:1
|
||||
|
|
|
@ -19,7 +19,8 @@ LL + return;
|
|||
LL + } else {
|
||||
LL + println!("{}", v);
|
||||
LL + }
|
||||
...
|
||||
LL + }
|
||||
|
|
||||
help: ...and replace `return` with `continue`
|
||||
|
|
||||
LL | continue;
|
||||
|
|
|
@ -117,7 +117,8 @@ LL + Self::new()
|
|||
LL + }
|
||||
LL + }
|
||||
LL +
|
||||
...
|
||||
LL ~ impl<T> Foo<T> {
|
||||
|
|
||||
|
||||
error: aborting due to 7 previous errors
|
||||
|
||||
|
|
|
@ -56,7 +56,8 @@ LL | let f = e.clone(); // OK
|
|||
LL | let g = x;
|
||||
LL ~ let h = g.to_owned();
|
||||
LL | let i = (e).clone();
|
||||
...
|
||||
LL ~ x.to_owned()
|
||||
|
|
||||
|
||||
error: writing `&String` instead of `&str` involves a new object where a slice will do
|
||||
--> $DIR/ptr_arg.rs:57:18
|
||||
|
|
|
@ -188,7 +188,9 @@ LL + _ => mutex2.lock().unwrap(),
|
|||
LL + }
|
||||
LL + .s
|
||||
LL + .len()
|
||||
...
|
||||
LL + > 1;
|
||||
LL ~ match value
|
||||
|
|
||||
|
||||
error: temporary with significant drop in match scrutinee
|
||||
--> $DIR/significant_drop_in_scrutinee.rs:397:11
|
||||
|
@ -211,7 +213,10 @@ LL + } else {
|
|||
LL + mutex2.lock().unwrap()
|
||||
LL + }
|
||||
LL + .s
|
||||
...
|
||||
LL + .len()
|
||||
LL + > 1;
|
||||
LL ~ match value
|
||||
|
|
||||
|
||||
error: temporary with significant drop in match scrutinee
|
||||
--> $DIR/significant_drop_in_scrutinee.rs:451:11
|
||||
|
|
|
@ -137,7 +137,13 @@ LL + foo(1);
|
|||
LL + };
|
||||
LL + {
|
||||
LL + foo(2);
|
||||
...
|
||||
LL + foo(3);
|
||||
LL + };
|
||||
LL + taking_multiple_units(
|
||||
LL + (),
|
||||
LL + (),
|
||||
LL ~ );
|
||||
|
|
||||
|
||||
error: passing a unit value to a function
|
||||
--> $DIR/unit_arg.rs:85:13
|
||||
|
|
|
@ -23,7 +23,8 @@ LL | if a {
|
|||
LL | Some(-1);
|
||||
LL ~ 2
|
||||
LL | } else {
|
||||
...
|
||||
LL ~ return 1337;
|
||||
|
|
||||
|
||||
error: this function's return value is unnecessarily wrapped by `Option`
|
||||
--> $DIR/unnecessary_wraps.rs:21:1
|
||||
|
@ -122,7 +123,8 @@ LL | if a {
|
|||
LL | Some(());
|
||||
LL ~
|
||||
LL | } else {
|
||||
...
|
||||
LL ~ return ;
|
||||
|
|
||||
|
||||
error: this function's return value is unnecessary
|
||||
--> $DIR/unnecessary_wraps.rs:117:1
|
||||
|
|
Loading…
Reference in a new issue