@@ -1188,7 +1188,7 @@ namespace ts {
1188
1188
// @api
1189
1189
function createDecorator ( expression : Expression ) {
1190
1190
const node = createBaseNode < Decorator > ( SyntaxKind . Decorator ) ;
1191
- node . expression = parenthesizerRules ( ) . parenthesizeLeftSideOfAccess ( expression ) ;
1191
+ node . expression = parenthesizerRules ( ) . parenthesizeLeftSideOfAccess ( expression , /*optionalChain*/ false ) ;
1192
1192
node . transformFlags |=
1193
1193
propagateChildFlags ( node . expression ) |
1194
1194
TransformFlags . ContainsTypeScript |
@@ -2325,7 +2325,7 @@ namespace ts {
2325
2325
// @api
2326
2326
function createPropertyAccessExpression ( expression : Expression , name : string | Identifier | PrivateIdentifier ) {
2327
2327
const node = createBaseExpression < PropertyAccessExpression > ( SyntaxKind . PropertyAccessExpression ) ;
2328
- node . expression = parenthesizerRules ( ) . parenthesizeLeftSideOfAccess ( expression ) ;
2328
+ node . expression = parenthesizerRules ( ) . parenthesizeLeftSideOfAccess ( expression , /*optionalChain*/ false ) ;
2329
2329
node . name = asName ( name ) ;
2330
2330
node . transformFlags =
2331
2331
propagateChildFlags ( node . expression ) |
@@ -2357,7 +2357,7 @@ namespace ts {
2357
2357
function createPropertyAccessChain ( expression : Expression , questionDotToken : QuestionDotToken | undefined , name : string | Identifier | PrivateIdentifier ) {
2358
2358
const node = createBaseExpression < PropertyAccessChain > ( SyntaxKind . PropertyAccessExpression ) ;
2359
2359
node . flags |= NodeFlags . OptionalChain ;
2360
- node . expression = parenthesizerRules ( ) . parenthesizeLeftSideOfAccess ( expression ) ;
2360
+ node . expression = parenthesizerRules ( ) . parenthesizeLeftSideOfAccess ( expression , /*optionalChain*/ true ) ;
2361
2361
node . questionDotToken = questionDotToken ;
2362
2362
node . name = asName ( name ) ;
2363
2363
node . transformFlags |=
@@ -2385,7 +2385,7 @@ namespace ts {
2385
2385
// @api
2386
2386
function createElementAccessExpression ( expression : Expression , index : number | Expression ) {
2387
2387
const node = createBaseExpression < ElementAccessExpression > ( SyntaxKind . ElementAccessExpression ) ;
2388
- node . expression = parenthesizerRules ( ) . parenthesizeLeftSideOfAccess ( expression ) ;
2388
+ node . expression = parenthesizerRules ( ) . parenthesizeLeftSideOfAccess ( expression , /*optionalChain*/ false ) ;
2389
2389
node . argumentExpression = asExpression ( index ) ;
2390
2390
node . transformFlags |=
2391
2391
propagateChildFlags ( node . expression ) |
@@ -2415,7 +2415,7 @@ namespace ts {
2415
2415
function createElementAccessChain ( expression : Expression , questionDotToken : QuestionDotToken | undefined , index : number | Expression ) {
2416
2416
const node = createBaseExpression < ElementAccessChain > ( SyntaxKind . ElementAccessExpression ) ;
2417
2417
node . flags |= NodeFlags . OptionalChain ;
2418
- node . expression = parenthesizerRules ( ) . parenthesizeLeftSideOfAccess ( expression ) ;
2418
+ node . expression = parenthesizerRules ( ) . parenthesizeLeftSideOfAccess ( expression , /*optionalChain*/ true ) ;
2419
2419
node . questionDotToken = questionDotToken ;
2420
2420
node . argumentExpression = asExpression ( index ) ;
2421
2421
node . transformFlags |=
@@ -2441,7 +2441,7 @@ namespace ts {
2441
2441
// @api
2442
2442
function createCallExpression ( expression : Expression , typeArguments : readonly TypeNode [ ] | undefined , argumentsArray : readonly Expression [ ] | undefined ) {
2443
2443
const node = createBaseExpression < CallExpression > ( SyntaxKind . CallExpression ) ;
2444
- node . expression = parenthesizerRules ( ) . parenthesizeLeftSideOfAccess ( expression ) ;
2444
+ node . expression = parenthesizerRules ( ) . parenthesizeLeftSideOfAccess ( expression , /*optionalChain*/ false ) ;
2445
2445
node . typeArguments = asNodeArray ( typeArguments ) ;
2446
2446
node . arguments = parenthesizerRules ( ) . parenthesizeExpressionsOfCommaDelimitedList ( createNodeArray ( argumentsArray ) ) ;
2447
2447
node . transformFlags |=
@@ -2476,7 +2476,7 @@ namespace ts {
2476
2476
function createCallChain ( expression : Expression , questionDotToken : QuestionDotToken | undefined , typeArguments : readonly TypeNode [ ] | undefined , argumentsArray : readonly Expression [ ] | undefined ) {
2477
2477
const node = createBaseExpression < CallChain > ( SyntaxKind . CallExpression ) ;
2478
2478
node . flags |= NodeFlags . OptionalChain ;
2479
- node . expression = parenthesizerRules ( ) . parenthesizeLeftSideOfAccess ( expression ) ;
2479
+ node . expression = parenthesizerRules ( ) . parenthesizeLeftSideOfAccess ( expression , /*optionalChain*/ true ) ;
2480
2480
node . questionDotToken = questionDotToken ;
2481
2481
node . typeArguments = asNodeArray ( typeArguments ) ;
2482
2482
node . arguments = parenthesizerRules ( ) . parenthesizeExpressionsOfCommaDelimitedList ( createNodeArray ( argumentsArray ) ) ;
@@ -2535,7 +2535,7 @@ namespace ts {
2535
2535
// @api
2536
2536
function createTaggedTemplateExpression ( tag : Expression , typeArguments : readonly TypeNode [ ] | undefined , template : TemplateLiteral ) {
2537
2537
const node = createBaseExpression < TaggedTemplateExpression > ( SyntaxKind . TaggedTemplateExpression ) ;
2538
- node . tag = parenthesizerRules ( ) . parenthesizeLeftSideOfAccess ( tag ) ;
2538
+ node . tag = parenthesizerRules ( ) . parenthesizeLeftSideOfAccess ( tag , /*optionalChain*/ false ) ;
2539
2539
node . typeArguments = asNodeArray ( typeArguments ) ;
2540
2540
node . template = template ;
2541
2541
node . transformFlags |=
@@ -3085,7 +3085,7 @@ namespace ts {
3085
3085
// @api
3086
3086
function createExpressionWithTypeArguments ( expression : Expression , typeArguments : readonly TypeNode [ ] | undefined ) {
3087
3087
const node = createBaseNode < ExpressionWithTypeArguments > ( SyntaxKind . ExpressionWithTypeArguments ) ;
3088
- node . expression = parenthesizerRules ( ) . parenthesizeLeftSideOfAccess ( expression ) ;
3088
+ node . expression = parenthesizerRules ( ) . parenthesizeLeftSideOfAccess ( expression , /*optionalChain*/ false ) ;
3089
3089
node . typeArguments = typeArguments && parenthesizerRules ( ) . parenthesizeTypeArguments ( typeArguments ) ;
3090
3090
node . transformFlags |=
3091
3091
propagateChildFlags ( node . expression ) |
@@ -3125,7 +3125,7 @@ namespace ts {
3125
3125
// @api
3126
3126
function createNonNullExpression ( expression : Expression ) {
3127
3127
const node = createBaseExpression < NonNullExpression > ( SyntaxKind . NonNullExpression ) ;
3128
- node . expression = parenthesizerRules ( ) . parenthesizeLeftSideOfAccess ( expression ) ;
3128
+ node . expression = parenthesizerRules ( ) . parenthesizeLeftSideOfAccess ( expression , /*optionalChain*/ false ) ;
3129
3129
node . transformFlags |=
3130
3130
propagateChildFlags ( node . expression ) |
3131
3131
TransformFlags . ContainsTypeScript ;
@@ -3146,7 +3146,7 @@ namespace ts {
3146
3146
function createNonNullChain ( expression : Expression ) {
3147
3147
const node = createBaseExpression < NonNullChain > ( SyntaxKind . NonNullExpression ) ;
3148
3148
node . flags |= NodeFlags . OptionalChain ;
3149
- node . expression = parenthesizerRules ( ) . parenthesizeLeftSideOfAccess ( expression ) ;
3149
+ node . expression = parenthesizerRules ( ) . parenthesizeLeftSideOfAccess ( expression , /*optionalChain*/ true ) ;
3150
3150
node . transformFlags |=
3151
3151
propagateChildFlags ( node . expression ) |
3152
3152
TransformFlags . ContainsTypeScript ;
@@ -5824,7 +5824,7 @@ namespace ts {
5824
5824
}
5825
5825
else if ( getEmitFlags ( callee ) & EmitFlags . HelperName ) {
5826
5826
thisArg = createVoidZero ( ) ;
5827
- target = parenthesizerRules ( ) . parenthesizeLeftSideOfAccess ( callee ) ;
5827
+ target = parenthesizerRules ( ) . parenthesizeLeftSideOfAccess ( callee , /*optionalChain*/ false ) ;
5828
5828
}
5829
5829
else if ( isPropertyAccessExpression ( callee ) ) {
5830
5830
if ( shouldBeCapturedInTempVariable ( callee . expression , cacheIdentifiers ) ) {
@@ -5871,7 +5871,7 @@ namespace ts {
5871
5871
else {
5872
5872
// for `a()` target is `a` and thisArg is `void 0`
5873
5873
thisArg = createVoidZero ( ) ;
5874
- target = parenthesizerRules ( ) . parenthesizeLeftSideOfAccess ( expression ) ;
5874
+ target = parenthesizerRules ( ) . parenthesizeLeftSideOfAccess ( expression , /*optionalChain*/ false ) ;
5875
5875
}
5876
5876
5877
5877
return { target, thisArg } ;
0 commit comments