@@ -3234,10 +3234,10 @@ internal override bool IsRegularOrDocComment(SyntaxTrivia trivia)
32343234 #region Statements and Expressions
32353235
32363236 public override SyntaxNode AddEventHandler ( SyntaxNode @event , SyntaxNode handler )
3237- => SyntaxFactory . AssignmentExpression ( SyntaxKind . AddAssignmentExpression , ( ExpressionSyntax ) @event , ( ExpressionSyntax ) Parenthesize ( handler ) ) ;
3237+ => SyntaxFactory . AssignmentExpression ( SyntaxKind . AddAssignmentExpression , ( ExpressionSyntax ) @event , ( ExpressionSyntax ) ParenthesizeNonSimple ( handler ) ) ;
32383238
32393239 public override SyntaxNode RemoveEventHandler ( SyntaxNode @event , SyntaxNode handler )
3240- => SyntaxFactory . AssignmentExpression ( SyntaxKind . SubtractAssignmentExpression , ( ExpressionSyntax ) @event , ( ExpressionSyntax ) Parenthesize ( handler ) ) ;
3240+ => SyntaxFactory . AssignmentExpression ( SyntaxKind . SubtractAssignmentExpression , ( ExpressionSyntax ) @event , ( ExpressionSyntax ) ParenthesizeNonSimple ( handler ) ) ;
32413241
32423242 public override SyntaxNode AwaitExpression ( SyntaxNode expression )
32433243 => SyntaxFactory . AwaitExpression ( ( ExpressionSyntax ) expression ) ;
@@ -3363,20 +3363,20 @@ public override SyntaxNode ElementAccessExpression(SyntaxNode expression, IEnume
33633363 internal override SyntaxToken NumericLiteralToken ( string text , ulong value )
33643364 => SyntaxFactory . Literal ( text , value ) ;
33653365
3366- private static SyntaxNode Parenthesize ( SyntaxNode expression , bool includeElasticTrivia = true , bool addSimplifierAnnotation = true , bool parenthesizeIdentifiers = true )
3367- => CSharpSyntaxGeneratorInternal . Parenthesize ( expression , includeElasticTrivia , addSimplifierAnnotation , parenthesizeIdentifiers ) ;
3366+ private static SyntaxNode ParenthesizeNonSimple ( SyntaxNode expression )
3367+ => expression is IdentifierNameSyntax ? expression : CSharpSyntaxGeneratorInternal . Parenthesize ( expression ) ;
33683368
33693369 public override SyntaxNode IsTypeExpression ( SyntaxNode expression , SyntaxNode type )
3370- => SyntaxFactory . BinaryExpression ( SyntaxKind . IsExpression , ( ExpressionSyntax ) Parenthesize ( expression ) , ( TypeSyntax ) type ) ;
3370+ => SyntaxFactory . BinaryExpression ( SyntaxKind . IsExpression , ( ExpressionSyntax ) ParenthesizeNonSimple ( expression ) , ( TypeSyntax ) type ) ;
33713371
33723372 public override SyntaxNode TypeOfExpression ( SyntaxNode type )
33733373 => SyntaxFactory . TypeOfExpression ( ( TypeSyntax ) type ) ;
33743374
33753375 public override SyntaxNode TryCastExpression ( SyntaxNode expression , SyntaxNode type )
3376- => SyntaxFactory . BinaryExpression ( SyntaxKind . AsExpression , ( ExpressionSyntax ) Parenthesize ( expression ) , ( TypeSyntax ) type ) ;
3376+ => SyntaxFactory . BinaryExpression ( SyntaxKind . AsExpression , ( ExpressionSyntax ) ParenthesizeNonSimple ( expression ) , ( TypeSyntax ) type ) ;
33773377
33783378 public override SyntaxNode AssignmentStatement ( SyntaxNode left , SyntaxNode right )
3379- => SyntaxFactory . AssignmentExpression ( SyntaxKind . SimpleAssignmentExpression , ( ExpressionSyntax ) left , ( ExpressionSyntax ) Parenthesize ( right ) ) ;
3379+ => SyntaxFactory . AssignmentExpression ( SyntaxKind . SimpleAssignmentExpression , ( ExpressionSyntax ) left , ( ExpressionSyntax ) ParenthesizeNonSimple ( right ) ) ;
33803380
33813381 private static SyntaxNode CreateBinaryExpression ( SyntaxKind syntaxKind , SyntaxNode left , SyntaxNode right )
33823382 => CSharpSyntaxGeneratorInternal . CreateBinaryExpression ( syntaxKind , left , right ) ;
@@ -3406,7 +3406,7 @@ public override SyntaxNode GreaterThanOrEqualExpression(SyntaxNode left, SyntaxN
34063406 => CreateBinaryExpression ( SyntaxKind . GreaterThanOrEqualExpression , left , right ) ;
34073407
34083408 public override SyntaxNode NegateExpression ( SyntaxNode expression )
3409- => SyntaxFactory . PrefixUnaryExpression ( SyntaxKind . UnaryMinusExpression , ( ExpressionSyntax ) Parenthesize ( expression ) ) ;
3409+ => SyntaxFactory . PrefixUnaryExpression ( SyntaxKind . UnaryMinusExpression , ( ExpressionSyntax ) ParenthesizeNonSimple ( expression ) ) ;
34103410
34113411 public override SyntaxNode AddExpression ( SyntaxNode left , SyntaxNode right )
34123412 => CreateBinaryExpression ( SyntaxKind . AddExpression , left , right ) ;
@@ -3427,7 +3427,7 @@ public override SyntaxNode BitwiseAndExpression(SyntaxNode left, SyntaxNode righ
34273427 => CreateBinaryExpression ( SyntaxKind . BitwiseAndExpression , left , right ) ;
34283428
34293429 public override SyntaxNode BitwiseNotExpression ( SyntaxNode operand )
3430- => SyntaxFactory . PrefixUnaryExpression ( SyntaxKind . BitwiseNotExpression , ( ExpressionSyntax ) Parenthesize ( operand ) ) ;
3430+ => SyntaxFactory . PrefixUnaryExpression ( SyntaxKind . BitwiseNotExpression , ( ExpressionSyntax ) ParenthesizeNonSimple ( operand ) ) ;
34313431
34323432 public override SyntaxNode LogicalAndExpression ( SyntaxNode left , SyntaxNode right )
34333433 => CreateBinaryExpression ( SyntaxKind . LogicalAndExpression , left , right ) ;
@@ -3436,10 +3436,10 @@ public override SyntaxNode LogicalOrExpression(SyntaxNode left, SyntaxNode right
34363436 => CreateBinaryExpression ( SyntaxKind . LogicalOrExpression , left , right ) ;
34373437
34383438 public override SyntaxNode LogicalNotExpression ( SyntaxNode expression )
3439- => SyntaxFactory . PrefixUnaryExpression ( SyntaxKind . LogicalNotExpression , ( ExpressionSyntax ) Parenthesize ( expression , parenthesizeIdentifiers : false ) ) ;
3439+ => SyntaxFactory . PrefixUnaryExpression ( SyntaxKind . LogicalNotExpression , ( ExpressionSyntax ) ParenthesizeNonSimple ( expression ) ) ;
34403440
34413441 public override SyntaxNode ConditionalExpression ( SyntaxNode condition , SyntaxNode whenTrue , SyntaxNode whenFalse )
3442- => SyntaxFactory . ConditionalExpression ( ( ExpressionSyntax ) Parenthesize ( condition ) , ( ExpressionSyntax ) Parenthesize ( whenTrue ) , ( ExpressionSyntax ) Parenthesize ( whenFalse ) ) ;
3442+ => SyntaxFactory . ConditionalExpression ( ( ExpressionSyntax ) ParenthesizeNonSimple ( condition ) , ( ExpressionSyntax ) ParenthesizeNonSimple ( whenTrue ) , ( ExpressionSyntax ) ParenthesizeNonSimple ( whenFalse ) ) ;
34433443
34443444 public override SyntaxNode CoalesceExpression ( SyntaxNode left , SyntaxNode right )
34453445 => CreateBinaryExpression ( SyntaxKind . CoalesceExpression , left , right ) ;
0 commit comments