From 5cd367e50209244b4e283163f9ca7691866b3598 Mon Sep 17 00:00:00 2001 From: Ika Date: Sat, 15 Sep 2018 21:45:43 +0800 Subject: [PATCH] fix(typescript): no invalid parens for destructuring with default value (#5096) --- src/language-js/needs-parens.js | 2 ++ tests/assignment/__snapshots__/jsfmt.spec.js.snap | 4 ++++ tests/assignment/destructuring.js | 2 ++ 3 files changed, 8 insertions(+) diff --git a/src/language-js/needs-parens.js b/src/language-js/needs-parens.js index f1b862112..1b6928d9f 100644 --- a/src/language-js/needs-parens.js +++ b/src/language-js/needs-parens.js @@ -487,6 +487,8 @@ function needsParens(path, options) { (grandParent.init === parent || grandParent.update === parent) ) { return false; + } else if (parent.type === "Property" && parent.value === node) { + return false; } return true; } diff --git a/tests/assignment/__snapshots__/jsfmt.spec.js.snap b/tests/assignment/__snapshots__/jsfmt.spec.js.snap index 2fc5bda58..c09976a42 100644 --- a/tests/assignment/__snapshots__/jsfmt.spec.js.snap +++ b/tests/assignment/__snapshots__/jsfmt.spec.js.snap @@ -31,6 +31,8 @@ let { const { accessibilityModule: FooAccessibilityModule, accessibilityModule: FooAccessibilityModule, accessibilityModule: FooAccessibilityModule, accessibilityModule: FooAccessibilityModule, } = foo || {}; + +({ prop: toAssign = "default" } = { prop: "propval" }); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ let { bottom: offsetBottom, @@ -46,6 +48,8 @@ const { accessibilityModule: FooAccessibilityModule } = foo || {}; +({ prop: toAssign = "default" } = { prop: "propval" }); + `; exports[`sequence.js - flow-verify 1`] = ` diff --git a/tests/assignment/destructuring.js b/tests/assignment/destructuring.js index c53876006..b3168f0ac 100644 --- a/tests/assignment/destructuring.js +++ b/tests/assignment/destructuring.js @@ -7,3 +7,5 @@ let { const { accessibilityModule: FooAccessibilityModule, accessibilityModule: FooAccessibilityModule, accessibilityModule: FooAccessibilityModule, accessibilityModule: FooAccessibilityModule, } = foo || {}; + +({ prop: toAssign = "default" } = { prop: "propval" });