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