Integrated: 8316971: Add Lint warning for restricted method calls

Maurizio Cimadamore mcimadamore at openjdk.org
Wed Oct 4 09:39:50 UTC 2023


On Thu, 28 Sep 2023 13:13:31 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)

This pull request has now been integrated.

Changeset: 0d4de8a7
Author:    Maurizio Cimadamore <mcimadamore at openjdk.org>
URL:       https://git.openjdk.org/jdk/commit/0d4de8a71f063e44618f43ddd862a91aed647f48
Stats:     119 lines in 15 files changed: 115 ins; 0 del; 4 mod

8316971: Add Lint warning for restricted method calls

Reviewed-by: ihse, vromero

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

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


More information about the compiler-dev mailing list