Check if param is assignable when parsing arrow return type (#11992)

This commit is contained in:
Huáng Jùnliàng
2020-10-14 14:09:48 -04:00
committed by GitHub
parent 4e66b8eb6b
commit 136e6301cb
9 changed files with 411 additions and 47 deletions

View File

@@ -1444,7 +1444,7 @@ export default class ExpressionParser extends LValParser {
if (
canBeArrow &&
this.shouldParseArrow() &&
(arrowNode = this.parseArrow(arrowNode))
(arrowNode = this.parseArrow(arrowNode, exprList))
) {
if (!this.isAwaitAllowed() && !this.state.maybeInAsyncArrowHead) {
this.state.awaitPos = oldAwaitPos;
@@ -1500,7 +1500,10 @@ export default class ExpressionParser extends LValParser {
return !this.canInsertSemicolon();
}
parseArrow(node: N.ArrowFunctionExpression): ?N.ArrowFunctionExpression {
parseArrow(
node: N.ArrowFunctionExpression,
exprList: N.Node[], // eslint-disable-line no-unused-vars
): ?N.ArrowFunctionExpression {
if (this.eat(tt.arrow)) {
return node;
}