On Thu, 28 Sep 2023 15:36:30 GMT, Maurizio Cimadamore <mcimadam...@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 test/langtools/tools/javac/RestrictedMethods.java line 34: > 32: } > 33: } > 34: } shouldn't this test include a case using method references? For example: void m(MemorySegment m) { foo(m::reinterpret); } <R> void foo(LongFunction<R> f) {} ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/15964#discussion_r1340470730