From 264ec70999e69fa46a7ef9d7f62b917ffd60bdb6 Mon Sep 17 00:00:00 2001 From: Lucas Azzola Date: Thu, 28 Sep 2017 17:46:47 +1000 Subject: [PATCH] Don't use parens with optional chaining meber expressions (#2921) --- src/fast-path.js | 8 -------- tests/optional_chaining/__snapshots__/jsfmt.spec.js.snap | 4 +++- tests/optional_chaining/chaining.js | 1 + 3 files changed, 4 insertions(+), 9 deletions(-) diff --git a/src/fast-path.js b/src/fast-path.js index eaeb288ab..9d1d5e9d5 100644 --- a/src/fast-path.js +++ b/src/fast-path.js @@ -221,14 +221,6 @@ FastPath.prototype.needsParens = function(options) { return false; } - case "MemberExpression": { - return ( - parent.type === "MemberExpression" && - parent.object === node && - node.optional - ); - } - case "SpreadElement": case "SpreadProperty": return ( diff --git a/tests/optional_chaining/__snapshots__/jsfmt.spec.js.snap b/tests/optional_chaining/__snapshots__/jsfmt.spec.js.snap index 2c5e7b3fe..7fc924141 100644 --- a/tests/optional_chaining/__snapshots__/jsfmt.spec.js.snap +++ b/tests/optional_chaining/__snapshots__/jsfmt.spec.js.snap @@ -13,6 +13,7 @@ a?.[++x]; a?.b.c(++x).d; a?.b[3].c?.(x).d; (a?.b).c; +a?.b?.c; delete a?.b; a?.b[3].c?.(x).d.e?.f[3].g?.(y).h; @@ -28,7 +29,8 @@ a?.(); a?.[++x]; a?.b.c(++x).d; a?.b[3].c?.(x).d; -(a?.b).c; +a?.b.c; +a?.b?.c; delete a?.b; a?.b[3].c?.(x).d.e?.f[3].g?.(y).h; diff --git a/tests/optional_chaining/chaining.js b/tests/optional_chaining/chaining.js index 328fae7e8..378cfd97a 100644 --- a/tests/optional_chaining/chaining.js +++ b/tests/optional_chaining/chaining.js @@ -10,6 +10,7 @@ a?.[++x]; a?.b.c(++x).d; a?.b[3].c?.(x).d; (a?.b).c; +a?.b?.c; delete a?.b; a?.b[3].c?.(x).d.e?.f[3].g?.(y).h;