Open
Description
-term = Term
.attr = Attr
msg = {-term(0)}, {-term.attr(1)}.
When parameterized terms were introduced, @stasm wrote:
When calling a term, both positional and named arguments can be used, but positional are ignored, because, by their anonymous nature, they can't be looked up via variable names.
Shouldn’t a warning be emitted in such case?
By the way, how is it supposed to work, in the first place? Because that’s the point where official implementations diverge: JS and Rust silently ignore positionals while Python emits a warning and doesn’t even resolve positional arguments:
# "Invalid argument to NUMBER" in JS and Rust, "Ignored positional arguments" in Python.
test-0 = {-term(NUMBER("x"))}
# Called in JS and Rust, isn't in Python.
test-1 = {-term(FUNC-WITH-SIDE-EFFECTS())}