Skip to content

Commit

Permalink
Rollup merge of rust-lang#93463 - dtolnay:_args, r=cjgillot
Browse files Browse the repository at this point in the history
Rename _args -> args in format_args expansion

As observed in rust-lang#91359 (comment), prior to that PR this variable was sometimes never used, such as in the case of:

```rust
println!("");

// used to expand to:
::std::io::_print(
    ::core::fmt::Arguments::new_v1(
        &["\n"],
        &match () {
            _args => [],
        },
    ),
);
```

so the leading underscore in `_args` was used to suppress an unused variable lint. However after rust-lang#91359 the variable is always used when present, as the unused case would instead expand to:

```rust
::std::io::_print(::core::fmt::Arguments::new_v1(&["\n"], &[]));
```
  • Loading branch information
matthiaskrgr committed Jan 29, 2022
2 parents 0d08bbc + 6667d78 commit 9f6d0cb
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 4 deletions.
6 changes: 3 additions & 3 deletions compiler/rustc_builtin_macros/src/format.rs
Original file line number Diff line number Diff line change
Expand Up @@ -791,7 +791,7 @@ impl<'a, 'b> Context<'a, 'b> {
// Thus in the not nicely ordered case we emit the following instead:
//
// match (&$arg0, &$arg1, …) {
// _args => [ArgumentV1::new(_args.$i, …), ArgumentV1::new(_args.$j, …), …]
// args => [ArgumentV1::new(args.$i, …), ArgumentV1::new(args.$j, …), …]
// }
//
// for the sequence of indices $i, $j, … governed by fmt_arg_index_and_ty.
Expand All @@ -804,7 +804,7 @@ impl<'a, 'b> Context<'a, 'b> {
self.ecx.expr_addr_of(expansion_span, P(e.take()))
} else {
let def_site = self.ecx.with_def_site_ctxt(span);
let args_tuple = self.ecx.expr_ident(def_site, Ident::new(sym::_args, def_site));
let args_tuple = self.ecx.expr_ident(def_site, Ident::new(sym::args, def_site));
let member = Ident::new(sym::integer(arg_index), def_site);
self.ecx.expr(def_site, ast::ExprKind::Field(args_tuple, member))
};
Expand All @@ -828,7 +828,7 @@ impl<'a, 'b> Context<'a, 'b> {
.map(|e| self.ecx.expr_addr_of(e.span.with_ctxt(self.macsp.ctxt()), e))
.collect();

let pat = self.ecx.pat_ident(self.macsp, Ident::new(sym::_args, self.macsp));
let pat = self.ecx.pat_ident(self.macsp, Ident::new(sym::args, self.macsp));
let arm = self.ecx.arm(self.macsp, pat, args_array);
let head = self.ecx.expr(self.macsp, ast::ExprKind::Tup(heads));
self.ecx.expr_match(self.macsp, head, vec![arm])
Expand Down
2 changes: 1 addition & 1 deletion compiler/rustc_span/src/symbol.rs
Original file line number Diff line number Diff line change
Expand Up @@ -272,7 +272,6 @@ symbols! {
__H,
__S,
__try_var,
_args,
_d,
_e,
_task_context,
Expand Down Expand Up @@ -324,6 +323,7 @@ symbols! {
append_const_msg,
arbitrary_enum_discriminant,
arbitrary_self_types,
args,
arith_offset,
arm,
arm_target_feature,
Expand Down

0 comments on commit 9f6d0cb

Please sign in to comment.