diff options
| author | Dylan DPC <99973273+Dylan-DPC@users.noreply.github.com> | 2022-08-29 16:49:45 +0530 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-08-29 16:49:45 +0530 |
| commit | 0b6faca67057ceb99ee3af342d4ba6f1ac407fde (patch) | |
| tree | 2ca8afd1a123f358dc5938f8305289ec24add362 /src/test | |
| parent | 141728fc61254fafe14dbe8387ec08c5ecc046a9 (diff) | |
| parent | aebad394142aba6f5dc11a1fad5731e12c351c00 (diff) | |
Rollup merge of #101000 - m-ou-se:count-is-star, r=nagisa
Separate CountIsStar from CountIsParam in rustc_parse_format.
`rustc_parse_format`'s parser would result in the exact same output for `{:.*}` and `{:.0$}`, making it hard for diagnostics to handle these cases properly.
This splits those cases by adding a new `CountIsStar` enum variant.
This fixes #100995
Prerequisite for https://github.com/rust-lang/rust/pull/100996
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/ui/fmt/ifmt-bad-arg.rs | 2 | ||||
| -rw-r--r-- | src/test/ui/fmt/ifmt-bad-arg.stderr | 13 |
2 files changed, 14 insertions, 1 deletions
diff --git a/src/test/ui/fmt/ifmt-bad-arg.rs b/src/test/ui/fmt/ifmt-bad-arg.rs index 84f4cc7f4cc..f00cb05c9eb 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 5439ee17398..dbb4bc6d937 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`. |
