This is an automated email from the ASF dual-hosted git repository. paulk pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/groovy.git
commit 4cbaec4dd65329570887ba4218438c8bcbe4483f Author: Iiro Kiviluoma <[email protected]> AuthorDate: Fri Apr 9 11:49:29 2021 +0300 GROOVY-9649: Sonar refactoring - NumberRange: Extracted nested ternary operations of hasNext into independent statements - NumberRange: Inverted if-condition in fetchNextIfNeeded to reduce its cognitive complexity --- src/main/java/groovy/lang/NumberRange.java | 35 +++++++++++++++++++----------- 1 file changed, 22 insertions(+), 13 deletions(-) diff --git a/src/main/java/groovy/lang/NumberRange.java b/src/main/java/groovy/lang/NumberRange.java index 8677740..e19a367 100644 --- a/src/main/java/groovy/lang/NumberRange.java +++ b/src/main/java/groovy/lang/NumberRange.java @@ -624,9 +624,18 @@ public class NumberRange extends AbstractList<Comparable> implements Range<Compa @Override public boolean hasNext() { fetchNextIfNeeded(); - return (next != null) && (isAscending - ? (range.inclusiveRight ? compareLessThanEqual(next, range.getTo()) : compareLessThan(next, range.getTo())) - : (range.inclusiveRight ? compareGreaterThanEqual(next, range.getFrom()) : compareGreaterThan(next, range.getFrom()))); + if (next == null) { + return false; + } + if (isAscending) { + return range.inclusiveRight + ? compareLessThanEqual(next, range.getTo()) + : compareLessThan(next, range.getTo()); + } + return range.inclusiveRight + ? compareGreaterThanEqual(next, range.getFrom()) + : compareGreaterThan(next, range.getFrom()); + } @Override @@ -641,18 +650,18 @@ public class NumberRange extends AbstractList<Comparable> implements Range<Compa } private void fetchNextIfNeeded() { - if (!isNextFetched) { - isNextFetched = true; - - if (next == null) { - // make the first fetch lazy too - next = isAscending ? range.getFrom() : range.getTo(); - if (!range.inclusiveLeft) { - next = isAscending ? increment(next, step) : decrement(next, step); - } - } else { + if (isNextFetched) { + return; + } + isNextFetched = true; + if (next == null) { + // make the first fetch lazy too + next = isAscending ? range.getFrom() : range.getTo(); + if (!range.inclusiveLeft) { next = isAscending ? increment(next, step) : decrement(next, step); } + } else { + next = isAscending ? increment(next, step) : decrement(next, step); } }
