/* * @test /nodynamiccopyright/ * @bug 8316971 * @summary Smoke test for restricted method call warnings * @compile/fail/ref=RestrictedMethods.out -Xlint:restricted -Werror -XDrawDiagnostics RestrictedMethods.java * @compile/fail/ref=RestrictedMethods.out --release ${jdk.version} -Xlint:restricted -Werror -XDrawDiagnostics RestrictedMethods.java * @compile -Werror RestrictedMethods.java */ import java.lang.foreign.MemorySegment; import java.util.function.Function; class RestrictedMethods { MemorySegment warn = MemorySegment.NULL.reinterpret(10); // warning here @SuppressWarnings("restricted") MemorySegment suppressed = MemorySegment.NULL.reinterpret(10); // no warning here Function warn_ref = MemorySegment.NULL::reinterpret; // warning here @SuppressWarnings("restricted") Function suppressed_ref = MemorySegment.NULL::reinterpret; // no warning here void testWarn() { MemorySegment.NULL.reinterpret(10); // warning here } @SuppressWarnings("restricted") void testSuppressed() { MemorySegment.NULL.reinterpret(10); // no warning here } Function testWarnRef() { return MemorySegment.NULL::reinterpret; // warning here } @SuppressWarnings("restricted") Function testSuppressedRef() { return MemorySegment.NULL::reinterpret; // no warning here } @SuppressWarnings("restricted") static class Nested { MemorySegment suppressedNested = MemorySegment.NULL.reinterpret(10); // no warning here Function suppressedNested_ref = MemorySegment.NULL::reinterpret; // no warning here void testSuppressedNested() { MemorySegment.NULL.reinterpret(10); // no warning here } Function testSuppressedNestedRef() { return MemorySegment.NULL::reinterpret; // no warning here } } }