Skip to content

Commit 9d201d6

Browse files
committed
Fix #[expect] for default_numeric_fallback
1 parent 8db7349 commit 9d201d6

4 files changed

+45
-32
lines changed

clippy_lints/src/default_numeric_fallback.rs

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use clippy_utils::diagnostics::span_lint_and_sugg;
1+
use clippy_utils::diagnostics::span_lint_hir_and_then;
22
use clippy_utils::numeric_literal;
33
use clippy_utils::source::snippet_opt;
44
use if_chain::if_chain;
@@ -76,7 +76,7 @@ impl<'a, 'tcx> NumericFallbackVisitor<'a, 'tcx> {
7676
}
7777

7878
/// Check whether a passed literal has potential to cause fallback or not.
79-
fn check_lit(&self, lit: &Lit, lit_ty: Ty<'tcx>) {
79+
fn check_lit(&self, lit: &Lit, lit_ty: Ty<'tcx>, emit_hir_id: HirId) {
8080
if_chain! {
8181
if !in_external_macro(self.cx.sess(), lit.span);
8282
if let Some(ty_bound) = self.ty_bounds.last();
@@ -101,14 +101,15 @@ impl<'a, 'tcx> NumericFallbackVisitor<'a, 'tcx> {
101101
}
102102
};
103103
let sugg = numeric_literal::format(&src, Some(suffix), is_float);
104-
span_lint_and_sugg(
104+
span_lint_hir_and_then(
105105
self.cx,
106106
DEFAULT_NUMERIC_FALLBACK,
107+
emit_hir_id,
107108
lit.span,
108109
"default numeric fallback might occur",
109-
"consider adding suffix",
110-
sugg,
111-
Applicability::MaybeIncorrect,
110+
|diag| {
111+
diag.span_suggestion(lit.span, "consider adding suffix", sugg, Applicability::MaybeIncorrect);
112+
}
112113
);
113114
}
114115
}
@@ -179,7 +180,7 @@ impl<'a, 'tcx> Visitor<'tcx> for NumericFallbackVisitor<'a, 'tcx> {
179180

180181
ExprKind::Lit(lit) => {
181182
let ty = self.cx.typeck_results().expr_ty(expr);
182-
self.check_lit(lit, ty);
183+
self.check_lit(lit, ty, expr.hir_id);
183184
return;
184185
},
185186

tests/ui/default_numeric_fallback_i32.fixed

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
// run-rustfix
22
// aux-build:macro_rules.rs
33

4+
#![feature(lint_reasons)]
45
#![warn(clippy::default_numeric_fallback)]
56
#![allow(
67
unused,
@@ -173,4 +174,9 @@ mod in_macro {
173174
}
174175
}
175176

177+
fn check_expect_suppression() {
178+
#[expect(clippy::default_numeric_fallback)]
179+
let x = 21;
180+
}
181+
176182
fn main() {}

tests/ui/default_numeric_fallback_i32.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
// run-rustfix
22
// aux-build:macro_rules.rs
33

4+
#![feature(lint_reasons)]
45
#![warn(clippy::default_numeric_fallback)]
56
#![allow(
67
unused,
@@ -173,4 +174,9 @@ mod in_macro {
173174
}
174175
}
175176

177+
fn check_expect_suppression() {
178+
#[expect(clippy::default_numeric_fallback)]
179+
let x = 21;
180+
}
181+
176182
fn main() {}

tests/ui/default_numeric_fallback_i32.stderr

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,151 +1,151 @@
11
error: default numeric fallback might occur
2-
--> $DIR/default_numeric_fallback_i32.rs:20:17
2+
--> $DIR/default_numeric_fallback_i32.rs:21:17
33
|
44
LL | let x = 22;
55
| ^^ help: consider adding suffix: `22_i32`
66
|
77
= note: `-D clippy::default-numeric-fallback` implied by `-D warnings`
88

99
error: default numeric fallback might occur
10-
--> $DIR/default_numeric_fallback_i32.rs:21:18
10+
--> $DIR/default_numeric_fallback_i32.rs:22:18
1111
|
1212
LL | let x = [1, 2, 3];
1313
| ^ help: consider adding suffix: `1_i32`
1414

1515
error: default numeric fallback might occur
16-
--> $DIR/default_numeric_fallback_i32.rs:21:21
16+
--> $DIR/default_numeric_fallback_i32.rs:22:21
1717
|
1818
LL | let x = [1, 2, 3];
1919
| ^ help: consider adding suffix: `2_i32`
2020

2121
error: default numeric fallback might occur
22-
--> $DIR/default_numeric_fallback_i32.rs:21:24
22+
--> $DIR/default_numeric_fallback_i32.rs:22:24
2323
|
2424
LL | let x = [1, 2, 3];
2525
| ^ help: consider adding suffix: `3_i32`
2626

2727
error: default numeric fallback might occur
28-
--> $DIR/default_numeric_fallback_i32.rs:22:28
28+
--> $DIR/default_numeric_fallback_i32.rs:23:28
2929
|
3030
LL | let x = if true { (1, 2) } else { (3, 4) };
3131
| ^ help: consider adding suffix: `1_i32`
3232

3333
error: default numeric fallback might occur
34-
--> $DIR/default_numeric_fallback_i32.rs:22:31
34+
--> $DIR/default_numeric_fallback_i32.rs:23:31
3535
|
3636
LL | let x = if true { (1, 2) } else { (3, 4) };
3737
| ^ help: consider adding suffix: `2_i32`
3838

3939
error: default numeric fallback might occur
40-
--> $DIR/default_numeric_fallback_i32.rs:22:44
40+
--> $DIR/default_numeric_fallback_i32.rs:23:44
4141
|
4242
LL | let x = if true { (1, 2) } else { (3, 4) };
4343
| ^ help: consider adding suffix: `3_i32`
4444

4545
error: default numeric fallback might occur
46-
--> $DIR/default_numeric_fallback_i32.rs:22:47
46+
--> $DIR/default_numeric_fallback_i32.rs:23:47
4747
|
4848
LL | let x = if true { (1, 2) } else { (3, 4) };
4949
| ^ help: consider adding suffix: `4_i32`
5050

5151
error: default numeric fallback might occur
52-
--> $DIR/default_numeric_fallback_i32.rs:23:23
52+
--> $DIR/default_numeric_fallback_i32.rs:24:23
5353
|
5454
LL | let x = match 1 {
5555
| ^ help: consider adding suffix: `1_i32`
5656

5757
error: default numeric fallback might occur
58-
--> $DIR/default_numeric_fallback_i32.rs:24:13
58+
--> $DIR/default_numeric_fallback_i32.rs:25:13
5959
|
6060
LL | 1 => 1,
6161
| ^ help: consider adding suffix: `1_i32`
6262

6363
error: default numeric fallback might occur
64-
--> $DIR/default_numeric_fallback_i32.rs:24:18
64+
--> $DIR/default_numeric_fallback_i32.rs:25:18
6565
|
6666
LL | 1 => 1,
6767
| ^ help: consider adding suffix: `1_i32`
6868

6969
error: default numeric fallback might occur
70-
--> $DIR/default_numeric_fallback_i32.rs:25:18
70+
--> $DIR/default_numeric_fallback_i32.rs:26:18
7171
|
7272
LL | _ => 2,
7373
| ^ help: consider adding suffix: `2_i32`
7474

7575
error: default numeric fallback might occur
76-
--> $DIR/default_numeric_fallback_i32.rs:42:21
76+
--> $DIR/default_numeric_fallback_i32.rs:43:21
7777
|
7878
LL | let y = 1;
7979
| ^ help: consider adding suffix: `1_i32`
8080

8181
error: default numeric fallback might occur
82-
--> $DIR/default_numeric_fallback_i32.rs:50:21
82+
--> $DIR/default_numeric_fallback_i32.rs:51:21
8383
|
8484
LL | let y = 1;
8585
| ^ help: consider adding suffix: `1_i32`
8686

8787
error: default numeric fallback might occur
88-
--> $DIR/default_numeric_fallback_i32.rs:56:21
88+
--> $DIR/default_numeric_fallback_i32.rs:57:21
8989
|
9090
LL | let y = 1;
9191
| ^ help: consider adding suffix: `1_i32`
9292

9393
error: default numeric fallback might occur
94-
--> $DIR/default_numeric_fallback_i32.rs:68:9
94+
--> $DIR/default_numeric_fallback_i32.rs:69:9
9595
|
9696
LL | 1
9797
| ^ help: consider adding suffix: `1_i32`
9898

9999
error: default numeric fallback might occur
100-
--> $DIR/default_numeric_fallback_i32.rs:74:27
100+
--> $DIR/default_numeric_fallback_i32.rs:75:27
101101
|
102102
LL | let f = || -> _ { 1 };
103103
| ^ help: consider adding suffix: `1_i32`
104104

105105
error: default numeric fallback might occur
106-
--> $DIR/default_numeric_fallback_i32.rs:78:29
106+
--> $DIR/default_numeric_fallback_i32.rs:79:29
107107
|
108108
LL | let f = || -> i32 { 1 };
109109
| ^ help: consider adding suffix: `1_i32`
110110

111111
error: default numeric fallback might occur
112-
--> $DIR/default_numeric_fallback_i32.rs:92:21
112+
--> $DIR/default_numeric_fallback_i32.rs:93:21
113113
|
114114
LL | generic_arg(1);
115115
| ^ help: consider adding suffix: `1_i32`
116116

117117
error: default numeric fallback might occur
118-
--> $DIR/default_numeric_fallback_i32.rs:95:32
118+
--> $DIR/default_numeric_fallback_i32.rs:96:32
119119
|
120120
LL | let x: _ = generic_arg(1);
121121
| ^ help: consider adding suffix: `1_i32`
122122

123123
error: default numeric fallback might occur
124-
--> $DIR/default_numeric_fallback_i32.rs:113:28
124+
--> $DIR/default_numeric_fallback_i32.rs:114:28
125125
|
126126
LL | GenericStruct { x: 1 };
127127
| ^ help: consider adding suffix: `1_i32`
128128

129129
error: default numeric fallback might occur
130-
--> $DIR/default_numeric_fallback_i32.rs:116:36
130+
--> $DIR/default_numeric_fallback_i32.rs:117:36
131131
|
132132
LL | let _ = GenericStruct { x: 1 };
133133
| ^ help: consider adding suffix: `1_i32`
134134

135135
error: default numeric fallback might occur
136-
--> $DIR/default_numeric_fallback_i32.rs:134:24
136+
--> $DIR/default_numeric_fallback_i32.rs:135:24
137137
|
138138
LL | GenericEnum::X(1);
139139
| ^ help: consider adding suffix: `1_i32`
140140

141141
error: default numeric fallback might occur
142-
--> $DIR/default_numeric_fallback_i32.rs:154:23
142+
--> $DIR/default_numeric_fallback_i32.rs:155:23
143143
|
144144
LL | s.generic_arg(1);
145145
| ^ help: consider adding suffix: `1_i32`
146146

147147
error: default numeric fallback might occur
148-
--> $DIR/default_numeric_fallback_i32.rs:161:21
148+
--> $DIR/default_numeric_fallback_i32.rs:162:21
149149
|
150150
LL | let x = 22;
151151
| ^^ help: consider adding suffix: `22_i32`

0 commit comments

Comments
 (0)