private void RemoveLastForeachStatementIfNeeded() { if (@foreach.Body.Statements.Count == 0) { return; } ExpressionStatement expressionStatement = @foreach.Body.Statements.Last() as ExpressionStatement; if (expressionStatement == null) { return; } BinaryExpression binaryExpression = expressionStatement.Expression as BinaryExpression; if (binaryExpression == null) { return; } if (!binaryExpression.IsAssignmentExpression) { return; } VariableReferenceExpression variableRef = binaryExpression.Left as VariableReferenceExpression; if (variableRef == null || variableRef.Variable != @foreach.Variable.Variable) { return; } LiteralExpression literalExpression = binaryExpression.Right as LiteralExpression; if (literalExpression != null && literalExpression.Value == null) { RemoveStatement([email protected], expressionStatement); return; } DefaultObjectExpression defaultObjectExpression = binaryExpression.Right as DefaultObjectExpression; if (defaultObjectExpression != null) { RemoveStatement([email protected], expressionStatement); return; } }
public virtual void VisitDefaultObjectExpression(DefaultObjectExpression node) { }
public virtual ICodeNode VisitDefaultObjectExpression(DefaultObjectExpression node) { return(node); }