Change the postprocess data parameter type on the NearleyRule interface #637
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
the interface currently looks like this
I suggest this small change
from
d: any[]
tod: any
, so you can use a tuple to define the type of the parameter, which makes much more sense, instead of an array, since production rules match a specific sequence of tokens, in a particular order, for example, with a grammar like this:and a postprocessor like this:
that tuple is not assignable to
any[]
, since theany[]
array could be any length, less than 3, but that will never happen.for it to be assignable to
any[]
, the postprocessor should look like this:which adds the need for runtime type checking with type predicates or something.
this change wouldn't cause any compilation error on existing grammars because
any[]
is assignable toany
, so any code assumingd
is an array, will still work!