Remove spaces in for statement heads (#19188)

Co-authored-by: fisker Cheung <lionkay@gmail.com>
This commit is contained in:
Igorandfisker Cheung authored and GitHub committed 2026-05-28 05:28:45 +08:00
1 parent b0df42a38e
commit f4ff697101
10 files changed
+63 -47

No files matched your search

+16
View File
@@ -0,0 +1,16 @@
#### Remove space in `for` statement without "update" expression (#19188 by @Poliklot)
<!-- prettier-ignore -->
```jsx
// Input
for (initialize;;) {}
for (; condition;) {}
// Prettier stable
for (initialize; ; ) {}
for (; condition; ) {}
// Prettier main
for (initialize; ;) {}
for (; condition;) {}
```
+2 -8
View File
@@ -1,10 +1,4 @@
import {
group,
ifBreak,
indent,
line,
softline,
} from "../../document/index.js";
import { group, indent, line, softline } from "../../document/index.js";
import { printDanglingComments } from "../../main/comments/print.js";
import { printForXStatementBody } from "./clause.js";
@@ -34,7 +28,7 @@ function printForStatement(path, options, print) {
line,
print("test"),
";",
node.update ? [line, print("update")] : ifBreak("", line),
node.update ? [line, print("update")] : "",
]),
softline,
]),
@@ -677,12 +677,12 @@ function try_scope() {
function for_scope_let() {
let a: number = 0;
for (let a = "" /* ok: local to init */; ; ) {}
for (let a = "" /* ok: local to init */; ;) {}
}
function for_scope_var() {
var a: number = 0;
for (var a = "" /* error: string ~> number */; ; ) {}
for (var a = "" /* error: string ~> number */; ;) {}
}
function for_in_scope_let(o: Object) {
@@ -577,7 +577,7 @@ function do_while_post_init(b) {
// local use of annotated var in for is ok
function for_scoped_init(b) {
for (; b; ) {
for (; b;) {
var x: number = 0;
var y: number = x;
}
@@ -586,14 +586,14 @@ function for_scoped_init(b) {
// ...but use before for gives undefined
function for_pre_init(b) {
var y: number = x; // error
for (; b; ) {
for (; b;) {
var x: number = 0;
}
}
// ...and after
function for_post_init(b) {
for (; b; ) {
for (; b;) {
var x: number = 0;
}
var y: number = x; // error
@@ -98,7 +98,7 @@ function try_scope_finally() {
function for_scope() {
let a = "";
let b = "";
for (let a; ; ) {
for (let a; ;) {
a = 0; // doesn't add lower bound to outer a
b = 0;
}
@@ -744,7 +744,7 @@ function def_assign_within_try(b: boolean, obj: Obj) {
}
function def_assign_within_for(b: boolean, obj: Obj) {
for (; b; ) {
for (; b;) {
obj.p = 10; // (obj.p : number)
var x: number = obj.p; // ok by def assign
}
@@ -170,7 +170,7 @@ for(using /* 1 */ foo of bar());
/* 2 */ b = foo();
}
for (using /* 1 */ a = foo(), /* 2 */ b = foo(); ; );
for (using /* 1 */ a = foo(), /* 2 */ b = foo(); ;);
for (using /* 1 */ foo of bar());
@@ -638,7 +638,7 @@ async function f() {
=====================================output=====================================
async function f() {
for (await using basic = reader(); ; );
for (await using basic = reader(); ;);
}
================================================================================
@@ -964,7 +964,7 @@ for (
reader = getReader(););
=====================================output=====================================
for (using; (reader = getReader()); );
for (using; (reader = getReader()););
================================================================================
`;
@@ -833,6 +833,8 @@ parsers: ["babel", "flow", "typescript"]
printWidth: 80 (default) |
=====================================input======================================
for (;;) {}
for (initialize;;) {}
for (; condition;) {}
for (var i = 0; i < 10; ++i) {}
for (;;) 0;
@@ -840,6 +842,8 @@ for (var i = 0; i < 10; ++i) 0;
=====================================output=====================================
for (;;) {}
for (initialize; ;) {}
for (; condition;) {}
for (var i = 0; i < 10; ++i) {}
for (;;) 0;
@@ -931,16 +935,16 @@ async function f() {
for (a in b) 0;
=====================================output=====================================
for ((x in a); ; ) {}
for (a = (a in b); ; ) {}
for (let a = (b in c); ; );
for (a && (b in c); ; );
for ((a) => (b in c); ; );
for ((x in a); ;) {}
for (a = (a in b); ;) {}
for (let a = (b in c); ;);
for (a && (b in c); ;);
for ((a) => (b in c); ;);
function* g() {
for (yield (a in b); ; );
for (yield (a in b); ;);
}
async function f() {
for (await (a in b); ; );
for (await (a in b); ;);
}
for (a in b) 0;
@@ -1009,22 +1013,22 @@ for (;a = function (x = b in c) {};);
=====================================output=====================================
// https://github.com/babel/babel/blob/HEAD/packages/babel-generator/test/fixtures/parentheses/in-inside-for/input.js
for (var a = (b in c); ; );
for (var a = 1 || (b in c); ; );
for (var a = 1 + (2 || (b in c)); ; );
for (var a = () => (b in c); ; );
for (var a = 1 || (() => (b in c)); ; );
for (var a = (b in c); ;);
for (var a = 1 || (b in c); ;);
for (var a = 1 + (2 || (b in c)); ;);
for (var a = () => (b in c); ;);
for (var a = 1 || (() => (b in c)); ;);
for (
var a = () => {
(b in c);
};
;
);
for (var a = [(b in c)]; ; );
for (var a = { b: (b in c) }; ; );
for (var a = (x = (b in c)) => {}; ; );
for (var a = class extends (b in c) {}; ; );
for (var a = function (x = (b in c)) {}; ; );
for (var a = [(b in c)]; ;);
for (var a = { b: (b in c) }; ;);
for (var a = (x = (b in c)) => {}; ;);
for (var a = class extends (b in c) {}; ;);
for (var a = function (x = (b in c)) {}; ;);
for (var a in b in c);
for (var a in 1 || b in c);
@@ -1040,22 +1044,22 @@ for (var a in (x = b in c) => {});
for (var a in class extends (b in c) {});
for (var a in function (x = b in c) {});
for (; (a = b in c); );
for (; (a = 1 || b in c); );
for (; (a = 1 + (2 || b in c)); );
for (; (a = () => b in c); );
for (; (a = 1 || (() => b in c)); );
for (; (a = b in c););
for (; (a = 1 || b in c););
for (; (a = 1 + (2 || b in c)););
for (; (a = () => b in c););
for (; (a = 1 || (() => b in c)););
for (
;
(a = () => {
b in c;
});
);
for (; (a = [b in c]); );
for (; (a = { b: b in c }); );
for (; (a = (x = b in c) => {}); );
for (; (a = class extends (b in c) {}); );
for (; (a = function (x = b in c) {}); );
for (; (a = [b in c]););
for (; (a = { b: b in c }););
for (; (a = (x = b in c) => {}););
for (; (a = class extends (b in c) {}););
for (; (a = function (x = b in c) {}););
================================================================================
`;
+2
View File
@@ -1,4 +1,6 @@
for (;;) {}
for (initialize;;) {}
for (; condition;) {}
for (var i = 0; i < 10; ++i) {}
for (;;) 0;
@@ -226,7 +226,7 @@ throw (let[0] = 1)
;[(let[0] = 1)]
for ((let)[0] = 1; ; );
for ((let)[0] = 1; ;);
for ((let)[0] in {});
for ((let)[0] of []);
@@ -450,7 +450,7 @@ throw (let[0] = 1);
[(let[0] = 1)];
for ((let)[0] = 1; ; );
for ((let)[0] = 1; ;);
for ((let)[0] in {});
for ((let)[0] of []);