RFR: 8347471: Provide valid flags and mask in AccessFlag.Location [v8]
ExE Boss
duke at openjdk.org
Tue Apr 29 18:43:46 UTC 2025
On Sun, 27 Apr 2025 17:29:32 GMT, Chen Liang <liach at openjdk.org> wrote:
>> src/java.base/share/classes/java/lang/reflect/AccessFlag.java line 722:
>>
>>> 720: }
>>> 721:
>>> 722: private static final class AccessFlagSet extends AbstractSet<AccessFlag> {
>>
>> This should probably also define the spliterator method:
>>
>> @Override
>> public Spliterator<AccessFlag> spliterator() {
>> return Spliterators.spliterator(
>> this,
>> Spliterator.DISTINCT | Spliterator.ORDERED | Spliterator.SIZED
>> | Spliterator.NONNULL | Spliterator.IMMUTABLE | Spliterator.SUBSIZED
>> );
>> }
>
> Hmm, I intentionally avoided implementing spliterator because there are too many opportunities to optimize - a fully optimized Spliterator implementaton should split an int mask. Can we do that in another patch? I need to check if MOAT tests spliterators too.
Well, in this case, my suggestion isn’t about providing a fully optimised `Spliterator`, but about setting the correct characteristics.
Otherwise, its definition is exactly the same as in `Set::spliterator()`: https://github.com/openjdk/jdk/blob/ead6757486fb58f35f6e93b691519673bca1a549/src/java.base/share/classes/java/util/Set.java#L439-L442
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/23095#discussion_r2067134110
More information about the core-libs-dev
mailing list