Boo.Lang.Compiler.Steps.ProcessMethodBodies.GetCorrectIterator C# (CSharp) Метод

GetCorrectIterator() защищенный Метод

protected GetCorrectIterator ( Expression iterator ) : Expression
iterator Boo.Lang.Compiler.Ast.Expression
Результат Boo.Lang.Compiler.Ast.Expression
        protected Expression GetCorrectIterator(Expression iterator)
        {
            IType type = GetExpressionType(iterator);
            if (IsError(type))
                return iterator;

            if (!IsAssignableFrom(TypeSystemServices.IEnumerableType, type) &&
                !IsAssignableFrom(TypeSystemServices.IEnumeratorType, type))
            {
                if (IsRuntimeIterator(type))
                    return IsTextReader(type)
                           	? CodeBuilder.CreateMethodInvocation(MethodCache.TextReaderEnumerator_lines, iterator)
                           	: CodeBuilder.CreateMethodInvocation(MethodCache.RuntimeServices_GetEnumerable, iterator);
            }
            return iterator;
        }
ProcessMethodBodies