mirror of
https://github.com/rust-lang/rust-clippy
synced 2024-11-24 05:33:27 +00:00
Merge pull request #2495 from alexheretic/fix-2494
Fix #2494 add suggestion for unreadable_literal
This commit is contained in:
commit
cb43feb4cc
12 changed files with 40 additions and 65 deletions
|
@ -4,7 +4,7 @@
|
||||||
use rustc::lint::*;
|
use rustc::lint::*;
|
||||||
use syntax::ast::*;
|
use syntax::ast::*;
|
||||||
use syntax_pos;
|
use syntax_pos;
|
||||||
use utils::{in_external_macro, snippet_opt, span_help_and_lint};
|
use utils::{in_external_macro, snippet_opt, span_lint_and_sugg};
|
||||||
|
|
||||||
/// **What it does:** Warns if a long integral or floating-point constant does
|
/// **What it does:** Warns if a long integral or floating-point constant does
|
||||||
/// not contain underscores.
|
/// not contain underscores.
|
||||||
|
@ -222,33 +222,37 @@ enum WarningType {
|
||||||
impl WarningType {
|
impl WarningType {
|
||||||
pub fn display(&self, grouping_hint: &str, cx: &EarlyContext, span: &syntax_pos::Span) {
|
pub fn display(&self, grouping_hint: &str, cx: &EarlyContext, span: &syntax_pos::Span) {
|
||||||
match *self {
|
match *self {
|
||||||
WarningType::UnreadableLiteral => span_help_and_lint(
|
WarningType::UnreadableLiteral => span_lint_and_sugg(
|
||||||
cx,
|
cx,
|
||||||
UNREADABLE_LITERAL,
|
UNREADABLE_LITERAL,
|
||||||
*span,
|
*span,
|
||||||
"long literal lacking separators",
|
"long literal lacking separators",
|
||||||
&format!("consider: {}", grouping_hint),
|
"consider",
|
||||||
|
grouping_hint.to_owned(),
|
||||||
),
|
),
|
||||||
WarningType::LargeDigitGroups => span_help_and_lint(
|
WarningType::LargeDigitGroups => span_lint_and_sugg(
|
||||||
cx,
|
cx,
|
||||||
LARGE_DIGIT_GROUPS,
|
LARGE_DIGIT_GROUPS,
|
||||||
*span,
|
*span,
|
||||||
"digit groups should be smaller",
|
"digit groups should be smaller",
|
||||||
&format!("consider: {}", grouping_hint),
|
"consider",
|
||||||
|
grouping_hint.to_owned(),
|
||||||
),
|
),
|
||||||
WarningType::InconsistentDigitGrouping => span_help_and_lint(
|
WarningType::InconsistentDigitGrouping => span_lint_and_sugg(
|
||||||
cx,
|
cx,
|
||||||
INCONSISTENT_DIGIT_GROUPING,
|
INCONSISTENT_DIGIT_GROUPING,
|
||||||
*span,
|
*span,
|
||||||
"digits grouped inconsistently by underscores",
|
"digits grouped inconsistently by underscores",
|
||||||
&format!("consider: {}", grouping_hint),
|
"consider",
|
||||||
|
grouping_hint.to_owned(),
|
||||||
),
|
),
|
||||||
WarningType::DecimalRepresentation => span_help_and_lint(
|
WarningType::DecimalRepresentation => span_lint_and_sugg(
|
||||||
cx,
|
cx,
|
||||||
DECIMAL_LITERAL_REPRESENTATION,
|
DECIMAL_LITERAL_REPRESENTATION,
|
||||||
*span,
|
*span,
|
||||||
"integer literal has a better hexadecimal representation",
|
"integer literal has a better hexadecimal representation",
|
||||||
&format!("consider: {}", grouping_hint),
|
"consider",
|
||||||
|
grouping_hint.to_owned(),
|
||||||
),
|
),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,3 +19,4 @@ error[E0308]: mismatched types
|
||||||
|
|
||||||
error: aborting due to 2 previous errors
|
error: aborting due to 2 previous errors
|
||||||
|
|
||||||
|
If you want more information on this error, try using "rustc --explain E0308"
|
||||||
|
|
|
@ -8,3 +8,4 @@ error[E0658]: compiler plugins are experimental and possibly buggy (see issue #2
|
||||||
|
|
||||||
error: aborting due to previous error
|
error: aborting due to previous error
|
||||||
|
|
||||||
|
If you want more information on this error, try using "rustc --explain E0658"
|
||||||
|
|
|
@ -8,3 +8,4 @@ error[E0658]: compiler plugins are experimental and possibly buggy (see issue #2
|
||||||
|
|
||||||
error: aborting due to previous error
|
error: aborting due to previous error
|
||||||
|
|
||||||
|
If you want more information on this error, try using "rustc --explain E0658"
|
||||||
|
|
|
@ -8,3 +8,4 @@ error[E0658]: compiler plugins are experimental and possibly buggy (see issue #2
|
||||||
|
|
||||||
error: aborting due to previous error
|
error: aborting due to previous error
|
||||||
|
|
||||||
|
If you want more information on this error, try using "rustc --explain E0658"
|
||||||
|
|
|
@ -8,3 +8,4 @@ error[E0658]: compiler plugins are experimental and possibly buggy (see issue #2
|
||||||
|
|
||||||
error: aborting due to previous error
|
error: aborting due to previous error
|
||||||
|
|
||||||
|
If you want more information on this error, try using "rustc --explain E0658"
|
||||||
|
|
|
@ -8,3 +8,4 @@ error[E0658]: compiler plugins are experimental and possibly buggy (see issue #2
|
||||||
|
|
||||||
error: aborting due to previous error
|
error: aborting due to previous error
|
||||||
|
|
||||||
|
If you want more information on this error, try using "rustc --explain E0658"
|
||||||
|
|
|
@ -8,3 +8,4 @@ error[E0658]: compiler plugins are experimental and possibly buggy (see issue #2
|
||||||
|
|
||||||
error: aborting due to previous error
|
error: aborting due to previous error
|
||||||
|
|
||||||
|
If you want more information on this error, try using "rustc --explain E0658"
|
||||||
|
|
|
@ -2,42 +2,33 @@ error: integer literal has a better hexadecimal representation
|
||||||
--> $DIR/decimal_literal_representation.rs:18:9
|
--> $DIR/decimal_literal_representation.rs:18:9
|
||||||
|
|
|
|
||||||
18 | 32_773, // 0x8005
|
18 | 32_773, // 0x8005
|
||||||
| ^^^^^^
|
| ^^^^^^ help: consider: `0x8005`
|
||||||
|
|
|
|
||||||
= note: `-D decimal-literal-representation` implied by `-D warnings`
|
= note: `-D decimal-literal-representation` implied by `-D warnings`
|
||||||
= help: consider: 0x8005
|
|
||||||
|
|
||||||
error: integer literal has a better hexadecimal representation
|
error: integer literal has a better hexadecimal representation
|
||||||
--> $DIR/decimal_literal_representation.rs:19:9
|
--> $DIR/decimal_literal_representation.rs:19:9
|
||||||
|
|
|
|
||||||
19 | 65_280, // 0xFF00
|
19 | 65_280, // 0xFF00
|
||||||
| ^^^^^^
|
| ^^^^^^ help: consider: `0xFF00`
|
||||||
|
|
|
||||||
= help: consider: 0xFF00
|
|
||||||
|
|
||||||
error: integer literal has a better hexadecimal representation
|
error: integer literal has a better hexadecimal representation
|
||||||
--> $DIR/decimal_literal_representation.rs:20:9
|
--> $DIR/decimal_literal_representation.rs:20:9
|
||||||
|
|
|
|
||||||
20 | 2_131_750_927, // 0x7F0F_F00F
|
20 | 2_131_750_927, // 0x7F0F_F00F
|
||||||
| ^^^^^^^^^^^^^
|
| ^^^^^^^^^^^^^ help: consider: `0x7F0F_F00F`
|
||||||
|
|
|
||||||
= help: consider: 0x7F0F_F00F
|
|
||||||
|
|
||||||
error: integer literal has a better hexadecimal representation
|
error: integer literal has a better hexadecimal representation
|
||||||
--> $DIR/decimal_literal_representation.rs:21:9
|
--> $DIR/decimal_literal_representation.rs:21:9
|
||||||
|
|
|
|
||||||
21 | 2_147_483_647, // 0x7FFF_FFFF
|
21 | 2_147_483_647, // 0x7FFF_FFFF
|
||||||
| ^^^^^^^^^^^^^
|
| ^^^^^^^^^^^^^ help: consider: `0x7FFF_FFFF`
|
||||||
|
|
|
||||||
= help: consider: 0x7FFF_FFFF
|
|
||||||
|
|
||||||
error: integer literal has a better hexadecimal representation
|
error: integer literal has a better hexadecimal representation
|
||||||
--> $DIR/decimal_literal_representation.rs:22:9
|
--> $DIR/decimal_literal_representation.rs:22:9
|
||||||
|
|
|
|
||||||
22 | 4_042_322_160, // 0xF0F0_F0F0
|
22 | 4_042_322_160, // 0xF0F0_F0F0
|
||||||
| ^^^^^^^^^^^^^
|
| ^^^^^^^^^^^^^ help: consider: `0xF0F0_F0F0`
|
||||||
|
|
|
||||||
= help: consider: 0xF0F0_F0F0
|
|
||||||
|
|
||||||
error: aborting due to 5 previous errors
|
error: aborting due to 5 previous errors
|
||||||
|
|
||||||
|
|
|
@ -2,42 +2,33 @@ error: digits grouped inconsistently by underscores
|
||||||
--> $DIR/inconsistent_digit_grouping.rs:7:16
|
--> $DIR/inconsistent_digit_grouping.rs:7:16
|
||||||
|
|
|
|
||||||
7 | let bad = (1_23_456, 1_234_5678, 1234_567, 1_234.5678_f32, 1.234_5678_f32);
|
7 | let bad = (1_23_456, 1_234_5678, 1234_567, 1_234.5678_f32, 1.234_5678_f32);
|
||||||
| ^^^^^^^^
|
| ^^^^^^^^ help: consider: `123_456`
|
||||||
|
|
|
|
||||||
= note: `-D inconsistent-digit-grouping` implied by `-D warnings`
|
= note: `-D inconsistent-digit-grouping` implied by `-D warnings`
|
||||||
= help: consider: 123_456
|
|
||||||
|
|
||||||
error: digits grouped inconsistently by underscores
|
error: digits grouped inconsistently by underscores
|
||||||
--> $DIR/inconsistent_digit_grouping.rs:7:26
|
--> $DIR/inconsistent_digit_grouping.rs:7:26
|
||||||
|
|
|
|
||||||
7 | let bad = (1_23_456, 1_234_5678, 1234_567, 1_234.5678_f32, 1.234_5678_f32);
|
7 | let bad = (1_23_456, 1_234_5678, 1234_567, 1_234.5678_f32, 1.234_5678_f32);
|
||||||
| ^^^^^^^^^^
|
| ^^^^^^^^^^ help: consider: `12_345_678`
|
||||||
|
|
|
||||||
= help: consider: 12_345_678
|
|
||||||
|
|
||||||
error: digits grouped inconsistently by underscores
|
error: digits grouped inconsistently by underscores
|
||||||
--> $DIR/inconsistent_digit_grouping.rs:7:38
|
--> $DIR/inconsistent_digit_grouping.rs:7:38
|
||||||
|
|
|
|
||||||
7 | let bad = (1_23_456, 1_234_5678, 1234_567, 1_234.5678_f32, 1.234_5678_f32);
|
7 | let bad = (1_23_456, 1_234_5678, 1234_567, 1_234.5678_f32, 1.234_5678_f32);
|
||||||
| ^^^^^^^^
|
| ^^^^^^^^ help: consider: `1_234_567`
|
||||||
|
|
|
||||||
= help: consider: 1_234_567
|
|
||||||
|
|
||||||
error: digits grouped inconsistently by underscores
|
error: digits grouped inconsistently by underscores
|
||||||
--> $DIR/inconsistent_digit_grouping.rs:7:48
|
--> $DIR/inconsistent_digit_grouping.rs:7:48
|
||||||
|
|
|
|
||||||
7 | let bad = (1_23_456, 1_234_5678, 1234_567, 1_234.5678_f32, 1.234_5678_f32);
|
7 | let bad = (1_23_456, 1_234_5678, 1234_567, 1_234.5678_f32, 1.234_5678_f32);
|
||||||
| ^^^^^^^^^^^^^^
|
| ^^^^^^^^^^^^^^ help: consider: `1_234.567_8_f32`
|
||||||
|
|
|
||||||
= help: consider: 1_234.567_8_f32
|
|
||||||
|
|
||||||
error: digits grouped inconsistently by underscores
|
error: digits grouped inconsistently by underscores
|
||||||
--> $DIR/inconsistent_digit_grouping.rs:7:64
|
--> $DIR/inconsistent_digit_grouping.rs:7:64
|
||||||
|
|
|
|
||||||
7 | let bad = (1_23_456, 1_234_5678, 1234_567, 1_234.5678_f32, 1.234_5678_f32);
|
7 | let bad = (1_23_456, 1_234_5678, 1234_567, 1_234.5678_f32, 1.234_5678_f32);
|
||||||
| ^^^^^^^^^^^^^^
|
| ^^^^^^^^^^^^^^ help: consider: `1.234_567_8_f32`
|
||||||
|
|
|
||||||
= help: consider: 1.234_567_8_f32
|
|
||||||
|
|
||||||
error: aborting due to 5 previous errors
|
error: aborting due to 5 previous errors
|
||||||
|
|
||||||
|
|
|
@ -2,50 +2,39 @@ error: digit groups should be smaller
|
||||||
--> $DIR/large_digit_groups.rs:7:16
|
--> $DIR/large_digit_groups.rs:7:16
|
||||||
|
|
|
|
||||||
7 | let bad = (0b1_10110_i64, 0x1_23456_78901_usize, 1_23456_f32, 1_23456.12_f32, 1_23456.12345_f32, 1_23456.12345_6_f32);
|
7 | let bad = (0b1_10110_i64, 0x1_23456_78901_usize, 1_23456_f32, 1_23456.12_f32, 1_23456.12345_f32, 1_23456.12345_6_f32);
|
||||||
| ^^^^^^^^^^^^^
|
| ^^^^^^^^^^^^^ help: consider: `0b11_0110_i64`
|
||||||
|
|
|
|
||||||
= note: `-D large-digit-groups` implied by `-D warnings`
|
= note: `-D large-digit-groups` implied by `-D warnings`
|
||||||
= help: consider: 0b11_0110_i64
|
|
||||||
|
|
||||||
error: digit groups should be smaller
|
error: digit groups should be smaller
|
||||||
--> $DIR/large_digit_groups.rs:7:31
|
--> $DIR/large_digit_groups.rs:7:31
|
||||||
|
|
|
|
||||||
7 | let bad = (0b1_10110_i64, 0x1_23456_78901_usize, 1_23456_f32, 1_23456.12_f32, 1_23456.12345_f32, 1_23456.12345_6_f32);
|
7 | let bad = (0b1_10110_i64, 0x1_23456_78901_usize, 1_23456_f32, 1_23456.12_f32, 1_23456.12345_f32, 1_23456.12345_6_f32);
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^
|
| ^^^^^^^^^^^^^^^^^^^^^ help: consider: `0x123_4567_8901_usize`
|
||||||
|
|
|
||||||
= help: consider: 0x123_4567_8901_usize
|
|
||||||
|
|
||||||
error: digit groups should be smaller
|
error: digit groups should be smaller
|
||||||
--> $DIR/large_digit_groups.rs:7:54
|
--> $DIR/large_digit_groups.rs:7:54
|
||||||
|
|
|
|
||||||
7 | let bad = (0b1_10110_i64, 0x1_23456_78901_usize, 1_23456_f32, 1_23456.12_f32, 1_23456.12345_f32, 1_23456.12345_6_f32);
|
7 | let bad = (0b1_10110_i64, 0x1_23456_78901_usize, 1_23456_f32, 1_23456.12_f32, 1_23456.12345_f32, 1_23456.12345_6_f32);
|
||||||
| ^^^^^^^^^^^
|
| ^^^^^^^^^^^ help: consider: `123_456_f32`
|
||||||
|
|
|
||||||
= help: consider: 123_456_f32
|
|
||||||
|
|
||||||
error: digit groups should be smaller
|
error: digit groups should be smaller
|
||||||
--> $DIR/large_digit_groups.rs:7:67
|
--> $DIR/large_digit_groups.rs:7:67
|
||||||
|
|
|
|
||||||
7 | let bad = (0b1_10110_i64, 0x1_23456_78901_usize, 1_23456_f32, 1_23456.12_f32, 1_23456.12345_f32, 1_23456.12345_6_f32);
|
7 | let bad = (0b1_10110_i64, 0x1_23456_78901_usize, 1_23456_f32, 1_23456.12_f32, 1_23456.12345_f32, 1_23456.12345_6_f32);
|
||||||
| ^^^^^^^^^^^^^^
|
| ^^^^^^^^^^^^^^ help: consider: `123_456.12_f32`
|
||||||
|
|
|
||||||
= help: consider: 123_456.12_f32
|
|
||||||
|
|
||||||
error: digit groups should be smaller
|
error: digit groups should be smaller
|
||||||
--> $DIR/large_digit_groups.rs:7:83
|
--> $DIR/large_digit_groups.rs:7:83
|
||||||
|
|
|
|
||||||
7 | let bad = (0b1_10110_i64, 0x1_23456_78901_usize, 1_23456_f32, 1_23456.12_f32, 1_23456.12345_f32, 1_23456.12345_6_f32);
|
7 | let bad = (0b1_10110_i64, 0x1_23456_78901_usize, 1_23456_f32, 1_23456.12_f32, 1_23456.12345_f32, 1_23456.12345_6_f32);
|
||||||
| ^^^^^^^^^^^^^^^^^
|
| ^^^^^^^^^^^^^^^^^ help: consider: `123_456.123_45_f32`
|
||||||
|
|
|
||||||
= help: consider: 123_456.123_45_f32
|
|
||||||
|
|
||||||
error: digit groups should be smaller
|
error: digit groups should be smaller
|
||||||
--> $DIR/large_digit_groups.rs:7:102
|
--> $DIR/large_digit_groups.rs:7:102
|
||||||
|
|
|
|
||||||
7 | let bad = (0b1_10110_i64, 0x1_23456_78901_usize, 1_23456_f32, 1_23456.12_f32, 1_23456.12345_f32, 1_23456.12345_6_f32);
|
7 | let bad = (0b1_10110_i64, 0x1_23456_78901_usize, 1_23456_f32, 1_23456.12_f32, 1_23456.12345_f32, 1_23456.12345_6_f32);
|
||||||
| ^^^^^^^^^^^^^^^^^^^
|
| ^^^^^^^^^^^^^^^^^^^ help: consider: `123_456.123_456_f32`
|
||||||
|
|
|
||||||
= help: consider: 123_456.123_456_f32
|
|
||||||
|
|
||||||
error: aborting due to 6 previous errors
|
error: aborting due to 6 previous errors
|
||||||
|
|
||||||
|
|
|
@ -2,34 +2,27 @@ error: long literal lacking separators
|
||||||
--> $DIR/unreadable_literal.rs:7:16
|
--> $DIR/unreadable_literal.rs:7:16
|
||||||
|
|
|
|
||||||
7 | let bad = (0b10110_i64, 0x12345678901_usize, 12345_f32, 1.23456_f32);
|
7 | let bad = (0b10110_i64, 0x12345678901_usize, 12345_f32, 1.23456_f32);
|
||||||
| ^^^^^^^^^^^
|
| ^^^^^^^^^^^ help: consider: `0b1_0110_i64`
|
||||||
|
|
|
|
||||||
= note: `-D unreadable-literal` implied by `-D warnings`
|
= note: `-D unreadable-literal` implied by `-D warnings`
|
||||||
= help: consider: 0b1_0110_i64
|
|
||||||
|
|
||||||
error: long literal lacking separators
|
error: long literal lacking separators
|
||||||
--> $DIR/unreadable_literal.rs:7:29
|
--> $DIR/unreadable_literal.rs:7:29
|
||||||
|
|
|
|
||||||
7 | let bad = (0b10110_i64, 0x12345678901_usize, 12345_f32, 1.23456_f32);
|
7 | let bad = (0b10110_i64, 0x12345678901_usize, 12345_f32, 1.23456_f32);
|
||||||
| ^^^^^^^^^^^^^^^^^^^
|
| ^^^^^^^^^^^^^^^^^^^ help: consider: `0x123_4567_8901_usize`
|
||||||
|
|
|
||||||
= help: consider: 0x123_4567_8901_usize
|
|
||||||
|
|
||||||
error: long literal lacking separators
|
error: long literal lacking separators
|
||||||
--> $DIR/unreadable_literal.rs:7:50
|
--> $DIR/unreadable_literal.rs:7:50
|
||||||
|
|
|
|
||||||
7 | let bad = (0b10110_i64, 0x12345678901_usize, 12345_f32, 1.23456_f32);
|
7 | let bad = (0b10110_i64, 0x12345678901_usize, 12345_f32, 1.23456_f32);
|
||||||
| ^^^^^^^^^
|
| ^^^^^^^^^ help: consider: `12_345_f32`
|
||||||
|
|
|
||||||
= help: consider: 12_345_f32
|
|
||||||
|
|
||||||
error: long literal lacking separators
|
error: long literal lacking separators
|
||||||
--> $DIR/unreadable_literal.rs:7:61
|
--> $DIR/unreadable_literal.rs:7:61
|
||||||
|
|
|
|
||||||
7 | let bad = (0b10110_i64, 0x12345678901_usize, 12345_f32, 1.23456_f32);
|
7 | let bad = (0b10110_i64, 0x12345678901_usize, 12345_f32, 1.23456_f32);
|
||||||
| ^^^^^^^^^^^
|
| ^^^^^^^^^^^ help: consider: `1.234_56_f32`
|
||||||
|
|
|
||||||
= help: consider: 1.234_56_f32
|
|
||||||
|
|
||||||
error: aborting due to 4 previous errors
|
error: aborting due to 4 previous errors
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue