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;
                }
            }
Exemple #2
0
 public virtual void VisitDefaultObjectExpression(DefaultObjectExpression node)
 {
 }
Exemple #3
0
 public virtual ICodeNode VisitDefaultObjectExpression(DefaultObjectExpression node)
 {
     return(node);
 }