Merge pull request #2495 from alexheretic/fix-2494

Fix #2494 add suggestion for unreadable_literal
This commit is contained in:
Martin Carton 2018-03-01 19:26:28 +01:00 committed by GitHub
commit cb43feb4cc
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
12 changed files with 40 additions and 65 deletions

View file

@ -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(),
), ),
}; };
} }

View file

@ -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"

View file

@ -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"

View file

@ -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"

View file

@ -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"

View file

@ -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"

View file

@ -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"

View file

@ -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"

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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