Skip to content

Commit 6249f33

Browse files
committed
fix: unnecessary_sort_by lint method consistency in message and suggestion
1 parent 264bc97 commit 6249f33

File tree

2 files changed

+48
-42
lines changed

2 files changed

+48
-42
lines changed

clippy_lints/src/methods/unnecessary_sort_by.rs

Lines changed: 42 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -200,44 +200,50 @@ pub(super) fn check<'tcx>(
200200
is_unstable: bool,
201201
) {
202202
match detect_lint(cx, expr, recv, arg) {
203-
Some(LintTrigger::SortByKey(trigger)) => span_lint_and_sugg(
204-
cx,
205-
UNNECESSARY_SORT_BY,
206-
expr.span,
207-
"consider using `sort_by_key`",
208-
"try",
209-
format!(
210-
"{}.sort{}_by_key(|{}| {})",
211-
trigger.vec_name,
212-
if is_unstable { "_unstable" } else { "" },
213-
trigger.closure_arg,
214-
if let Some(std_or_core) = std_or_core(cx)
215-
&& trigger.reverse
216-
{
217-
format!("{}::cmp::Reverse({})", std_or_core, trigger.closure_body)
203+
Some(LintTrigger::SortByKey(trigger)) => {
204+
let method = if is_unstable {
205+
"sort_unstable_by_key"
206+
} else {
207+
"sort_by_key"
208+
};
209+
span_lint_and_sugg(
210+
cx,
211+
UNNECESSARY_SORT_BY,
212+
expr.span,
213+
format!("consider using `{method}`"),
214+
"try",
215+
format!(
216+
"{}.{}(|{}| {})",
217+
trigger.vec_name,
218+
method,
219+
trigger.closure_arg,
220+
if let Some(std_or_core) = std_or_core(cx)
221+
&& trigger.reverse
222+
{
223+
format!("{}::cmp::Reverse({})", std_or_core, trigger.closure_body)
224+
} else {
225+
trigger.closure_body
226+
},
227+
),
228+
if trigger.reverse {
229+
Applicability::MaybeIncorrect
218230
} else {
219-
trigger.closure_body
231+
Applicability::MachineApplicable
220232
},
221-
),
222-
if trigger.reverse {
223-
Applicability::MaybeIncorrect
224-
} else {
225-
Applicability::MachineApplicable
226-
},
227-
),
228-
Some(LintTrigger::Sort(trigger)) => span_lint_and_sugg(
229-
cx,
230-
UNNECESSARY_SORT_BY,
231-
expr.span,
232-
"consider using `sort`",
233-
"try",
234-
format!(
235-
"{}.sort{}()",
236-
trigger.vec_name,
237-
if is_unstable { "_unstable" } else { "" },
238-
),
239-
Applicability::MachineApplicable,
240-
),
233+
);
234+
},
235+
Some(LintTrigger::Sort(trigger)) => {
236+
let method = if is_unstable { "sort_unstable" } else { "sort" };
237+
span_lint_and_sugg(
238+
cx,
239+
UNNECESSARY_SORT_BY,
240+
expr.span,
241+
format!("consider using `{method}`"),
242+
"try",
243+
format!("{}.{}()", trigger.vec_name, method),
244+
Applicability::MachineApplicable,
245+
);
246+
},
241247
None => {},
242248
}
243249
}

tests/ui/unnecessary_sort_by.stderr

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ LL | vec.sort_by(|a, b| a.cmp(b));
77
= note: `-D clippy::unnecessary-sort-by` implied by `-D warnings`
88
= help: to override `-D warnings` add `#[allow(clippy::unnecessary_sort_by)]`
99

10-
error: consider using `sort`
10+
error: consider using `sort_unstable`
1111
--> tests/ui/unnecessary_sort_by.rs:14:5
1212
|
1313
LL | vec.sort_unstable_by(|a, b| a.cmp(b));
@@ -19,7 +19,7 @@ error: consider using `sort_by_key`
1919
LL | vec.sort_by(|a, b| (a + 5).abs().cmp(&(b + 5).abs()));
2020
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `vec.sort_by_key(|a| (a + 5).abs())`
2121

22-
error: consider using `sort_by_key`
22+
error: consider using `sort_unstable_by_key`
2323
--> tests/ui/unnecessary_sort_by.rs:18:5
2424
|
2525
LL | vec.sort_unstable_by(|a, b| id(-a).cmp(&id(-b)));
@@ -31,7 +31,7 @@ error: consider using `sort_by_key`
3131
LL | vec.sort_by(|a, b| (b + 5).abs().cmp(&(a + 5).abs()));
3232
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `vec.sort_by_key(|b| std::cmp::Reverse((b + 5).abs()))`
3333

34-
error: consider using `sort_by_key`
34+
error: consider using `sort_unstable_by_key`
3535
--> tests/ui/unnecessary_sort_by.rs:24:5
3636
|
3737
LL | vec.sort_unstable_by(|a, b| id(-b).cmp(&id(-a)));
@@ -43,7 +43,7 @@ error: consider using `sort_by_key`
4343
LL | vec.sort_by(|a, b| (***a).abs().cmp(&(***b).abs()));
4444
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `vec.sort_by_key(|a| (***a).abs())`
4545

46-
error: consider using `sort_by_key`
46+
error: consider using `sort_unstable_by_key`
4747
--> tests/ui/unnecessary_sort_by.rs:37:5
4848
|
4949
LL | vec.sort_unstable_by(|a, b| (***a).abs().cmp(&(***b).abs()));
@@ -55,7 +55,7 @@ error: consider using `sort_by_key`
5555
LL | args.sort_by(|a, b| a.name().cmp(&b.name()));
5656
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `args.sort_by_key(|a| a.name())`
5757

58-
error: consider using `sort_by_key`
58+
error: consider using `sort_unstable_by_key`
5959
--> tests/ui/unnecessary_sort_by.rs:99:9
6060
|
6161
LL | args.sort_unstable_by(|a, b| a.name().cmp(&b.name()));
@@ -67,7 +67,7 @@ error: consider using `sort_by_key`
6767
LL | args.sort_by(|a, b| b.name().cmp(&a.name()));
6868
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `args.sort_by_key(|b| std::cmp::Reverse(b.name()))`
6969

70-
error: consider using `sort_by_key`
70+
error: consider using `sort_unstable_by_key`
7171
--> tests/ui/unnecessary_sort_by.rs:104:9
7272
|
7373
LL | args.sort_unstable_by(|a, b| b.name().cmp(&a.name()));

0 commit comments

Comments
 (0)