Extend format-args capture test.
This commit is contained in:
parent
fb2d530dd2
commit
cef9b47583
@ -4,4 +4,8 @@ fn main() {
|
||||
|
||||
println!("{a} {b} {} {} {c} {}", c = "c");
|
||||
//~^ ERROR: invalid reference to positional arguments 1 and 2 (there is 1 argument)
|
||||
|
||||
let n = 1;
|
||||
println!("{a:.n$} {b:.*}");
|
||||
//~^ ERROR: invalid reference to positional argument 0 (no arguments were given)
|
||||
}
|
||||
|
@ -6,5 +6,17 @@ LL | println!("{a} {b} {} {} {c} {}", c = "c");
|
||||
|
|
||||
= note: positional arguments are zero-based
|
||||
|
||||
error: aborting due to previous error
|
||||
error: invalid reference to positional argument 0 (no arguments were given)
|
||||
--> $DIR/format-args-capture-issue-93378.rs:9:23
|
||||
|
|
||||
LL | println!("{a:.n$} {b:.*}");
|
||||
| ------- ^^^--^
|
||||
| | |
|
||||
| | this precision flag adds an extra required argument at position 0, which is why there are 3 arguments expected
|
||||
| this parameter corresponds to the precision flag
|
||||
|
|
||||
= note: positional arguments are zero-based
|
||||
= note: for information about formatting flags, visit https://doc.rust-lang.org/std/fmt/index.html
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
||||
|
@ -5,6 +5,7 @@ fn main() {
|
||||
named_argument_takes_precedence_to_captured();
|
||||
formatting_parameters_can_be_captured();
|
||||
capture_raw_strings_and_idents();
|
||||
repeated_capture();
|
||||
|
||||
#[cfg(panic = "unwind")]
|
||||
{
|
||||
@ -80,3 +81,10 @@ fn formatting_parameters_can_be_captured() {
|
||||
let s = format!("{x:-^width$.precision$}");
|
||||
assert_eq!(&s, "--7.000--");
|
||||
}
|
||||
|
||||
fn repeated_capture() {
|
||||
let a = 1;
|
||||
let b = 2;
|
||||
let s = format!("{a} {b} {a}");
|
||||
assert_eq!(&s, "1 2 1");
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user