Rebalacing macro_metavar_expr
to allow stabilization
#680
Labels
major-change
A proposal to make a major change to rustc
T-compiler
Add this label so rfcbot knows to poll the compiler team
Too small to be a RFC and too complicated to be a PR. I guess this is the best place but if not, feel free to suggest another location.
Proposal
macro_metavar_expr
is an approved feature that unfortunately created divergent opinions after its acceptance, which ended up blocking stabilization.In hopes of making some progress, two approaches based on the feedback provided so far will be proposed here.
1. Innermost vs Outermost indexes
count
uses outermost indices whilelength
uses innermost indices and this inconsistency creates unnecessary confusion.To improve the situation, the order of all elements should start from the innermost index to the outermost index.
Mentions
2.
$
prefixTaking
count
as an example, should the syntax becount(some_metavariable)
orcount($some_metavariable)
? The original RFC specified that metavariable expressions should refer metavariables without$
prefixes but there were some arguments in favour of$
.For unblocking purposes, the requirement of
$
is being proposed. Such enforcement doesn't appear to incur a significant overhead besides the additional typing and interactions with$$
or multiple$$
s shouldn't be a problem as long as the final expanded$
refers a metavariable.Mentions
$$
in Rust 1.63.0 rust#95860 (comment)$$
in Rust 1.63.0 rust#95860 (comment)$$
in Rust 1.63.0 rust#95860 (comment)$$
in Rust 1.63.0 rust#95860 (comment)Mentors or Reviewers
@c410-f3r
Process
The main points of the [Major Change Process][MCP] are as follows:
@rustbot second
.-C flag
, then full team check-off is required.@rfcbot fcp merge
on either the MCP or the PR.The text was updated successfully, but these errors were encountered: