RFR: 8316971: Add Lint warning for restricted method calls
    Maurizio Cimadamore 
    mcimadamore at openjdk.org
       
    Thu Sep 28 13:21:47 UTC 2023
    
    
  
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)
-------------
Commit messages:
 - Add tests
 - Initial push
Changes: https://git.openjdk.org/jdk/pull/15964/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=15964&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8316971
  Stats: 95 lines in 14 files changed: 92 ins; 0 del; 3 mod
  Patch: https://git.openjdk.org/jdk/pull/15964.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/15964/head:pull/15964
PR: https://git.openjdk.org/jdk/pull/15964
    
    
More information about the build-dev
mailing list