On Mon, 5 Dec 2022 19:52:20 GMT, Roger Riggs <rri...@openjdk.org> wrote:

>> The accessFlags() methods added (in JDK 20, the current release) to 
>> java.lang.Class, java.lang.reflect.Executable, and java.lang.reflect.Field 
>> implicitly uses the access flags from the current/most recent class file 
>> format version. For current and past class file format versions there are 
>> few significant variations but future changes are anticipated that change 
>> the meaning of some access flag mask bits.
>> 
>> The accessFlags() methods are clarified to return the access flags that are 
>> applicable to the class file format version of the class. The existing 
>> AccessFlag.Locations API already contains information about the locations 
>> that are applicable to a class file format version. That information should 
>> be used to construct the set of AccessFlags returned. A method is added to 
>> AccessFlag that returns the applicable flags for a particular mask, 
>> Location, and class file format version:
>
> Roger Riggs has updated the pull request incrementally with two additional 
> commits since the last revision:
> 
>  - Updated the descriptions of AccessFlags being dependent on the class file 
> version number.
>    Removed unnecessary tests of ACC_SYNTHETIC, the class file format version
>    tests for strictfp cover them sufficiently.
>  - WIP: simplify

src/java.base/share/classes/java/lang/reflect/AccessFlag.java line 519:

> 517:      * @param cffv the class file format version
> 518:      */
> 519:     public static Set<AccessFlag> maskToAccessFlags(int mask, Location 
> location,

The difference in exception handling behavior compared to the method w/o a 
ClassFileFormatVersion argument should at least be discussed.

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

PR: https://git.openjdk.org/jdk/pull/11399

Reply via email to