From 61cd29a4a9ad01166ac26078b0106787cf1750a3 Mon Sep 17 00:00:00 2001 From: Milos Djermanovic Date: Sun, 8 Sep 2019 03:02:03 +0200 Subject: [PATCH 1/2] Fix: no-sequences is reporting incorrect locations --- lib/rules/no-sequences.js | 4 ++-- tests/lib/rules/no-sequences.js | 5 ++++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/lib/rules/no-sequences.js b/lib/rules/no-sequences.js index 71317c2f792..9c33059b088 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.start, message: "Unexpected use of comma operator." }); } }; diff --git a/tests/lib/rules/no-sequences.js b/tests/lib/rules/no-sequences.js index 55721de3e9d..41ddb3945f9 100644 --- a/tests/lib/rules/no-sequences.js +++ b/tests/lib/rules/no-sequences.js @@ -61,6 +61,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) } ] }); From ce2b20a78d5029ad38a1629b3d7e316a72592e0b Mon Sep 17 00:00:00 2001 From: Milos Djermanovic Date: Sun, 8 Sep 2019 17:56:54 +0200 Subject: [PATCH 2/2] Report full location --- lib/rules/no-sequences.js | 2 +- tests/lib/rules/no-sequences.js | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/lib/rules/no-sequences.js b/lib/rules/no-sequences.js index 9c33059b088..39d147b69be 100644 --- a/lib/rules/no-sequences.js +++ b/lib/rules/no-sequences.js @@ -107,7 +107,7 @@ module.exports = { const firstCommaToken = sourceCode.getTokenAfter(node.expressions[0], astUtils.isCommaToken); - context.report({ node, loc: firstCommaToken.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 41ddb3945f9..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) },