From a6b6ef8ee3d9f4877e1653950e05080b0794d79e Mon Sep 17 00:00:00 2001 From: Dunqing <29533304+Dunqing@users.noreply.github.com> Date: Thu, 30 Oct 2025 00:36:48 +0000 Subject: [PATCH] fix(formatter): correct calculating layout for `TSNonNullExpression` in `StaticMemberExpression` (#15065) --- .../oxc_formatter/src/write/member_expression.rs | 1 + .../ts/static-members/non-null-expression.ts | 3 +++ .../ts/static-members/non-null-expression.ts.snap | 14 ++++++++++++++ 3 files changed, 18 insertions(+) create mode 100644 crates/oxc_formatter/tests/fixtures/ts/static-members/non-null-expression.ts create mode 100644 crates/oxc_formatter/tests/fixtures/ts/static-members/non-null-expression.ts.snap diff --git a/crates/oxc_formatter/src/write/member_expression.rs b/crates/oxc_formatter/src/write/member_expression.rs index b1f87cae15f2e..ff0b3b8617b6f 100644 --- a/crates/oxc_formatter/src/write/member_expression.rs +++ b/crates/oxc_formatter/src/write/member_expression.rs @@ -144,6 +144,7 @@ fn layout<'a>( AstNodes::StaticMemberExpression(_) | AstNodes::ComputedMemberExpression(_) | AstNodes::ChainExpression(_) + | AstNodes::TSNonNullExpression(_) ) { first_non_static_member_ancestor = first_non_static_member_ancestor.parent(); } diff --git a/crates/oxc_formatter/tests/fixtures/ts/static-members/non-null-expression.ts b/crates/oxc_formatter/tests/fixtures/ts/static-members/non-null-expression.ts new file mode 100644 index 0000000000000..53c217c23acd1 --- /dev/null +++ b/crates/oxc_formatter/tests/fixtures/ts/static-members/non-null-expression.ts @@ -0,0 +1,3 @@ +(( + compoundConfigurationsSchema.items +)).oneOf![1].properties!.folder.enum = folderNames; diff --git a/crates/oxc_formatter/tests/fixtures/ts/static-members/non-null-expression.ts.snap b/crates/oxc_formatter/tests/fixtures/ts/static-members/non-null-expression.ts.snap new file mode 100644 index 0000000000000..7d8941f977e57 --- /dev/null +++ b/crates/oxc_formatter/tests/fixtures/ts/static-members/non-null-expression.ts.snap @@ -0,0 +1,14 @@ +--- +source: crates/oxc_formatter/tests/fixtures/mod.rs +--- +==================== Input ==================== +(( + compoundConfigurationsSchema.items +)).oneOf![1].properties!.folder.enum = folderNames; + +==================== Output ==================== +(( + compoundConfigurationsSchema.items +)).oneOf![1].properties!.folder.enum = folderNames; + +===================== End =====================