Restrict parsing of type literals and their expressions a _lot_ more #17628
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.
Fixes #12146.
This was made to reuse
parseSimpleUnaryExpression
when numeric types were implemented by @ahejlsberg - except in the time since,parseSimpleUnaryExpression
is not so simple anymore (now that it calls intoparseUpdateExpression
in the default case, which is what happens in 5 of the 4 cases it is called inside ofparseNonArrayType
), and can lead you down a short trail into a call toparseLeftHandSideExpressionOrHigher
where almost anything could happen. Not what we wanted for type literals, really.With this change, the parser is once more restricted to just strings, numeric literals, true/false keywords, and numeric literals with a unary minus sign in front of them.