From be497c3c8f05a4928a72fbe855ac239b1e8a40fc Mon Sep 17 00:00:00 2001 From: fisker Cheung Date: Mon, 21 Dec 2020 17:10:03 +0800 Subject: [PATCH] Use `printBlock` to print `ClassBody` (#9915) --- src/language-js/print/block.js | 3 ++- src/language-js/print/class.js | 18 ------------------ src/language-js/printer-estree.js | 4 +--- .../__snapshots__/jsfmt.spec.js.snap | 6 ++---- .../__snapshots__/jsfmt.spec.js.snap | 3 +-- 5 files changed, 6 insertions(+), 28 deletions(-) diff --git a/src/language-js/print/block.js b/src/language-js/print/block.js index 4b6e662d3..bb8d67dd9 100644 --- a/src/language-js/print/block.js +++ b/src/language-js/print/block.js @@ -41,7 +41,8 @@ function printBlock(path, options, print) { (parent.type === "CatchClause" && !parentParent.finalizer) || parent.type === "TSModuleDeclaration" || parent.type === "TSDeclareFunction" || - node.type === "StaticBlock" + node.type === "StaticBlock" || + node.type === "ClassBody" ) ) { parts.push(hardline); diff --git a/src/language-js/print/class.js b/src/language-js/print/class.js index d8169cf10..1c66c068f 100644 --- a/src/language-js/print/class.js +++ b/src/language-js/print/class.js @@ -13,7 +13,6 @@ const { const { getTypeParametersGroupId } = require("./type-parameters"); const { printMethod } = require("./function"); const { printOptionalToken, printTypeAnnotation } = require("./misc"); -const { printBody } = require("./statement"); const { printPropertyKey } = require("./property"); const { printAssignmentRight } = require("./assignment"); @@ -177,22 +176,6 @@ function printClassMethod(path, options, print) { return concat(parts); } -function printClassBody(path, options, print) { - const n = path.getValue(); - if (!hasComment(n) && n.body.length === 0) { - return "{}"; - } - - return concat([ - "{", - n.body.length > 0 - ? indent(concat([hardline, printBody(path, options, print)])) - : printDanglingComments(path, options), - hardline, - "}", - ]); -} - function printClassProperty(path, options, print) { const n = path.getValue(); const parts = []; @@ -249,6 +232,5 @@ function printDecorators(path, options, print) { module.exports = { printClass, printClassMethod, - printClassBody, printClassProperty, }; diff --git a/src/language-js/printer-estree.js b/src/language-js/printer-estree.js index fe2a2b77f..f94e1ebf9 100644 --- a/src/language-js/printer-estree.js +++ b/src/language-js/printer-estree.js @@ -80,7 +80,6 @@ const { printObject } = require("./print/object"); const { printClass, printClassMethod, - printClassBody, printClassProperty, } = require("./print/class"); const { printTypeParameters } = require("./print/type-parameters"); @@ -424,6 +423,7 @@ function printPathNoParens(path, options, print, args) { return "import"; case "BlockStatement": case "StaticBlock": + case "ClassBody": return printBlock(path, options, print); case "ThrowStatement": return printThrowStatement(path, options, print); @@ -901,8 +901,6 @@ function printPathNoParens(path, options, print, args) { case "ClassDeclaration": case "ClassExpression": return printClass(path, options, print); - case "ClassBody": - return printClassBody(path, options, print); case "ClassMethod": case "ClassPrivateMethod": case "MethodDefinition": diff --git a/tests/js/class-comment/__snapshots__/jsfmt.spec.js.snap b/tests/js/class-comment/__snapshots__/jsfmt.spec.js.snap index b6ab6beae..2496274a9 100644 --- a/tests/js/class-comment/__snapshots__/jsfmt.spec.js.snap +++ b/tests/js/class-comment/__snapshots__/jsfmt.spec.js.snap @@ -118,8 +118,7 @@ class A1 extends B { } class A2 /* a */ extends B {} -class A3 extends B /* a */ { -} +class A3 extends B /* a */ {} class A4 /* a */ extends B {} (class A5 // comment 1 @@ -133,8 +132,7 @@ class A4 /* a */ extends B {} }); (class A7 /* a */ extends B {}); -(class A8 extends B /* a */ { -}); +(class A8 extends B /* a */ {}); (class A9 /* a */ extends B {}); class a extends b { diff --git a/tests/misc/flow-babel-only/__snapshots__/jsfmt.spec.js.snap b/tests/misc/flow-babel-only/__snapshots__/jsfmt.spec.js.snap index 1f242e9e9..ac765ce2e 100644 --- a/tests/misc/flow-babel-only/__snapshots__/jsfmt.spec.js.snap +++ b/tests/misc/flow-babel-only/__snapshots__/jsfmt.spec.js.snap @@ -28,8 +28,7 @@ import React from "react"; /*:: type State = { baz: number }; */ -class Component extends React.Component /*:: */ { -} +class Component extends React.Component /*:: */ {} ================================================================================ `;