From ae17d1ca59dd466aa64da0680ec2453c2dc3b80d Mon Sep 17 00:00:00 2001 From: Milos Djermanovic Date: Sat, 14 Sep 2019 02:37:37 +0200 Subject: [PATCH] Fix: no-sequences is reporting incorrect locations (#12241) * Fix: no-sequences is reporting incorrect locations * Report full location --- lib/rules/no-sequences.js | 4 ++-- tests/lib/rules/no-sequences.js | 16 +++++++++++++++- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/lib/rules/no-sequences.js b/lib/rules/no-sequences.js index 71317c2f792..39d147b69be 100644 --- a/lib/rules/no-sequences.js +++ b/lib/rules/no-sequences.js @@ -105,9 +105,9 @@ module.exports = { } } - const child = sourceCode.getTokenAfter(node.expressions[0]); + const firstCommaToken = sourceCode.getTokenAfter(node.expressions[0], astUtils.isCommaToken); - context.report({ node, loc: child.loc.start, message: "Unexpected use of comma operator." }); + context.report({ node, loc: firstCommaToken.loc, message: "Unexpected use of comma operator." }); } }; diff --git a/tests/lib/rules/no-sequences.js b/tests/lib/rules/no-sequences.js index 55721de3e9d..7fcba267b7e 100644 --- a/tests/lib/rules/no-sequences.js +++ b/tests/lib/rules/no-sequences.js @@ -54,6 +54,17 @@ ruleTester.run("no-sequences", rule, { // Examples of code that should trigger the rule invalid: [ + { + code: "1, 2;", + errors: [{ + message: "Unexpected use of comma operator.", + type: "SequenceExpression", + line: 1, + column: 2, + endLine: 1, + endColumn: 3 + }] + }, { code: "a = 1, 2", errors: errors(6) }, { code: "do {} while (doSomething(), !!test);", errors: errors(27) }, { code: "for (; doSomething(), !!test; );", errors: errors(21) }, @@ -61,6 +72,9 @@ ruleTester.run("no-sequences", rule, { { code: "switch (doSomething(), val) {}", errors: errors(22) }, { code: "while (doSomething(), !!test);", errors: errors(21) }, { code: "with (doSomething(), val) {}", errors: errors(20) }, - { code: "a => (doSomething(), a)", env: { es6: true }, errors: errors(20) } + { code: "a => (doSomething(), a)", env: { es6: true }, errors: errors(20) }, + { code: "(1), 2", errors: errors(4) }, + { code: "((1)) , (2)", errors: errors(7) }, + { code: "while((1) , 2);", errors: errors(11) } ] });