Auto merge of #76485 - estebank:format_arg_capture_spans, r=davidtwco
Point at named argument not found when using `format_args_capture` instead of whole format string
This commit is contained in:
commit
6f9a8a7f9b
|
@ -543,9 +543,12 @@ impl<'a, 'b> Context<'a, 'b> {
|
|||
let idx = self.args.len();
|
||||
self.arg_types.push(Vec::new());
|
||||
self.arg_unique_types.push(Vec::new());
|
||||
self.args.push(
|
||||
self.ecx.expr_ident(self.fmtsp, Ident::new(name, self.fmtsp)),
|
||||
);
|
||||
let span = if self.is_literal {
|
||||
*self.arg_spans.get(self.curpiece).unwrap_or(&self.fmtsp)
|
||||
} else {
|
||||
self.fmtsp
|
||||
};
|
||||
self.args.push(self.ecx.expr_ident(span, Ident::new(name, span)));
|
||||
self.names.insert(name, idx);
|
||||
self.verify_arg_type(Exact(idx), ty)
|
||||
} else {
|
||||
|
|
|
@ -16,7 +16,7 @@ fn main() {
|
|||
{foo}
|
||||
|
||||
"##);
|
||||
//~^^^^^ ERROR: cannot find value `foo` in this scope
|
||||
//~^^^ ERROR: cannot find value `foo` in this scope
|
||||
|
||||
panic!("{foo} {bar}", bar=1); //~ ERROR: cannot find value `foo` in this scope
|
||||
}
|
||||
|
|
|
@ -7,45 +7,40 @@ LL | format!("{valuea} {valueb}", valuea=5, valuec=7);
|
|||
| formatting specifier missing
|
||||
|
||||
error[E0425]: cannot find value `foo` in this scope
|
||||
--> $DIR/format-args-capture-missing-variables.rs:4:13
|
||||
--> $DIR/format-args-capture-missing-variables.rs:4:17
|
||||
|
|
||||
LL | format!("{} {foo} {} {bar} {}", 1, 2, 3);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
|
||||
| ^^^^^ not found in this scope
|
||||
|
||||
error[E0425]: cannot find value `bar` in this scope
|
||||
--> $DIR/format-args-capture-missing-variables.rs:4:13
|
||||
--> $DIR/format-args-capture-missing-variables.rs:4:26
|
||||
|
|
||||
LL | format!("{} {foo} {} {bar} {}", 1, 2, 3);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
|
||||
| ^^^^^ not found in this scope
|
||||
|
||||
error[E0425]: cannot find value `foo` in this scope
|
||||
--> $DIR/format-args-capture-missing-variables.rs:8:13
|
||||
--> $DIR/format-args-capture-missing-variables.rs:8:14
|
||||
|
|
||||
LL | format!("{foo}");
|
||||
| ^^^^^^^ not found in this scope
|
||||
| ^^^^^ not found in this scope
|
||||
|
||||
error[E0425]: cannot find value `valueb` in this scope
|
||||
--> $DIR/format-args-capture-missing-variables.rs:10:13
|
||||
--> $DIR/format-args-capture-missing-variables.rs:10:23
|
||||
|
|
||||
LL | format!("{valuea} {valueb}", valuea=5, valuec=7);
|
||||
| ^^^^^^^^^^^^^^^^^^^ not found in this scope
|
||||
| ^^^^^^^^ not found in this scope
|
||||
|
||||
error[E0425]: cannot find value `foo` in this scope
|
||||
--> $DIR/format-args-capture-missing-variables.rs:14:13
|
||||
--> $DIR/format-args-capture-missing-variables.rs:16:9
|
||||
|
|
||||
LL | format!(r##"
|
||||
| _____________^
|
||||
LL | |
|
||||
LL | | {foo}
|
||||
LL | |
|
||||
LL | | "##);
|
||||
| |_______^ not found in this scope
|
||||
LL | {foo}
|
||||
| ^^^^^ not found in this scope
|
||||
|
||||
error[E0425]: cannot find value `foo` in this scope
|
||||
--> $DIR/format-args-capture-missing-variables.rs:21:12
|
||||
--> $DIR/format-args-capture-missing-variables.rs:21:13
|
||||
|
|
||||
LL | panic!("{foo} {bar}", bar=1);
|
||||
| ^^^^^^^^^^^^^ not found in this scope
|
||||
| ^^^^^ not found in this scope
|
||||
|
||||
error: aborting due to 7 previous errors
|
||||
|
||||
|
|
Loading…
Reference in New Issue