Merge pull request #2963 from commandline/master

Fix regression in print_literal
This commit is contained in:
Oliver Schneider 2018-07-26 10:11:34 +02:00 committed by GitHub
commit b0dabce478
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 87 additions and 83 deletions

View File

@ -290,22 +290,24 @@ fn check_tts(cx: &EarlyContext<'a>, tts: &ThinTokenStream, is_write: bool) -> Op
idx += 1; idx += 1;
}, },
ExprKind::Assign(lhs, rhs) => { ExprKind::Assign(lhs, rhs) => {
if let ExprKind::Path(_, p) = &lhs.node { if let ExprKind::Lit(_) = rhs.node {
let mut all_simple = true; if let ExprKind::Path(_, p) = &lhs.node {
let mut seen = false; let mut all_simple = true;
for arg in &args { let mut seen = false;
match arg.position { for arg in &args {
| ArgumentImplicitlyIs(_) match arg.position {
| ArgumentIs(_) | ArgumentImplicitlyIs(_)
=> {}, | ArgumentIs(_)
ArgumentNamed(name) => if *p == name { => {},
seen = true; ArgumentNamed(name) => if *p == name {
all_simple &= arg.format == SIMPLE; seen = true;
}, all_simple &= arg.format == SIMPLE;
},
}
}
if all_simple && seen {
span_lint(cx, lint, rhs.span, "literal with an empty format string");
} }
}
if all_simple && seen {
span_lint(cx, lint, rhs.span, "literal with an empty format string");
} }
} }
}, },

View File

@ -8,6 +8,7 @@ fn main() {
println!("Hello"); println!("Hello");
let world = "world"; let world = "world";
println!("Hello {}", world); println!("Hello {}", world);
println!("Hello {world}", world=world);
println!("3 in hex is {:X}", 3); println!("3 in hex is {:X}", 3);
println!("2 + 1 = {:.4}", 3); println!("2 + 1 = {:.4}", 3);
println!("2 + 1 = {:5.4}", 3); println!("2 + 1 = {:5.4}", 3);

View File

@ -1,87 +1,87 @@
error: literal with an empty format string error: literal with an empty format string
--> $DIR/print_literal.rs:23:71 --> $DIR/print_literal.rs:24:71
| |
23 | println!("{} of {:b} people know binary, the other half doesn't", 1, 2); 24 | println!("{} of {:b} people know binary, the other half doesn't", 1, 2);
| ^ | ^
| |
= note: `-D print-literal` implied by `-D warnings` = note: `-D print-literal` implied by `-D warnings`
error: literal with an empty format string error: literal with an empty format string
--> $DIR/print_literal.rs:24:24 --> $DIR/print_literal.rs:25:24
| |
24 | print!("Hello {}", "world"); 25 | print!("Hello {}", "world");
| ^^^^^^^ | ^^^^^^^
error: literal with an empty format string error: literal with an empty format string
--> $DIR/print_literal.rs:25:36 --> $DIR/print_literal.rs:26:36
| |
25 | println!("Hello {} {}", world, "world"); 26 | println!("Hello {} {}", world, "world");
| ^^^^^^^ | ^^^^^^^
error: literal with an empty format string error: literal with an empty format string
--> $DIR/print_literal.rs:26:26 --> $DIR/print_literal.rs:27:26
| |
26 | println!("Hello {}", "world"); 27 | println!("Hello {}", "world");
| ^^^^^^^ | ^^^^^^^
error: literal with an empty format string error: literal with an empty format string
--> $DIR/print_literal.rs:27:30 --> $DIR/print_literal.rs:28:30
| |
27 | println!("10 / 4 is {}", 2.5); 28 | println!("10 / 4 is {}", 2.5);
| ^^^ | ^^^
error: literal with an empty format string error: literal with an empty format string
--> $DIR/print_literal.rs:28:28 --> $DIR/print_literal.rs:29:28
| |
28 | println!("2 + 1 = {}", 3); 29 | println!("2 + 1 = {}", 3);
| ^ | ^
error: literal with an empty format string
--> $DIR/print_literal.rs:33:25
|
33 | println!("{0} {1}", "hello", "world");
| ^^^^^^^
error: literal with an empty format string
--> $DIR/print_literal.rs:33:34
|
33 | println!("{0} {1}", "hello", "world");
| ^^^^^^^
error: literal with an empty format string error: literal with an empty format string
--> $DIR/print_literal.rs:34:25 --> $DIR/print_literal.rs:34:25
| |
34 | println!("{1} {0}", "hello", "world"); 34 | println!("{0} {1}", "hello", "world");
| ^^^^^^^ | ^^^^^^^
error: literal with an empty format string error: literal with an empty format string
--> $DIR/print_literal.rs:34:34 --> $DIR/print_literal.rs:34:34
| |
34 | println!("{1} {0}", "hello", "world"); 34 | println!("{0} {1}", "hello", "world");
| ^^^^^^^ | ^^^^^^^
error: literal with an empty format string error: literal with an empty format string
--> $DIR/print_literal.rs:37:33 --> $DIR/print_literal.rs:35:25
| |
37 | println!("{foo} {bar}", foo="hello", bar="world"); 35 | println!("{1} {0}", "hello", "world");
| ^^^^^^^ | ^^^^^^^
error: literal with an empty format string error: literal with an empty format string
--> $DIR/print_literal.rs:37:46 --> $DIR/print_literal.rs:35:34
| |
37 | println!("{foo} {bar}", foo="hello", bar="world"); 35 | println!("{1} {0}", "hello", "world");
| ^^^^^^^ | ^^^^^^^
error: literal with an empty format string error: literal with an empty format string
--> $DIR/print_literal.rs:38:33 --> $DIR/print_literal.rs:38:33
| |
38 | println!("{bar} {foo}", foo="hello", bar="world"); 38 | println!("{foo} {bar}", foo="hello", bar="world");
| ^^^^^^^ | ^^^^^^^
error: literal with an empty format string error: literal with an empty format string
--> $DIR/print_literal.rs:38:46 --> $DIR/print_literal.rs:38:46
| |
38 | println!("{bar} {foo}", foo="hello", bar="world"); 38 | println!("{foo} {bar}", foo="hello", bar="world");
| ^^^^^^^
error: literal with an empty format string
--> $DIR/print_literal.rs:39:33
|
39 | println!("{bar} {foo}", foo="hello", bar="world");
| ^^^^^^^
error: literal with an empty format string
--> $DIR/print_literal.rs:39:46
|
39 | println!("{bar} {foo}", foo="hello", bar="world");
| ^^^^^^^ | ^^^^^^^
error: aborting due to 14 previous errors error: aborting due to 14 previous errors

View File

@ -11,6 +11,7 @@ fn main() {
writeln!(&mut v, "Hello"); writeln!(&mut v, "Hello");
let world = "world"; let world = "world";
writeln!(&mut v, "Hello {}", world); writeln!(&mut v, "Hello {}", world);
writeln!(&mut v, "Hello {world}", world=world);
writeln!(&mut v, "3 in hex is {:X}", 3); writeln!(&mut v, "3 in hex is {:X}", 3);
writeln!(&mut v, "2 + 1 = {:.4}", 3); writeln!(&mut v, "2 + 1 = {:.4}", 3);
writeln!(&mut v, "2 + 1 = {:5.4}", 3); writeln!(&mut v, "2 + 1 = {:5.4}", 3);

View File

@ -1,87 +1,87 @@
error: literal with an empty format string error: literal with an empty format string
--> $DIR/write_literal.rs:26:79 --> $DIR/write_literal.rs:27:79
| |
26 | writeln!(&mut v, "{} of {:b} people know binary, the other half doesn't", 1, 2); 27 | writeln!(&mut v, "{} of {:b} people know binary, the other half doesn't", 1, 2);
| ^ | ^
| |
= note: `-D write-literal` implied by `-D warnings` = note: `-D write-literal` implied by `-D warnings`
error: literal with an empty format string error: literal with an empty format string
--> $DIR/write_literal.rs:27:32 --> $DIR/write_literal.rs:28:32
| |
27 | write!(&mut v, "Hello {}", "world"); 28 | write!(&mut v, "Hello {}", "world");
| ^^^^^^^ | ^^^^^^^
error: literal with an empty format string error: literal with an empty format string
--> $DIR/write_literal.rs:28:44 --> $DIR/write_literal.rs:29:44
| |
28 | writeln!(&mut v, "Hello {} {}", world, "world"); 29 | writeln!(&mut v, "Hello {} {}", world, "world");
| ^^^^^^^ | ^^^^^^^
error: literal with an empty format string error: literal with an empty format string
--> $DIR/write_literal.rs:29:34 --> $DIR/write_literal.rs:30:34
| |
29 | writeln!(&mut v, "Hello {}", "world"); 30 | writeln!(&mut v, "Hello {}", "world");
| ^^^^^^^ | ^^^^^^^
error: literal with an empty format string error: literal with an empty format string
--> $DIR/write_literal.rs:30:38 --> $DIR/write_literal.rs:31:38
| |
30 | writeln!(&mut v, "10 / 4 is {}", 2.5); 31 | writeln!(&mut v, "10 / 4 is {}", 2.5);
| ^^^ | ^^^
error: literal with an empty format string error: literal with an empty format string
--> $DIR/write_literal.rs:31:36 --> $DIR/write_literal.rs:32:36
| |
31 | writeln!(&mut v, "2 + 1 = {}", 3); 32 | writeln!(&mut v, "2 + 1 = {}", 3);
| ^ | ^
error: literal with an empty format string
--> $DIR/write_literal.rs:36:33
|
36 | writeln!(&mut v, "{0} {1}", "hello", "world");
| ^^^^^^^
error: literal with an empty format string
--> $DIR/write_literal.rs:36:42
|
36 | writeln!(&mut v, "{0} {1}", "hello", "world");
| ^^^^^^^
error: literal with an empty format string error: literal with an empty format string
--> $DIR/write_literal.rs:37:33 --> $DIR/write_literal.rs:37:33
| |
37 | writeln!(&mut v, "{1} {0}", "hello", "world"); 37 | writeln!(&mut v, "{0} {1}", "hello", "world");
| ^^^^^^^ | ^^^^^^^
error: literal with an empty format string error: literal with an empty format string
--> $DIR/write_literal.rs:37:42 --> $DIR/write_literal.rs:37:42
| |
37 | writeln!(&mut v, "{1} {0}", "hello", "world"); 37 | writeln!(&mut v, "{0} {1}", "hello", "world");
| ^^^^^^^ | ^^^^^^^
error: literal with an empty format string error: literal with an empty format string
--> $DIR/write_literal.rs:40:41 --> $DIR/write_literal.rs:38:33
| |
40 | writeln!(&mut v, "{foo} {bar}", foo="hello", bar="world"); 38 | writeln!(&mut v, "{1} {0}", "hello", "world");
| ^^^^^^^ | ^^^^^^^
error: literal with an empty format string error: literal with an empty format string
--> $DIR/write_literal.rs:40:54 --> $DIR/write_literal.rs:38:42
| |
40 | writeln!(&mut v, "{foo} {bar}", foo="hello", bar="world"); 38 | writeln!(&mut v, "{1} {0}", "hello", "world");
| ^^^^^^^ | ^^^^^^^
error: literal with an empty format string error: literal with an empty format string
--> $DIR/write_literal.rs:41:41 --> $DIR/write_literal.rs:41:41
| |
41 | writeln!(&mut v, "{bar} {foo}", foo="hello", bar="world"); 41 | writeln!(&mut v, "{foo} {bar}", foo="hello", bar="world");
| ^^^^^^^ | ^^^^^^^
error: literal with an empty format string error: literal with an empty format string
--> $DIR/write_literal.rs:41:54 --> $DIR/write_literal.rs:41:54
| |
41 | writeln!(&mut v, "{bar} {foo}", foo="hello", bar="world"); 41 | writeln!(&mut v, "{foo} {bar}", foo="hello", bar="world");
| ^^^^^^^
error: literal with an empty format string
--> $DIR/write_literal.rs:42:41
|
42 | writeln!(&mut v, "{bar} {foo}", foo="hello", bar="world");
| ^^^^^^^
error: literal with an empty format string
--> $DIR/write_literal.rs:42:54
|
42 | writeln!(&mut v, "{bar} {foo}", foo="hello", bar="world");
| ^^^^^^^ | ^^^^^^^
error: aborting due to 14 previous errors error: aborting due to 14 previous errors