From 811b219b27459589a11f17e8a83925fc0f2e5a45 Mon Sep 17 00:00:00 2001 From: Boshen Date: Fri, 1 Dec 2023 21:36:01 +0800 Subject: [PATCH] feat(prettier): add parens to `new class {}` (#1604) --- crates/oxc_prettier/src/needs_parens.rs | 10 +++++++++- tasks/prettier_conformance/prettier.snap.md | 3 +-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/crates/oxc_prettier/src/needs_parens.rs b/crates/oxc_prettier/src/needs_parens.rs index 6aaf80fb6..7fbf46aed 100644 --- a/crates/oxc_prettier/src/needs_parens.rs +++ b/crates/oxc_prettier/src/needs_parens.rs @@ -70,7 +70,15 @@ impl<'a> Prettier<'a> { _ => false, } } - AstKind::Class(c) if c.is_expression() => self.check_object_function_class(c.span), + AstKind::Class(c) if c.is_expression() => { + if self.check_object_function_class(c.span) { + return true; + } + if let AstKind::NewExpression(new_expr) = parent_kind { + return new_expr.callee.span() == c.span; + } + false + } AstKind::AssignmentExpression(assign_expr) => match parent_kind { AstKind::ArrowExpression(arrow_expr) if arrow_expr diff --git a/tasks/prettier_conformance/prettier.snap.md b/tasks/prettier_conformance/prettier.snap.md index f4add2de7..2f44845eb 100644 --- a/tasks/prettier_conformance/prettier.snap.md +++ b/tasks/prettier_conformance/prettier.snap.md @@ -1,4 +1,4 @@ -Compatibility: 215/561 (38.32%) +Compatibility: 216/561 (38.50%) # Failed @@ -114,7 +114,6 @@ Compatibility: 215/561 (38.32%) * classes/assignment.js * classes/empty.js * classes/method.js -* classes/new.js * classes/property.js ### classes-private-fields