fix(linter): block in eslint/no_cond_assign (#4721)

fix: #4687
This commit is contained in:
heygsc 2024-08-07 12:44:38 +08:00 committed by GitHub
parent 33f1312a8c
commit 62739949ae
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -77,7 +77,8 @@ impl Rule for NoCondAssign {
}
AstKind::Function(_)
| AstKind::ArrowFunctionExpression(_)
| AstKind::Program(_) => break,
| AstKind::Program(_)
| AstKind::BlockStatement(_) => break,
_ => {}
}
}
@ -159,6 +160,11 @@ fn test() {
("switch (foo) { case a = b: bar(); }", Some(serde_json::json!(["except-parens"]))),
("switch (foo) { case a = b: bar(); }", Some(serde_json::json!(["always"]))),
("switch (foo) { case baz + (a = b): bar(); }", Some(serde_json::json!(["always"]))),
// not in condition
("if (obj.key) { (obj.key=false) }", Some(serde_json::json!(["always"]))),
("for (;;) { (obj.key=false) }", Some(serde_json::json!(["always"]))),
("while (obj.key) { (obj.key=false) }", Some(serde_json::json!(["always"]))),
("do { (obj.key=false) } while (obj.key)", Some(serde_json::json!(["always"]))),
];
let fail = vec![