print parenthesis around forced calls of optional chains (#11190)

This commit is contained in:
Sagiv ben giat 2020-02-29 01:43:43 +02:00 committed by GitHub
parent 9c261aeafe
commit a39beda58b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 27 additions and 1 deletions

View File

@ -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 {

View File

@ -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");

View File

@ -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");