fix(ts): Allow parenthesized "assert and assign" (#12933)
Co-authored-by: Nicolò Ribaudo <7000710+nicolo-ribaudo@users.noreply.github.com>
This commit is contained in:
@@ -2701,6 +2701,8 @@ export default (superClass: Class<Parser>): Class<Parser> =>
|
||||
return super.toAssignable(this.typeCastToParameter(node), isLHS);
|
||||
case "TSParameterProperty":
|
||||
return super.toAssignable(node, isLHS);
|
||||
case "ParenthesizedExpression":
|
||||
return this.toAssignableParenthesizedExpression(node, isLHS);
|
||||
case "TSAsExpression":
|
||||
case "TSNonNullExpression":
|
||||
case "TSTypeAssertion":
|
||||
@@ -2711,6 +2713,19 @@ export default (superClass: Class<Parser>): Class<Parser> =>
|
||||
}
|
||||
}
|
||||
|
||||
toAssignableParenthesizedExpression(node: N.Node, isLHS: boolean) {
|
||||
switch (node.expression.type) {
|
||||
case "TSAsExpression":
|
||||
case "TSNonNullExpression":
|
||||
case "TSTypeAssertion":
|
||||
case "ParenthesizedExpression":
|
||||
node.expression = this.toAssignable(node.expression, isLHS);
|
||||
return node;
|
||||
default:
|
||||
return super.toAssignable(node, isLHS);
|
||||
}
|
||||
}
|
||||
|
||||
checkLVal(
|
||||
expr: N.Expression,
|
||||
contextDescription: string,
|
||||
|
||||
Reference in New Issue
Block a user