private static ExpressionSyntax GetNewNode(PrefixUnaryExpressionSyntax logicalNot) { SyntaxToken operatorToken = logicalNot.OperatorToken; ExpressionSyntax operand = logicalNot.Operand; switch (operand.Kind()) { case SyntaxKind.TrueLiteralExpression: case SyntaxKind.FalseLiteralExpression: { SyntaxTriviaList leadingTrivia = operatorToken.LeadingTrivia .AddRange(operatorToken.TrailingTrivia) .AddRange(operand.GetLeadingTrivia()); LiteralExpressionSyntax expression = (operand.IsKind(SyntaxKind.TrueLiteralExpression)) ? FalseLiteralExpression() : TrueLiteralExpression(); return(expression .WithLeadingTrivia(leadingTrivia) .WithTrailingTrivia(logicalNot.GetTrailingTrivia())); } case SyntaxKind.LogicalNotExpression: { var logicalNot2 = (PrefixUnaryExpressionSyntax)operand; SyntaxToken operatorToken2 = logicalNot2.OperatorToken; ExpressionSyntax operand2 = logicalNot2.Operand; SyntaxTriviaList leadingTrivia = operatorToken.LeadingTrivia .AddRange(operatorToken.TrailingTrivia) .AddRange(operatorToken2.LeadingTrivia) .AddRange(operatorToken2.TrailingTrivia) .AddRange(operand2.GetLeadingTrivia()); return(operand2 .WithLeadingTrivia(leadingTrivia) .WithTrailingTrivia(logicalNot.GetTrailingTrivia())); } } return(null); }