Add parenthesis when class expressions are left of a ternary (#428)

Fixes #426
master
Christopher Chedeau 2017-01-22 20:32:17 -08:00 committed by GitHub
parent 4369e66017
commit d7a44bae10
3 changed files with 12 additions and 0 deletions

View File

@ -452,6 +452,10 @@ FPp.needsParens = function(assumeExpressionContext) {
}
case "MemberExpression":
return name === "object" && parent.object === node;
case "ConditionalExpression":
if (parent.test === node) {
return true;
}
}
return false;

View File

@ -305,3 +305,10 @@ declare var o: { p: number };
(o: Class<C>); // error, object type incompatible with class type
"
`;
exports[`test ternary.js 1`] = `
"if (1) (class {}) ? 1 : 2;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
if (1) (class {}) ? 1 : 2;
"
`;

1
tests/classes/ternary.js Normal file
View File

@ -0,0 +1 @@
if (1) (class {}) ? 1 : 2;