[
https://issues.apache.org/jira/browse/BCEL-377?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18028058#comment-18028058
]
Andrey Loskutov commented on BCEL-377:
--------------------------------------
ASM would generate this code for the lambda in the Java8Example:
{code}
.filter((String s) -> s.length() > 2)
{code}
{code:title=ASMifier version}
methodVisitor.visitInvokeDynamicInsn("test",
"()Ljava/util/function/Predicate;", new Handle(Opcodes.H_INVOKESTATIC,
"java/lang/invoke/LambdaMetafactory", "metafactory",
"(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;",
false), new Object[]{Type.getType("(Ljava/lang/Object;)Z"), new
Handle(Opcodes.H_INVOKESTATIC, "Java8Example", "lambda$0",
"(Ljava/lang/String;)Z", true), Type.getType("(Ljava/lang/String;)Z")});
{code}
BCEL however seem to do way less for same instruction:
{code:title=BCELifier version}
il.append(_factory.createInvoke("test", "test", new
ObjectType("java.util.function.Predicate"), Type.NO_ARGS, Const.INVOKEDYNAMIC));
{code}
So it looks to me, lambdas in BCEL are not really supported?
> Fix Java 24 and 25 tests and release
> ------------------------------------
>
> Key: BCEL-377
> URL: https://issues.apache.org/jira/browse/BCEL-377
> Project: Commons BCEL
> Issue Type: New Feature
> Affects Versions: 6.10.0
> Reporter: Dejan Stojadinović
> Priority: Major
> Labels: Java25, patch, patch-upgrade
> Attachments: BCELifierTest.java, pom.xml, test_BAD_mvn_java25.txt,
> test_OK_mvn_java21.txt
>
>
> *Prologue:* [https://github.com/spotbugs/spotbugs/issues/3569] SpotBugs:
> Update to BCEL stable 6.11 release
> *Note:* it really doesn't have to be a full-blown 6.11.0 release; patch
> 6.10.1 would do:
> * version 6.10.0:
> [https://github.com/apache/commons-bcel/releases/tag/rel%2Fcommons-bcel-6.10.0]
> and
> * commit:
> [https://github.com/apache/commons-bcel/commit/70562832ce2cc8925787bacf53911615e6fbb2b7]
> FYI [~ggregory]
--
This message was sent by Atlassian Jira
(v8.20.10#820010)