summaryrefslogtreecommitdiff
path: root/tools/node_modules/eslint/lib/rules/no-cond-assign.js
diff options
context:
space:
mode:
Diffstat (limited to 'tools/node_modules/eslint/lib/rules/no-cond-assign.js')
-rw-r--r--tools/node_modules/eslint/lib/rules/no-cond-assign.js18
1 files changed, 14 insertions, 4 deletions
diff --git a/tools/node_modules/eslint/lib/rules/no-cond-assign.js b/tools/node_modules/eslint/lib/rules/no-cond-assign.js
index 67dcd28b20..3843a7ac2e 100644
--- a/tools/node_modules/eslint/lib/rules/no-cond-assign.js
+++ b/tools/node_modules/eslint/lib/rules/no-cond-assign.js
@@ -2,10 +2,21 @@
* @fileoverview Rule to flag assignment in a conditional statement's test expression
* @author Stephen Murray <spmurrayzzz>
*/
+
"use strict";
+//------------------------------------------------------------------------------
+// Requirements
+//------------------------------------------------------------------------------
+
const astUtils = require("./utils/ast-utils");
+//------------------------------------------------------------------------------
+// Helpers
+//------------------------------------------------------------------------------
+
+const TEST_CONDITION_PARENT_TYPES = new Set(["IfStatement", "WhileStatement", "DoWhileStatement", "ForStatement", "ConditionalExpression"]);
+
const NODE_DESCRIPTIONS = {
DoWhileStatement: "a 'do...while' statement",
ForStatement: "a 'for' statement",
@@ -55,7 +66,7 @@ module.exports = {
*/
function isConditionalTestExpression(node) {
return node.parent &&
- node.parent.test &&
+ TEST_CONDITION_PARENT_TYPES.has(node.parent.type) &&
node === node.parent.test;
}
@@ -105,8 +116,7 @@ module.exports = {
) {
context.report({
- node,
- loc: node.test.loc.start,
+ node: node.test,
messageId: "missing"
});
}
@@ -122,7 +132,7 @@ module.exports = {
if (ancestor) {
context.report({
- node: ancestor,
+ node,
messageId: "unexpected",
data: {
type: NODE_DESCRIPTIONS[ancestor.type] || ancestor.type