$
) to be forever unusedThis RFC proposes a stable contract that $
will not be used for any features in Luau, and will not be accepted as part of identifier tokens.
By reserving $
external pattern matching tools, which at time of writing are already planned to be created by both Roblox and full-moon, can use it to symbolize things like placeholder tokens, similar to ast-grep.
For example, a search in ast-grep for “checking equality to itself” would be $A == $A
. This becomes ambiguous and harder to write if $A
is also a valid identifier, or means some potential expression.
Nothing more than a stable contract is necessary. $
will not be allowed in identifiers, and $
will not be a component of any syntax being added to the language.
$
is chosen as it seems fairly unlikely we will ever use it for any syntax, while at the same time its use as a placeholder token is common.
$
for binded parameters in prepared statementsThe dollar sign is used in a couple of places outside Luau:
$name = "John"
)These use cases are nowhere near compelling enough to where we would likely do the same.
$
is a fairly clear choice