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