RFR: 8316971: Add Lint warning for restricted method calls [v2]

Vicente Romero vromero at openjdk.org
Thu Sep 28 15:59:27 UTC 2023


On Thu, 28 Sep 2023 15:36:30 GMT, Maurizio Cimadamore <mcimadamore at openjdk.org> wrote:

>> This patch adds a new lint warning category, namely `-Xlint:restricted` to enable warnings on restricted method calls.
>> 
>> The patch is relatively straightforward: javac marks methods that are marked with the `@Restricted` annotation with a corresponding internal flag. This is done both in `Annotate` when compiling JDK from source, and in `ClassReader` when JDK classfiles are read. When calls to methods marked with the special flag are found, a new warning is issued.
>> 
>> While there are some similarities between this new warning and the preview API warnings, the compiler does *not* emit a mandatory note when a compilation unit is found to have one or more restricted method calls. In other words, this is just a plain lint warning.
>> 
>> The output from javac looks as follows:
>> 
>> 
>> Foo.java:6: warning: [restricted] MemorySegment.reinterpret(long) is a restricted method.
>>       Arena.ofAuto().allocate(10).reinterpret(100);
>>                                  ^
>>   (Restricted methods are unsafe, and, if used incorrectly, they might crash the JVM or result in memory corruption)
>
> Maurizio Cimadamore has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Update warning message

question shouldn't the new Restricted annotation be annotated with the @PreviewFeature annotation? it depends on a preview feature

src/jdk.compiler/share/classes/com/sun/tools/javac/code/Flags.java line 393:

> 391: 
> 392:     /**
> 393:      * Flag to indicate sealed class/interface declaration.

this javadoc needs to be adjusted to restricted methods

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

PR Comment: https://git.openjdk.org/jdk/pull/15964#issuecomment-1739605513
PR Review Comment: https://git.openjdk.org/jdk/pull/15964#discussion_r1340351919


More information about the build-dev mailing list