With the recent drop of JDK 21 support in the Graal codebase, JVMCI is now well-positioned for a round of code refactoring that leverages modern Java features to improve readability, maintainability, and robustness. Below are several proposed enhancements:
1. Replace raw array returns (e.g., ResolvedJavaType.getInstanceFields) with immutable List objects to clearly enforce immutability contracts
2. Merge HotSpotMethod into HotSpotResolvedMethodImpl
3. Merge MetaAccessExtensionProvider into MetaAccessProvider
4. Remove CPUFeatureName (won't do)
5. Remove JVMCIPermission
6. Use records
1. Replace raw array returns (e.g., ResolvedJavaType.getInstanceFields) with immutable List objects to clearly enforce immutability contracts
2. Merge HotSpotMethod into HotSpotResolvedMethodImpl
3. Merge MetaAccessExtensionProvider into MetaAccessProvider
4. Remove CPUFeatureName (won't do)
5. Remove JVMCIPermission
6. Use records