Skip to content

Missing parenthesis around callee for optional chaining call #4914

@mischnic

Description

@mischnic

Describe the bug

...

Input code

let a, b;
(a ?? b)?.();
(a ? b : null)?.();
(a ?? b)();
(a ? b : null)();

Config

{
  "jsc": {
    "parser": {
      "syntax": "ecmascript",
      "jsx": false
    },
    "target": "es2022",
    "loose": false,
    "minify": {
      "compress": false,
      "mangle": false
    }
  },
  "module": {
    "type": "es6"
  },
  "minify": false,
  "isModule": false
}

Playground link

https://play.swc.rs/?version=1.2.197&code=H4sIAAAAAAAAA8tJLVFI1FFIsubSSFSwt1dI0rTX09CE8BSSFKwU8kpzcpDEQCow5YEiAINqR2BJAAAA&config=H4sIAAAAAAAAA0WMOw4DIQxE7%2BKaIqJIsXfIISziXRHxk%2B1IQYi7BzZE241m3rwGL3GwNSjIQjyT1KT4gQ3IRRTHviiYgY1qxyDUDSjyQToRsTdrxxxyFlqAgeiT3%2BuUuRwLk8g1YTrCn%2BzDFfPzPYsGWgudzjv0y7F%2BXh4L%2FD2%2F%2F2Nc37kAAAA%3D

Expected behavior

= Input

Actual behavior

let a, b;
a ?? b?.();       // <-----
a ? b : null?.(); // <-----
(a ?? b)();
(a ? b : null)();

Version

1.2.197

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions