IronRuby.Builtins.RangeOps.StepFixnum C# (CSharp) Method

StepFixnum() private static method

Step through a Range of Fixnums.
This method is optimized for direct integer operations using < and + directly. It is not used if either begin or end are outside Fixnum bounds.
private static StepFixnum ( BlockParam block, Range self, int begin, int end, int step ) : object
block IronRuby.Runtime.BlockParam
self Range
begin int
end int
step int
return object
        private static object StepFixnum(BlockParam/*!*/ block, Range/*!*/ self, int begin, int end, int step) {
            Assert.NotNull(block, self);
            CheckStep(step);

            object result;
            int item = begin;
            while (item < end) {
                if (block.Yield(item, out result)) {
                    return result;
                }
                item += step;
            }

            if (item == end && !self.ExcludeEnd) {
                if (block.Yield(item, out result)) {
                    return result;
                }
            }
            return self;
        }