diff --git a/packages/babel-parser/src/parser/expression.js b/packages/babel-parser/src/parser/expression.js index 99f0d0977929..6ebdb7206525 100644 --- a/packages/babel-parser/src/parser/expression.js +++ b/packages/babel-parser/src/parser/expression.js @@ -784,7 +784,7 @@ export default class ExpressionParser extends LValParser { finishCallExpression( node: T, optional: boolean, - ): T { + ): N.Expression { if (node.callee.type === "Import") { if (node.arguments.length !== 1) { this.raise(node.start, "import() requires exactly one argument"); diff --git a/packages/babel-parser/src/plugins/estree.js b/packages/babel-parser/src/plugins/estree.js index 5b3e03d694b0..8a311d588f0a 100644 --- a/packages/babel-parser/src/plugins/estree.js +++ b/packages/babel-parser/src/plugins/estree.js @@ -400,17 +400,14 @@ export default (superClass: Class): Class => finishCallExpression( node: T, optional: boolean, - ): T | N.EstreeImportExpression { + ): N.Expression { + super.finishCallExpression(node, optional); + if (node.callee.type === "Import") { - const finishedNode: N.EstreeImportExpression = (super.finishCallExpression( - node, - optional, - ): any); - finishedNode.type = "ImportExpression"; - finishedNode.source = node.arguments[0]; - return finishedNode; + ((node: N.Node): N.EstreeImportExpression).type = "ImportExpression"; + ((node: N.Node): N.EstreeImportExpression).source = node.arguments[0]; } - return super.finishCallExpression(node, optional); + return node; } };