On Sat, 20 Apr 2024 07:39:53 GMT, Chen Liang <[email protected]> wrote:
>> src/java.base/share/classes/java/lang/runtime/SwitchBootstraps.java line 685:
>>
>>> 683: record TypePairs(Class<?> from, Class<?> to) {
>>> 684:
>>> 685: private static final Map<TypePairs, String> typePairToName =
>>> initialize();
>>
>> If `TypePairs.typePairToName` is never modified after initialisation, then
>> it should probably be made immutable:
>> Suggestion:
>>
>> private static final Map<TypePairs, String> typePairToName =
>> Map.copyOf(initialize());
>
> If you really think about it, the `initialize` method itself is somewhat
> problematic, as it's initializing with byte/short/char on the left, all of
> which are already converted to int in the of() factory. This should be done
> in a separate issue.
Yes, the "redirected" mappings can simply be removed in the current
implementation.
Using `Map.copyOf` should be ok to nail down the read-only intent.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/18865#discussion_r1574385797