On Thu, 28 Sep 2023 15:36:30 GMT, Maurizio Cimadamore <[email protected]>
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