RFR: 8257466: Improve enum iteration [v2]

Ioi Lam iklam at openjdk.java.net
Wed Dec 2 05:42:57 UTC 2020


On Wed, 2 Dec 2020 02:30:14 GMT, Kim Barrett <kbarrett at openjdk.org> wrote:

>> 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
>
> Kim Barrett has updated the pull request incrementally with one additional commit since the last revision:
> 
>   iklam review

Marked as reviewed by iklam (Reviewer).

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

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


More information about the hotspot-dev mailing list