Skip to content

Commit

Permalink
print parenthesis around forced calls of optional chains (#11190)
Browse files Browse the repository at this point in the history
  • Loading branch information
sag1v committed Feb 28, 2020
1 parent 9c261ae commit a39beda
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 1 deletion.
12 changes: 11 additions & 1 deletion packages/babel-generator/src/node/parentheses.js
Expand Up @@ -255,7 +255,17 @@ export function OptionalMemberExpression(
node: Object,
parent: Object,
): boolean {
return t.isCallExpression(parent) || t.isMemberExpression(parent);
return (
t.isCallExpression(parent, { callee: node }) ||
t.isMemberExpression(parent, { object: node })
);
}

export function OptionalCallExpression(node: Object, parent: Object): boolean {
return (
t.isCallExpression(parent, { callee: node }) ||
t.isMemberExpression(parent, { object: node })
);
}

export function AssignmentExpression(node: Object): boolean {
Expand Down
Expand Up @@ -5,6 +5,14 @@ foo?.(bar());
foo?.(bar("test"));
foo(bar?.());
foo(bar?.("test"));
(foo?.())();
(foo?.()).baz;
foo(bar?.baz);
foo(bar?.baz());
foo(bar?.("test"));
foo[bar?.baz];
foo[bar?.baz()];
foo[bar?.("test")];
a.foo?.();
a.foo?.("foo");
a.foo?.("foo", "bar");
Expand Down
Expand Up @@ -5,6 +5,14 @@ foo?.(bar());
foo?.(bar("test"));
foo(bar?.());
foo(bar?.("test"));
(foo?.())();
(foo?.()).baz;
foo(bar?.baz);
foo(bar?.baz());
foo(bar?.("test"));
foo[bar?.baz];
foo[bar?.baz()];
foo[bar?.("test")];
a.foo?.();
a.foo?.("foo");
a.foo?.("foo", "bar");
Expand Down

0 comments on commit a39beda

Please sign in to comment.