Example #1
0
            public void Reset()
            {
                int count = _count;

                if (count >= 0)
                {
                    IfStatementSyntax ifStatement;
                    if (_ifOrElse.IsElse)
                    {
                        ifStatement = (IfStatementSyntax)_ifOrElse.Parent;
                    }
                    else
                    {
                        ifStatement = _ifOrElse.AsIf();
                    }

                    count--;

                    while (count >= 0)
                    {
                        ifStatement = (IfStatementSyntax)ifStatement.Parent.Parent;
                        count--;
                    }

                    _ifOrElse = ifStatement;
                }
            }
Example #2
0
            public bool MoveNext()
            {
                if (_count == -1)
                {
                    if (_ifOrElse != default(IfStatementOrElseClause))
                    {
                        _count++;
                        return(true);
                    }
                }
                else if (_ifOrElse.IsIf)
                {
                    ElseClauseSyntax elseClause = _ifOrElse.AsIf().Else;

                    if (elseClause != null)
                    {
                        if (elseClause.Statement is IfStatementSyntax nextIf)
                        {
                            _ifOrElse = nextIf;
                        }
                        else
                        {
                            _ifOrElse = elseClause;
                        }

                        _count++;
                        return(true);
                    }
                }

                return(false);
            }
Example #3
0
        private static bool IsValueAssignedInLastStatement(IfStatementOrElseClause ifOrElse, ISymbol symbol, SemanticModel semanticModel, CancellationToken cancellationToken)
        {
            StatementSyntax statement = GetLastStatementOrDefault(ifOrElse.Statement);

            ExpressionSyntax left = GetLastAssignmentOrDefault(statement)?.Left;

            return(left != null &&
                   symbol.Equals(semanticModel.GetSymbol(left, cancellationToken)));
        }
Example #4
0
 internal Enumerator(IfStatementSyntax ifStatement)
 {
     _ifOrElse = ifStatement;
     _count    = -1;
 }
Example #5
0
        private static bool IsSymbolAssignedInLastStatement(IfStatementOrElseClause ifOrElse, ISymbol symbol, SemanticModel semanticModel, CancellationToken cancellationToken)
        {
            StatementSyntax statement = GetLastStatementOrDefault(ifOrElse.Statement);

            return(IsSymbolAssignedInStatement(symbol, statement, semanticModel, cancellationToken));
        }