Skip to content

Commit 4bd4e27

Browse files
authored
Rollup merge of #92469 - joshtriplett:test-number-fix, r=Mark-Simulacrum
Make tidy check for magic numbers that spell things Remove existing problematic cases. r? `@Mark-Simulacrum`
2 parents 913bc86 + 0d55bd1 commit 4bd4e27

File tree

6 files changed

+27
-12
lines changed

6 files changed

+27
-12
lines changed

library/std/src/net/ip.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -1140,8 +1140,8 @@ impl From<Ipv4Addr> for u32 {
11401140
/// ```
11411141
/// use std::net::Ipv4Addr;
11421142
///
1143-
/// let addr = Ipv4Addr::new(0xca, 0xfe, 0xba, 0xbe);
1144-
/// assert_eq!(0xcafebabe, u32::from(addr));
1143+
/// let addr = Ipv4Addr::new(0x12, 0x34, 0x56, 0x78);
1144+
/// assert_eq!(0x12345678, u32::from(addr));
11451145
/// ```
11461146
#[inline]
11471147
fn from(ip: Ipv4Addr) -> u32 {
@@ -1159,8 +1159,8 @@ impl From<u32> for Ipv4Addr {
11591159
/// ```
11601160
/// use std::net::Ipv4Addr;
11611161
///
1162-
/// let addr = Ipv4Addr::from(0xcafebabe);
1163-
/// assert_eq!(Ipv4Addr::new(0xca, 0xfe, 0xba, 0xbe), addr);
1162+
/// let addr = Ipv4Addr::from(0x12345678);
1163+
/// assert_eq!(Ipv4Addr::new(0x12, 0x34, 0x56, 0x78), addr);
11641164
/// ```
11651165
#[inline]
11661166
fn from(ip: u32) -> Ipv4Addr {

src/test/ui/link-section.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ static mut frobulator: usize = 0xdeadbeef;
3131

3232
pub fn main() {
3333
unsafe {
34-
frobulator = 0xcafebabe;
34+
frobulator = 0x12345678;
3535
println!("{} {} {}", i_live_in_more_text(), magic, frobulator);
3636
}
3737
}

src/tools/clippy/tests/ui/unreadable_literal.fixed

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ fn main() {
3030
1_234.123_f32,
3131
1.123_4_f32,
3232
);
33-
let _bad = (0b11_0110_i64, 0xcafe_babe_usize, 123_456_f32, 1.234_567_f32);
33+
let _bad = (0b11_0110_i64, 0x1234_5678_usize, 123_456_f32, 1.234_567_f32);
3434
let _good_sci = 1.1234e1;
3535
let _bad_sci = 1.123_456e1;
3636

src/tools/clippy/tests/ui/unreadable_literal.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ fn main() {
3030
1_234.123_f32,
3131
1.123_4_f32,
3232
);
33-
let _bad = (0b110110_i64, 0xcafebabe_usize, 123456_f32, 1.234567_f32);
33+
let _bad = (0b110110_i64, 0x12345678_usize, 123456_f32, 1.234567_f32);
3434
let _good_sci = 1.1234e1;
3535
let _bad_sci = 1.123456e1;
3636

src/tools/clippy/tests/ui/unreadable_literal.stderr

+5-5
Original file line numberDiff line numberDiff line change
@@ -9,27 +9,27 @@ LL | 0x1_234_567,
99
error: long literal lacking separators
1010
--> $DIR/unreadable_literal.rs:33:17
1111
|
12-
LL | let _bad = (0b110110_i64, 0xcafebabe_usize, 123456_f32, 1.234567_f32);
12+
LL | let _bad = (0b110110_i64, 0x12345678_usize, 123456_f32, 1.234567_f32);
1313
| ^^^^^^^^^^^^ help: consider: `0b11_0110_i64`
1414
|
1515
= note: `-D clippy::unreadable-literal` implied by `-D warnings`
1616

1717
error: long literal lacking separators
1818
--> $DIR/unreadable_literal.rs:33:31
1919
|
20-
LL | let _bad = (0b110110_i64, 0xcafebabe_usize, 123456_f32, 1.234567_f32);
21-
| ^^^^^^^^^^^^^^^^ help: consider: `0xcafe_babe_usize`
20+
LL | let _bad = (0b110110_i64, 0x12345678_usize, 123456_f32, 1.234567_f32);
21+
| ^^^^^^^^^^^^^^^^ help: consider: `0x1234_5678_usize`
2222

2323
error: long literal lacking separators
2424
--> $DIR/unreadable_literal.rs:33:49
2525
|
26-
LL | let _bad = (0b110110_i64, 0xcafebabe_usize, 123456_f32, 1.234567_f32);
26+
LL | let _bad = (0b110110_i64, 0x12345678_usize, 123456_f32, 1.234567_f32);
2727
| ^^^^^^^^^^ help: consider: `123_456_f32`
2828

2929
error: long literal lacking separators
3030
--> $DIR/unreadable_literal.rs:33:61
3131
|
32-
LL | let _bad = (0b110110_i64, 0xcafebabe_usize, 123456_f32, 1.234567_f32);
32+
LL | let _bad = (0b110110_i64, 0x12345678_usize, 123456_f32, 1.234567_f32);
3333
| ^^^^^^^^^^^^ help: consider: `1.234_567_f32`
3434

3535
error: long literal lacking separators

src/tools/tidy/src/style.rs

+15
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,12 @@ const ANNOTATIONS_TO_IGNORE: &[&str] = &[
5656
"// normalize-stderr-test",
5757
];
5858

59+
// Intentionally written in decimal rather than hex
60+
const PROBLEMATIC_CONSTS: &[u32] = &[
61+
184594741, 2880289470, 2881141438, 2965027518, 2976579765, 3203381950, 3405691582, 3405697037,
62+
3735927486, 4027431614, 4276992702,
63+
];
64+
5965
/// Parser states for `line_is_url`.
6066
#[derive(Clone, Copy, PartialEq)]
6167
#[allow(non_camel_case_types)]
@@ -217,6 +223,10 @@ pub fn check(path: &Path, bad: &mut bool) {
217223
fn skip(path: &Path) -> bool {
218224
super::filter_dirs(path) || skip_markdown_path(path)
219225
}
226+
let problematic_consts_strings: Vec<String> = (PROBLEMATIC_CONSTS.iter().map(u32::to_string))
227+
.chain(PROBLEMATIC_CONSTS.iter().map(|v| format!("{:x}", v)))
228+
.chain(PROBLEMATIC_CONSTS.iter().map(|v| format!("{:X}", v)))
229+
.collect();
220230
super::walk(path, &mut skip, &mut |entry, contents| {
221231
let file = entry.path();
222232
let filename = file.file_name().unwrap().to_string_lossy();
@@ -306,6 +316,11 @@ pub fn check(path: &Path, bad: &mut bool) {
306316
if line.contains("//") && line.contains(" XXX") {
307317
err("XXX is deprecated; use FIXME")
308318
}
319+
for s in problematic_consts_strings.iter() {
320+
if line.contains(s) {
321+
err("Don't use magic numbers that spell things (consider 0x12345678)");
322+
}
323+
}
309324
}
310325
let is_test = || file.components().any(|c| c.as_os_str() == "tests");
311326
// for now we just check libcore

0 commit comments

Comments
 (0)