Thanks Jason! Gary
On Wed, Feb 8, 2023, 19:31 Jason Copenhaver <jason.copenha...@charthop.com.invalid> wrote: > I've created a PR that repros at > https://github.com/apache/commons-bcel/pull/205 > > Jason C > > On Wed, Feb 8, 2023 at 3:33 PM Gary Gregory <garydgreg...@gmail.com> > wrote: > > > Hi Jason, > > > > The best path forward would be for you to create a PR on GitHub with a > > failing unit test. That will let us reproduce your issue in the simplest > > fashion. Also make sure you are using the last version, 6.7.0. > > > > Thank you, > > Gary > > > > On Wed, Feb 8, 2023, 11:14 Jason Copenhaver > > <jason.copenha...@charthop.com.invalid> wrote: > > > > > I've run into an issue when using BCEL on the results of the below > Kotlin > > > code. > > > > > > class test { > > > fun takeABlock(a: () -> Unit) { > > > a() > > > } > > > > > > fun `method name with () in it`() { > > > takeABlock { println("other test") } > > > } > > > > > > fun `method name without parens`() { > > > takeABlock { println("other test") } > > > } > > > } > > > > > > Three class files are produced. > > > > > > test$method name with () in it$1.class > > > test$method name without parens$1.class > > > test.class > > > > > > When i use the examples/JasminVisitor.java against `test$method name > with > > > () in it$1.class` with a small patch to add a `field.getType()` call to > > the > > > `visitField` method I get the below stack trace. > > > > > > Exception in thread "main" > > org.apache.bcel.classfile.ClassFormatException: > > > Invalid method signature: in it$1; > > > at org.apache.bcel.classfile.Utility.typeOfSignature(Utility.java:1284) > > > at org.apache.bcel.generic.Type.getType(Type.java:227) > > > at org.apache.bcel.generic.Type.getReturnType(Type.java:151) > > > at org.apache.bcel.classfile.Field.getType(Field.java:150) > > > at JasminVisitor.visitField(JasminVisitor.java:287) > > > at org.apache.bcel.classfile.Field.accept(Field.java:113) > > > at > > > > > > > > > org.apache.bcel.classfile.DescendingVisitor.visitField(DescendingVisitor.java:311) > > > at org.apache.bcel.classfile.Field.accept(Field.java:113) > > > at > > > > > > > > > org.apache.bcel.classfile.DescendingVisitor.lambda$accept$0(DescendingVisitor.java:44) > > > at > > > > > > > > > java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948) > > > at > > > > > > > > > java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:658) > > > at > > > > > > > > > org.apache.bcel.classfile.DescendingVisitor.accept(DescendingVisitor.java:44) > > > at > > > > > > > > > org.apache.bcel.classfile.DescendingVisitor.visitJavaClass(DescendingVisitor.java:335) > > > at org.apache.bcel.classfile.JavaClass.accept(JavaClass.java:251) > > > at > > > > > > > > > org.apache.bcel.classfile.DescendingVisitor.visit(DescendingVisitor.java:77) > > > at JasminVisitor.disassemble(JasminVisitor.java:109) > > > at JasminVisitor.main(JasminVisitor.java:82) > > > > > > Thanks, > > > Jason C > > > > > >