Skip to content

Commit 02e34ff

Browse files
authored
fix: add missing space after else in curly autofix (#21355)
1 parent 29585ce commit 02e34ff

2 files changed

Lines changed: 30 additions & 6 deletions

File tree

‎lib/rules/curly.js‎

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -263,15 +263,17 @@ module.exports = {
263263
},
264264
fix(fixer) {
265265
/*
266-
* `do while` expressions sometimes need a space to be inserted after `do`.
267-
* e.g. `do{foo()} while (bar)` should be corrected to `do foo() while (bar)`
266+
* `do` and `else` sometimes need a space to be inserted after them.
267+
* e.g. `do{foo();} while (bar)` should be corrected to `do foo(); while (bar)`,
268+
* and `else{foo();}` should be corrected to `else foo();`
268269
*/
270+
const tokenBeforeBody =
271+
sourceCode.getTokenBefore(body);
269272
const needsPrecedingSpace =
270-
node.type === "DoWhileStatement" &&
271-
sourceCode.getTokenBefore(body)
272-
.range[1] === body.range[0] &&
273+
tokenBeforeBody.range[1] ===
274+
body.range[0] &&
273275
!astUtils.canTokensBeAdjacent(
274-
"do",
276+
tokenBeforeBody,
275277
sourceCode.getFirstToken(body, {
276278
skip: 1,
277279
}),

‎tests/lib/rules/curly.js‎

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1348,6 +1348,28 @@ ruleTester.run("curly", rule, {
13481348
},
13491349
],
13501350
},
1351+
{
1352+
code: "if (foo) bar(); else{baz();}",
1353+
output: "if (foo) bar(); else baz();",
1354+
options: ["multi"],
1355+
errors: [
1356+
{
1357+
messageId: "unexpectedCurlyAfter",
1358+
data: { name: "else" },
1359+
},
1360+
],
1361+
},
1362+
{
1363+
code: "if (foo) bar(); else{if (baz) qux();}",
1364+
output: "if (foo) bar(); else if (baz) qux();",
1365+
options: ["multi"],
1366+
errors: [
1367+
{
1368+
messageId: "unexpectedCurlyAfter",
1369+
data: { name: "else" },
1370+
},
1371+
],
1372+
},
13511373
{
13521374
code: "if (foo) {bar()} baz()",
13531375
output: null,

0 commit comments

Comments
 (0)