private async Task <Document> InvertForAsync(Document document, ForStatementSyntax @for, CancellationToken c) { if (InvertForAnalyzer.IsPostIncrement(@for.Incrementors[0])) { return(await ConvertToDecrementingCounterForLoop(document, @for)); } return(await ConvertToIncrementingCounterForLoop(document, @for)); }
static SeparatedSyntaxList <ExpressionSyntax> ToggleIncrement(ForStatementSyntax @for) { var incrementor = (PostfixUnaryExpressionSyntax)@for.Incrementors[0]; var newIncrementor = SyntaxFactory.PostfixUnaryExpression( InvertForAnalyzer.IsPostIncrement(incrementor) ? SyntaxKind.PostDecrementExpression : SyntaxKind.PostIncrementExpression, incrementor.Operand); return(new SeparatedSyntaxList <ExpressionSyntax>().Add(newIncrementor)); }