RFR: 8257466: Improve enum iteration

Kim Barrett kbarrett at openjdk.java.net
Tue Dec 1 04:49:14 UTC 2020


Please review this collection of improvements to the recently added enum
iteration facility. These improvements are based on usage in some
in-development changes.

(1) Added EnumType nested type to EnumRange and EnumIterator. It is an alias
for the enum type that is a template parameter for those classes. This is
useful when dealing with a range or iterator whose associated enum type is
not known because the range/iterator is a template parameter.

(2) Added EnumRange<T>::index(T), which converts the argument enumerator to
a zero-based index into the range of values. This is useful when mapping
from an enumerator to a corresponding array index, for example.

(3) Allow enum range bounds to be specified using start and (exclusive) end
integral (underlying type) values. This is useful when dealing with enums
that are just value ranges and don't have named enumerators. As part of
this, changes the enum iteration traits mechanism to use start/end rather
than first/last, as that seems to be a little easier to deal with.

(4) Added accessors for the first and last enumerator values of a range.

(5) Added gtest for enum iteration.

Testing: tier1

-------------

Commit messages:
 - 8257466: Improve enum iteration

Changes: https://git.openjdk.java.net/jdk/pull/1530/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=1530&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8257466
  Stats: 187 lines in 2 files changed: 165 ins; 1 del; 21 mod
  Patch: https://git.openjdk.java.net/jdk/pull/1530.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/1530/head:pull/1530

PR: https://git.openjdk.java.net/jdk/pull/1530


More information about the hotspot-dev mailing list