diff --git a/src/script/index.ts b/src/script/index.ts index c5d9e2f8..0d8134f8 100644 --- a/src/script/index.ts +++ b/src/script/index.ts @@ -9,7 +9,7 @@ import sortedIndexBy from "lodash/sortedIndexBy" import { traverseNodes, ESLintArrayPattern, - ESLintCallExpression, + ESLintArrayExpression, ESLintExpression, ESLintExpressionStatement, ESLintExtendedProgram, @@ -364,20 +364,20 @@ function parseExpressionBody( parserOptions: any, allowEmpty = false, ): ExpressionParseResult { - debug('[script] parse expression: "0(%s)"', code) + debug('[script] parse expression: "[%s]"', code) try { const ast = parseScriptFragment( - `0(${code})`, - locationCalculator.getSubCalculatorAfter(-2), + `[${code}]`, + locationCalculator.getSubCalculatorAfter(-1), parserOptions, ).ast const tokens = ast.tokens || [] const comments = ast.comments || [] const references = analyzeExternalReferences(ast, parserOptions) const statement = ast.body[0] as ESLintExpressionStatement - const callExpression = statement.expression as ESLintCallExpression - const expression = callExpression.arguments[0] + const arrayExpression = statement.expression as ESLintArrayExpression + const expression = arrayExpression.elements[0] if (!allowEmpty && !expression) { return throwEmptyError(locationCalculator, "an expression") @@ -385,16 +385,15 @@ function parseExpressionBody( if (expression && expression.type === "SpreadElement") { return throwUnexpectedTokenError("...", expression) } - if (callExpression.arguments[1]) { - const node = callExpression.arguments[1] + if (arrayExpression.elements[1]) { + const node = arrayExpression.elements[1] return throwUnexpectedTokenError( ",", getCommaTokenBeforeNode(tokens, node) || node, ) } - // Remove parens. - tokens.shift() + // Remove braces. tokens.shift() tokens.pop() diff --git a/test/fixtures/ast/error-message-outside/ast.json b/test/fixtures/ast/error-message-outside/ast.json index 4d4be9bf..f74636a3 100644 --- a/test/fixtures/ast/error-message-outside/ast.json +++ b/test/fixtures/ast/error-message-outside/ast.json @@ -1345,9 +1345,9 @@ }, { "message": "Unexpected end of expression.", - "index": 76, + "index": 75, "lineNumber": 4, - "column": 24 + "column": 23 }, { "message": "Unexpected end of expression.",