From 33bcee7d6d5bd881726dbec94d5bdcbaa67f3078 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Thu, 20 Jun 2013 23:25:17 +0400 Subject: [PATCH] Fix iterators for one-element progressions In case of start==end hasNext was always false, which resulted in iterators over one-element progressions not iterating that element --- runtime/src/jet/ByteProgressionIterator.java | 2 +- runtime/src/jet/CharProgressionIterator.java | 2 +- runtime/src/jet/IntProgressionIterator.java | 2 +- runtime/src/jet/LongProgressionIterator.java | 2 +- runtime/src/jet/ShortProgressionIterator.java | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/runtime/src/jet/ByteProgressionIterator.java b/runtime/src/jet/ByteProgressionIterator.java index fc5fc8417bc..d2461dab02a 100644 --- a/runtime/src/jet/ByteProgressionIterator.java +++ b/runtime/src/jet/ByteProgressionIterator.java @@ -29,7 +29,7 @@ class ByteProgressionIterator extends ByteIterator { this.increment = increment; this.finalElement = (byte) ProgressionUtil.getProgressionFinalElement(start, end, increment); - this.hasNext = increment < 0 ? start > end : start < end; + this.hasNext = increment > 0 ? start <= end : start >= end; } @Override diff --git a/runtime/src/jet/CharProgressionIterator.java b/runtime/src/jet/CharProgressionIterator.java index cb09aeb5347..1b5306db656 100644 --- a/runtime/src/jet/CharProgressionIterator.java +++ b/runtime/src/jet/CharProgressionIterator.java @@ -29,7 +29,7 @@ class CharProgressionIterator extends CharIterator { this.increment = increment; this.finalElement = (char) ProgressionUtil.getProgressionFinalElement(start, end, increment); - this.hasNext = increment < 0 ? start > end : start < end; + this.hasNext = increment > 0 ? start <= end : start >= end; } @Override diff --git a/runtime/src/jet/IntProgressionIterator.java b/runtime/src/jet/IntProgressionIterator.java index 0b6f9bb5175..a6a0c9da842 100644 --- a/runtime/src/jet/IntProgressionIterator.java +++ b/runtime/src/jet/IntProgressionIterator.java @@ -29,7 +29,7 @@ class IntProgressionIterator extends IntIterator { this.increment = increment; this.finalElement = ProgressionUtil.getProgressionFinalElement(start, end, increment); - this.hasNext = increment < 0 ? start > end : start < end; + this.hasNext = increment > 0 ? start <= end : start >= end; } @Override diff --git a/runtime/src/jet/LongProgressionIterator.java b/runtime/src/jet/LongProgressionIterator.java index 70493e39972..a2593216be1 100644 --- a/runtime/src/jet/LongProgressionIterator.java +++ b/runtime/src/jet/LongProgressionIterator.java @@ -29,7 +29,7 @@ class LongProgressionIterator extends LongIterator { this.increment = increment; this.finalElement = ProgressionUtil.getProgressionFinalElement(start, end, increment); - this.hasNext = increment < 0 ? start > end : start < end; + this.hasNext = increment > 0 ? start <= end : start >= end; } @Override diff --git a/runtime/src/jet/ShortProgressionIterator.java b/runtime/src/jet/ShortProgressionIterator.java index d3da9e80326..bb63d7788c0 100644 --- a/runtime/src/jet/ShortProgressionIterator.java +++ b/runtime/src/jet/ShortProgressionIterator.java @@ -29,7 +29,7 @@ class ShortProgressionIterator extends ShortIterator { this.increment = increment; this.finalElement = (short) ProgressionUtil.getProgressionFinalElement(start, end, increment); - this.hasNext = increment < 0 ? start > end : start < end; + this.hasNext = increment > 0 ? start <= end : start >= end; } @Override