// The following parentheses should be kept
new (f())();
new (g?.())();
new (f.g?.h)();
new (f?.g.h)();
new (f().g)();
new (f?.().g)();
new (f()?.g)();
new (f?.()?.g)();
new (f()`g`)();
new (import("foo"))();
new (import("foo").bar)();
new (import("foo")`bar`)();
new (super())();
new (super().foo)();
new (super()`foo`)();

// The following outer parentheses can be removed
new f[g()]();
new ((f?.g).h)();
new new f()();