On Sat, 7 Mar 2026 00:01:41 GMT, Chen Liang <[email protected]> wrote:
> In the Java Platform, most bootstrap method declarations are declared in Java
> source code. Each of these bootstrap method need to refer to the bootstrap
> method mechanism, which makes documentation repetitive, and not
> straightforward when seen from source code. This demand came out of recent PR
> reviews like #30067.
>
> We can introduce documented annotations so the bootstrap method role becomes
> straightforward. The Java compilers can also emit warnings for these
> annotations to make sure the annotated declarations are not definitely
> illegal.
>
> In this RFE, javac will provide basic warnings under the new "bsm" lint
> category to validate these annotations for source levels 27 and above. The
> lint category will be on by default, and won't affect `-Xlint:all` usages for
> source levels 26 and below.
src/java.base/share/classes/java/lang/invoke/ConstantBootstrap.java line 46:
> 44: * if the declaration is an instance method. The arguments can be
> 45: * variable-arity.
> 46: * <li>The first argument type is exactly {@link MethodHandles.Lookup}.
Why is there a difference here with CallsiteBootrap for MethodHandles.Lookup?
It looks like the implementation checks assignability for both.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/30125#discussion_r2920129843