This repository has been archived by the owner on May 19, 2018. It is now read-only.
Parse flow nested array type annotations like number[][] #219
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.
Flow supports nested array types like
number[][]
, while babylon throws a syntax error, as noted in #217 . This error caused problems upstream, e.g. when trying to strip the types with babel, see babel/babel#4831. The workaround was to useArray<number[]>
. To solve this, I adjusted theflowParsePostfixType
method to parse 0-n[]
postfixes and return the correct AST. I added test cases with:For the tests'
expected.json
s I copied flow's ASTs from astexplorer.net and adjusted therange
keys etc. to match babylon's format. I was curious if there could be any interference with JS arrays, so I checked with the code of flow's parser. And indeed – they check for line terminators there, so I added another test case with:And made sure this parses as a program with a body of a
VariableDeclaration
and anExpressionStatement
.Let me know what you think.☺️