From aebad394142aba6f5dc11a1fad5731e12c351c00 Mon Sep 17 00:00:00 2001 From: Mara Bos Date: Thu, 25 Aug 2022 14:49:42 +0200 Subject: [PATCH] Add test for {:.0$} diagnostic issue. --- src/test/ui/fmt/ifmt-bad-arg.rs | 2 ++ src/test/ui/fmt/ifmt-bad-arg.stderr | 13 ++++++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/test/ui/fmt/ifmt-bad-arg.rs b/src/test/ui/fmt/ifmt-bad-arg.rs index 84f4cc7f4ccd8..f00cb05c9ebc3 100644 --- a/src/test/ui/fmt/ifmt-bad-arg.rs +++ b/src/test/ui/fmt/ifmt-bad-arg.rs @@ -94,4 +94,6 @@ tenth number: {}", // doesn't exist. println!("{:.*}"); //~^ ERROR 2 positional arguments in format string, but no arguments were given + println!("{:.0$}"); + //~^ ERROR 1 positional argument in format string, but no arguments were given } diff --git a/src/test/ui/fmt/ifmt-bad-arg.stderr b/src/test/ui/fmt/ifmt-bad-arg.stderr index 5439ee173985b..dbb4bc6d9370e 100644 --- a/src/test/ui/fmt/ifmt-bad-arg.stderr +++ b/src/test/ui/fmt/ifmt-bad-arg.stderr @@ -273,6 +273,17 @@ LL | println!("{:.*}"); = note: positional arguments are zero-based = note: for information about formatting flags, visit https://doc.rust-lang.org/std/fmt/index.html +error: 1 positional argument in format string, but no arguments were given + --> $DIR/ifmt-bad-arg.rs:97:15 + | +LL | println!("{:.0$}"); + | ^^---^ + | | + | this precision flag expects an `usize` argument at position 0, but no arguments were given + | + = note: positional arguments are zero-based + = note: for information about formatting flags, visit https://doc.rust-lang.org/std/fmt/index.html + error[E0425]: cannot find value `foo` in this scope --> $DIR/ifmt-bad-arg.rs:27:18 | @@ -339,7 +350,7 @@ LL | pub fn from_usize(x: &usize) -> ArgumentV1<'_> { | ^^^^^^^^^^ = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) -error: aborting due to 37 previous errors +error: aborting due to 38 previous errors Some errors have detailed explanations: E0308, E0425. For more information about an error, try `rustc --explain E0308`.