diff --git a/src/fast-path.js b/src/fast-path.js index 74e994d07..990d7ed0c 100644 --- a/src/fast-path.js +++ b/src/fast-path.js @@ -405,6 +405,7 @@ FPp.needsParens = function(assumeExpressionContext) { case "ClassExpression": switch (parent.type) { + case "BinaryExpression": case "ExportDefaultDeclaration": case "ExpressionStatement": return true; diff --git a/tests/classes/__snapshots__/jsfmt.spec.js.snap b/tests/classes/__snapshots__/jsfmt.spec.js.snap index 4644dbbd2..d2de13bf1 100644 --- a/tests/classes/__snapshots__/jsfmt.spec.js.snap +++ b/tests/classes/__snapshots__/jsfmt.spec.js.snap @@ -74,6 +74,19 @@ new E().x; " `; +exports[`test binary.js 1`] = ` +"(class {}) + 1; +(class a {}) + 1; +(class extends b {}) + 1; +(class a extends b {}) + 1; +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +(class {}) + 1; +(class a {}) + 1; +(class extends b {}) + 1; +(class a extends b {}) + 1; +" +`; + exports[`test class_shapes.js 1`] = ` "/* @flow */ diff --git a/tests/classes/binary.js b/tests/classes/binary.js new file mode 100644 index 000000000..f60f9c8f7 --- /dev/null +++ b/tests/classes/binary.js @@ -0,0 +1,4 @@ +(class {}) + 1; +(class a {}) + 1; +(class extends b {}) + 1; +(class a extends b {}) + 1;