message-format-wg icon indicating copy to clipboard operation
message-format-wg copied to clipboard

Unify input and local declarations in data model

Open eemeli opened this issue 1 year ago • 0 comments

Closes #786

This change is a part of what was discussed in #718, i.e. the part that didn't get any critique in the issue.

In the syntax, keeping .input and .local as separate operations makes really good sense from a readability point of view. In the data model, as those concerns are not present, there is no reason to keep the separate type: 'input' and type: 'local' blocks. Both will almost certainly be processed the same way, and the input/local-ness can be inferred when necessary by

type = value.arg?.type == 'variable' && value.arg.name == name ? 'input' : 'local'

This also drops the need for a VariableExpression, which simplifies the TS & JSON Schema definitions quite a bit.

eemeli avatar May 22 '24 12:05 eemeli