mirror of
https://github.com/rust-lang/rust.git
synced 2025-05-14 02:49:40 +00:00
Merge pull request #2963 from commandline/master
Fix regression in print_literal
This commit is contained in:
commit
b0dabce478
@ -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");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -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);
|
||||||
|
@ -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
|
||||||
|
@ -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);
|
||||||
|
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user