public class org.jruby.anno.AnnotationBinder extends javax.annotation.processing.AbstractProcessor
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.jruby.anno.AnnotationBinder
super_class: javax.annotation.processing.AbstractProcessor
{
public static final java.lang.String POPULATOR_SUFFIX;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "$POPULATOR"
public static final java.lang.String SRC_GEN_DIR;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "target/generated-sources/org/jruby/gen/"
private final java.util.List<java.lang.CharSequence> classNames;
descriptor: Ljava/util/List;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/List<Ljava/lang/CharSequence;>;
private java.io.PrintStream out;
descriptor: Ljava/io/PrintStream;
flags: (0x0002) ACC_PRIVATE
private static final boolean DEBUG;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokespecial javax.annotation.processing.AbstractProcessor.<init>:()V
1: aload 0
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield org.jruby.anno.AnnotationBinder.classNames:Ljava/util/List;
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/jruby/anno/AnnotationBinder;
public boolean process(java.util.Set<? extends javax.lang.model.element.TypeElement>, javax.annotation.processing.RoundEnvironment);
descriptor: (Ljava/util/Set;Ljavax/annotation/processing/RoundEnvironment;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokeinterface javax.annotation.processing.RoundEnvironment.getRootElements:()Ljava/util/Set;
invokestatic javax.lang.model.util.ElementFilter.typesIn:(Ljava/util/Set;)Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 4
goto 3
StackMap locals: org.jruby.anno.AnnotationBinder java.util.Set javax.annotation.processing.RoundEnvironment top java.util.Iterator
StackMap stack:
1: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast javax.lang.model.element.TypeElement
astore 3
start local 3 2: aload 0
aload 3
invokevirtual org.jruby.anno.AnnotationBinder.processType:(Ljavax/lang/model/element/TypeElement;)V
end local 3 3: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
4: new java.io.FileWriter
dup
ldc "target/generated-sources/annotated_classes.txt"
invokespecial java.io.FileWriter.<init>:(Ljava/lang/String;)V
astore 3
start local 3 5: aload 0
getfield org.jruby.anno.AnnotationBinder.classNames:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 5
goto 9
StackMap locals: org.jruby.anno.AnnotationBinder java.util.Set javax.annotation.processing.RoundEnvironment java.io.FileWriter top java.util.Iterator
StackMap stack:
6: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.CharSequence
astore 4
start local 4 7: aload 3
aload 4
invokeinterface java.lang.CharSequence.toString:()Ljava/lang/String;
invokevirtual java.io.FileWriter.write:(Ljava/lang/String;)V
8: aload 3
bipush 10
invokevirtual java.io.FileWriter.write:(I)V
end local 4 9: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 6
10: aload 3
invokevirtual java.io.FileWriter.close:()V
end local 3 11: goto 15
12: StackMap locals: org.jruby.anno.AnnotationBinder java.util.Set javax.annotation.processing.RoundEnvironment
StackMap stack: java.lang.Exception
astore 3
start local 3 13: aload 3
instanceof java.lang.RuntimeException
ifeq 14
aload 3
checkcast java.lang.RuntimeException
athrow
14: StackMap locals: java.lang.Exception
StackMap stack:
new java.lang.RuntimeException
dup
aload 3
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 3 15: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lorg/jruby/anno/AnnotationBinder;
0 16 1 typeElements Ljava/util/Set<+Ljavax/lang/model/element/TypeElement;>;
0 16 2 roundEnvironment Ljavax/annotation/processing/RoundEnvironment;
2 3 3 element Ljavax/lang/model/element/TypeElement;
5 11 3 fw Ljava/io/FileWriter;
7 9 4 name Ljava/lang/CharSequence;
13 15 3 e Ljava/lang/Exception;
Exception table:
from to target type
4 11 12 Class java.lang.Exception
Signature: (Ljava/util/Set<+Ljavax/lang/model/element/TypeElement;>;Ljavax/annotation/processing/RoundEnvironment;)Z
MethodParameters:
Name Flags
typeElements
roundEnvironment
public javax.lang.model.SourceVersion getSupportedSourceVersion();
descriptor: ()Ljavax/lang/model/SourceVersion;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: invokestatic javax.lang.model.SourceVersion.latest:()Ljavax/lang/model/SourceVersion;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/anno/AnnotationBinder;
public void processType(javax.lang.model.element.TypeElement);
descriptor: (Ljavax/lang/model/element/TypeElement;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=20, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface javax.lang.model.element.TypeElement.getEnclosedElements:()Ljava/util/List;
invokestatic javax.lang.model.util.ElementFilter.typesIn:(Ljava/lang/Iterable;)Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 3
goto 3
StackMap locals: org.jruby.anno.AnnotationBinder javax.lang.model.element.TypeElement top java.util.Iterator
StackMap stack:
1: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast javax.lang.model.element.TypeElement
astore 2
start local 2 2: aload 0
aload 2
invokevirtual org.jruby.anno.AnnotationBinder.processType:(Ljavax/lang/model/element/TypeElement;)V
end local 2 3: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
4: aload 1
invokeinterface javax.lang.model.element.TypeElement.getQualifiedName:()Ljavax/lang/model/element/Name;
invokeinterface javax.lang.model.element.Name.toString:()Ljava/lang/String;
bipush 46
bipush 36
invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
astore 2
start local 2 5: aload 2
ldc "org$jruby"
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
ifne 7
6: return
7: StackMap locals: org.jruby.anno.AnnotationBinder javax.lang.model.element.TypeElement java.lang.String
StackMap stack:
new java.io.ByteArrayOutputStream
dup
sipush 1024
invokespecial java.io.ByteArrayOutputStream.<init>:(I)V
astore 3
start local 3 8: aload 0
new java.io.PrintStream
dup
aload 3
invokespecial java.io.PrintStream.<init>:(Ljava/io/OutputStream;)V
putfield org.jruby.anno.AnnotationBinder.out:Ljava/io/PrintStream;
9: aload 0
getfield org.jruby.anno.AnnotationBinder.out:Ljava/io/PrintStream;
ldc "/* THIS FILE IS GENERATED. DO NOT EDIT */"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
10: aload 0
getfield org.jruby.anno.AnnotationBinder.out:Ljava/io/PrintStream;
ldc "package org.jruby.gen;"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
11: aload 0
getfield org.jruby.anno.AnnotationBinder.out:Ljava/io/PrintStream;
ldc ""
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
12: aload 0
getfield org.jruby.anno.AnnotationBinder.out:Ljava/io/PrintStream;
ldc "import org.jruby.Ruby;"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
13: aload 0
getfield org.jruby.anno.AnnotationBinder.out:Ljava/io/PrintStream;
ldc "import org.jruby.RubyModule;"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
14: aload 0
getfield org.jruby.anno.AnnotationBinder.out:Ljava/io/PrintStream;
ldc "import org.jruby.RubyClass;"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
15: aload 0
getfield org.jruby.anno.AnnotationBinder.out:Ljava/io/PrintStream;
ldc "import org.jruby.anno.TypePopulator;"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
16: aload 0
getfield org.jruby.anno.AnnotationBinder.out:Ljava/io/PrintStream;
ldc "import org.jruby.internal.runtime.methods.JavaMethod;"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
17: aload 0
getfield org.jruby.anno.AnnotationBinder.out:Ljava/io/PrintStream;
ldc "import org.jruby.internal.runtime.methods.DynamicMethod;"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
18: aload 0
getfield org.jruby.anno.AnnotationBinder.out:Ljava/io/PrintStream;
ldc "import org.jruby.runtime.Arity;"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
19: aload 0
getfield org.jruby.anno.AnnotationBinder.out:Ljava/io/PrintStream;
ldc "import org.jruby.runtime.Visibility;"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
20: aload 0
getfield org.jruby.anno.AnnotationBinder.out:Ljava/io/PrintStream;
ldc "import org.jruby.runtime.MethodIndex;"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
21: aload 0
getfield org.jruby.anno.AnnotationBinder.out:Ljava/io/PrintStream;
ldc "import java.util.Arrays;"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
22: aload 0
getfield org.jruby.anno.AnnotationBinder.out:Ljava/io/PrintStream;
ldc "import java.util.List;"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
23: aload 0
getfield org.jruby.anno.AnnotationBinder.out:Ljava/io/PrintStream;
ldc "import javax.annotation.Generated;"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
24: aload 0
getfield org.jruby.anno.AnnotationBinder.out:Ljava/io/PrintStream;
ldc ""
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
25: aload 0
getfield org.jruby.anno.AnnotationBinder.out:Ljava/io/PrintStream;
ldc "@Generated(\"org.jruby.anno.AnnotationBinder\")"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
26: aload 0
getfield org.jruby.anno.AnnotationBinder.out:Ljava/io/PrintStream;
ldc "@SuppressWarnings(\"deprecation\")"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
27: aload 0
getfield org.jruby.anno.AnnotationBinder.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "public class "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "$POPULATOR"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " extends TypePopulator {"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
28: aload 0
getfield org.jruby.anno.AnnotationBinder.out:Ljava/io/PrintStream;
ldc " public void populate(RubyModule cls, Class clazz) {"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
29: iconst_0
istore 4
start local 4 30: iconst_0
istore 5
start local 5 31: iconst_0
istore 6
start local 6 32: aload 1
invokeinterface javax.lang.model.element.TypeElement.getEnclosedElements:()Ljava/util/List;
invokestatic javax.lang.model.util.ElementFilter.methodsIn:(Ljava/lang/Iterable;)Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 8
goto 40
StackMap locals: org.jruby.anno.AnnotationBinder javax.lang.model.element.TypeElement java.lang.String java.io.ByteArrayOutputStream int int int top java.util.Iterator
StackMap stack:
33: aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast javax.lang.model.element.ExecutableElement
astore 7
start local 7 34: aload 7
ldc Lorg/jruby/anno/JRubyMethod;
invokeinterface javax.lang.model.element.ExecutableElement.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
checkcast org.jruby.anno.JRubyMethod
astore 9
start local 9 35: aload 9
ifnonnull 37
36: goto 40
37: StackMap locals: org.jruby.anno.AnnotationBinder javax.lang.model.element.TypeElement java.lang.String java.io.ByteArrayOutputStream int int int javax.lang.model.element.ExecutableElement java.util.Iterator org.jruby.anno.JRubyMethod
StackMap stack:
iconst_1
istore 4
38: iload 5
aload 9
invokeinterface org.jruby.anno.JRubyMethod.meta:()Z
ior
istore 5
39: iload 6
aload 9
invokeinterface org.jruby.anno.JRubyMethod.module:()Z
ior
istore 6
end local 9 end local 7 40: StackMap locals: org.jruby.anno.AnnotationBinder javax.lang.model.element.TypeElement java.lang.String java.io.ByteArrayOutputStream int int int top java.util.Iterator
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 33
41: iload 4
ifne 43
42: return
43: StackMap locals: org.jruby.anno.AnnotationBinder javax.lang.model.element.TypeElement java.lang.String java.io.ByteArrayOutputStream int int int
StackMap stack:
aload 0
getfield org.jruby.anno.AnnotationBinder.out:Ljava/io/PrintStream;
ldc " JavaMethod javaMethod;"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
44: aload 0
getfield org.jruby.anno.AnnotationBinder.out:Ljava/io/PrintStream;
ldc " DynamicMethod moduleMethod, aliasedMethod;"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
45: iload 5
ifne 46
iload 6
ifeq 47
StackMap locals:
StackMap stack:
46: aload 0
getfield org.jruby.anno.AnnotationBinder.out:Ljava/io/PrintStream;
ldc " RubyClass singletonClass = cls.getSingletonClass();"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
47: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.anno.AnnotationBinder.out:Ljava/io/PrintStream;
ldc " Ruby runtime = cls.getRuntime();"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
48: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 7
start local 7 49: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 8
start local 8 50: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 9
start local 9 51: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 10
start local 10 52: iconst_0
istore 11
start local 11 53: aload 1
invokeinterface javax.lang.model.element.TypeElement.getEnclosedElements:()Ljava/util/List;
invokestatic javax.lang.model.util.ElementFilter.methodsIn:(Ljava/lang/Iterable;)Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 13
goto 72
StackMap locals: org.jruby.anno.AnnotationBinder javax.lang.model.element.TypeElement java.lang.String java.io.ByteArrayOutputStream int int int java.util.Map java.util.Map java.util.Map java.util.Map int top java.util.Iterator
StackMap stack:
54: aload 13
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast javax.lang.model.element.ExecutableElement
astore 12
start local 12 55: aload 12
ldc Lorg/jruby/anno/JRubyMethod;
invokeinterface javax.lang.model.element.ExecutableElement.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
checkcast org.jruby.anno.JRubyMethod
astore 14
start local 14 56: aload 14
ifnonnull 57
goto 72
57: StackMap locals: org.jruby.anno.AnnotationBinder javax.lang.model.element.TypeElement java.lang.String java.io.ByteArrayOutputStream int int int java.util.Map java.util.Map java.util.Map java.util.Map int javax.lang.model.element.ExecutableElement java.util.Iterator org.jruby.anno.JRubyMethod
StackMap stack:
aload 14
invokeinterface org.jruby.anno.JRubyMethod.compat:()Lorg/jruby/CompatVersion;
getstatic org.jruby.CompatVersion.RUBY1_8:Lorg/jruby/CompatVersion;
if_acmpne 58
goto 72
58: StackMap locals:
StackMap stack:
iinc 11 1
59: aload 1
aload 12
invokestatic org.jruby.anno.AnnotationBinder.checkForThrows:(Ljavax/lang/model/element/TypeElement;Ljavax/lang/model/element/ExecutableElement;)V
60: aload 14
invokeinterface org.jruby.anno.JRubyMethod.name:()[Ljava/lang/String;
arraylength
ifne 61
aload 12
invokeinterface javax.lang.model.element.ExecutableElement.getSimpleName:()Ljavax/lang/model/element/Name;
goto 62
StackMap locals:
StackMap stack:
61: aload 14
invokeinterface org.jruby.anno.JRubyMethod.name:()[Ljava/lang/String;
iconst_0
aaload
StackMap locals:
StackMap stack: java.lang.CharSequence
62: astore 15
start local 15 63: aload 12
invokeinterface javax.lang.model.element.ExecutableElement.getModifiers:()Ljava/util/Set;
getstatic javax.lang.model.element.Modifier.STATIC:Ljavax/lang/model/element/Modifier;
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 66
64: aload 8
astore 16
start local 16 65: goto 67
end local 16 66: StackMap locals: java.lang.CharSequence
StackMap stack:
aload 7
astore 16
start local 16 67: StackMap locals: java.util.Map
StackMap stack:
aload 16
aload 15
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.List
astore 17
start local 17 68: aload 17
ifnonnull 70
69: aload 16
aload 15
new java.util.ArrayList
dup
iconst_4
invokespecial java.util.ArrayList.<init>:(I)V
dup
astore 17
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
70: StackMap locals: java.util.List
StackMap stack:
aload 17
aload 12
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
71: aload 9
aload 10
aload 14
aload 12
invokeinterface javax.lang.model.element.ExecutableElement.getSimpleName:()Ljavax/lang/model/element/Name;
invokeinterface javax.lang.model.element.Name.toString:()Ljava/lang/String;
invokestatic org.jruby.anno.AnnotationHelper.groupFrameFields:(Ljava/util/Map;Ljava/util/Map;Lorg/jruby/anno/JRubyMethod;Ljava/lang/String;)V
end local 17 end local 16 end local 15 end local 14 end local 12 72: StackMap locals: org.jruby.anno.AnnotationBinder javax.lang.model.element.TypeElement java.lang.String java.io.ByteArrayOutputStream int int int java.util.Map java.util.Map java.util.Map java.util.Map int top java.util.Iterator
StackMap stack:
aload 13
invokeinterface java.util.Iterator.hasNext:()Z
ifne 54
73: iload 11
ifne 75
74: return
75: StackMap locals: org.jruby.anno.AnnotationBinder javax.lang.model.element.TypeElement java.lang.String java.io.ByteArrayOutputStream int int int java.util.Map java.util.Map java.util.Map java.util.Map int
StackMap stack:
aload 0
getfield org.jruby.anno.AnnotationBinder.classNames:Ljava/util/List;
aload 1
invokestatic org.jruby.anno.AnnotationBinder.getActualQualifiedName:(Ljavax/lang/model/element/TypeElement;)Ljava/lang/CharSequence;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
76: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 12
start local 12 77: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 13
start local 13 78: aload 0
aload 8
invokevirtual org.jruby.anno.AnnotationBinder.processMethodDeclarations:(Ljava/util/Map;)V
79: aload 8
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 15
goto 91
StackMap locals: org.jruby.anno.AnnotationBinder javax.lang.model.element.TypeElement java.lang.String java.io.ByteArrayOutputStream int int int java.util.Map java.util.Map java.util.Map java.util.Map int java.util.List java.util.Map top java.util.Iterator
StackMap stack:
80: aload 15
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 14
start local 14 81: aload 14
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast java.util.List
iconst_0
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast javax.lang.model.element.ExecutableElement
astore 16
start local 16 82: aload 16
ldc Lorg/jruby/anno/JRubyMethod;
invokeinterface javax.lang.model.element.ExecutableElement.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
checkcast org.jruby.anno.JRubyMethod
astore 17
start local 17 83: aload 17
invokeinterface org.jruby.anno.JRubyMethod.omit:()Z
ifeq 84
goto 91
84: StackMap locals: org.jruby.anno.AnnotationBinder javax.lang.model.element.TypeElement java.lang.String java.io.ByteArrayOutputStream int int int java.util.Map java.util.Map java.util.Map java.util.Map int java.util.List java.util.Map java.util.Map$Entry java.util.Iterator javax.lang.model.element.ExecutableElement org.jruby.anno.JRubyMethod
StackMap stack:
aload 14
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast java.lang.CharSequence
astore 18
start local 18 85: aload 16
invokeinterface javax.lang.model.element.ExecutableElement.getSimpleName:()Ljavax/lang/model/element/Name;
aload 18
invokeinterface javax.lang.model.element.Name.equals:(Ljava/lang/Object;)Z
ifeq 88
86: aload 12
aload 16
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
87: goto 91
88: StackMap locals: java.lang.CharSequence
StackMap stack:
aload 13
aload 18
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.List
astore 19
start local 19 89: aload 19
ifnonnull 90
aload 13
aload 18
new java.util.ArrayList
dup
bipush 8
invokespecial java.util.ArrayList.<init>:(I)V
dup
astore 19
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
90: StackMap locals: java.util.List
StackMap stack:
aload 19
aload 16
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 19 end local 18 end local 17 end local 16 end local 14 91: StackMap locals: org.jruby.anno.AnnotationBinder javax.lang.model.element.TypeElement java.lang.String java.io.ByteArrayOutputStream int int int java.util.Map java.util.Map java.util.Map java.util.Map int java.util.List java.util.Map top java.util.Iterator
StackMap stack:
aload 15
invokeinterface java.util.Iterator.hasNext:()Z
ifne 80
92: aload 0
aload 7
invokevirtual org.jruby.anno.AnnotationBinder.processMethodDeclarations:(Ljava/util/Map;)V
93: aload 7
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 15
goto 105
StackMap locals:
StackMap stack:
94: aload 15
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 14
start local 14 95: aload 14
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast java.util.List
iconst_0
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast javax.lang.model.element.ExecutableElement
astore 16
start local 16 96: aload 16
ldc Lorg/jruby/anno/JRubyMethod;
invokeinterface javax.lang.model.element.ExecutableElement.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
checkcast org.jruby.anno.JRubyMethod
astore 17
start local 17 97: aload 17
invokeinterface org.jruby.anno.JRubyMethod.omit:()Z
ifeq 98
goto 105
98: StackMap locals: org.jruby.anno.AnnotationBinder javax.lang.model.element.TypeElement java.lang.String java.io.ByteArrayOutputStream int int int java.util.Map java.util.Map java.util.Map java.util.Map int java.util.List java.util.Map java.util.Map$Entry java.util.Iterator javax.lang.model.element.ExecutableElement org.jruby.anno.JRubyMethod
StackMap stack:
aload 14
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast java.lang.CharSequence
astore 18
start local 18 99: aload 16
invokeinterface javax.lang.model.element.ExecutableElement.getSimpleName:()Ljavax/lang/model/element/Name;
aload 18
invokeinterface javax.lang.model.element.Name.equals:(Ljava/lang/Object;)Z
ifeq 102
aload 16
ldc Lorg/jruby/anno/JRubyMethod;
invokeinterface javax.lang.model.element.ExecutableElement.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
checkcast org.jruby.anno.JRubyMethod
invokeinterface org.jruby.anno.JRubyMethod.name:()[Ljava/lang/String;
arraylength
iconst_1
if_icmpgt 102
100: aload 12
aload 16
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
101: goto 105
102: StackMap locals: java.lang.CharSequence
StackMap stack:
aload 13
aload 18
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.List
astore 19
start local 19 103: aload 19
ifnonnull 104
aload 13
aload 18
new java.util.ArrayList
dup
bipush 8
invokespecial java.util.ArrayList.<init>:(I)V
dup
astore 19
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
104: StackMap locals: java.util.List
StackMap stack:
aload 19
aload 16
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 19 end local 18 end local 17 end local 16 end local 14 105: StackMap locals: org.jruby.anno.AnnotationBinder javax.lang.model.element.TypeElement java.lang.String java.io.ByteArrayOutputStream int int int java.util.Map java.util.Map java.util.Map java.util.Map int java.util.List java.util.Map top java.util.Iterator
StackMap stack:
aload 15
invokeinterface java.util.Iterator.hasNext:()Z
ifne 94
106: aload 0
getfield org.jruby.anno.AnnotationBinder.out:Ljava/io/PrintStream;
ldc ""
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
107: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 14
start local 14 108: aload 14
aload 1
invokeinterface javax.lang.model.element.TypeElement.getQualifiedName:()Ljavax/lang/model/element/Name;
invokeinterface javax.lang.model.element.Name.toString:()Ljava/lang/String;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
109: aload 14
aload 0
aload 1
aload 13
invokevirtual org.jruby.anno.AnnotationBinder.getMethodMappings:(Ljavax/lang/model/element/TypeElement;Ljava/util/Map;)Ljava/util/List;
invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
pop
110: aload 14
aload 0
aload 1
aload 12
invokevirtual org.jruby.anno.AnnotationBinder.getSimpleMethodMappings:(Ljavax/lang/model/element/TypeElement;Ljava/util/List;)Ljava/util/List;
invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
pop
111: aload 0
getfield org.jruby.anno.AnnotationBinder.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc " runtime.addBoundMethods("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 14
invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
invokedynamic apply()Ljava/util/function/Function;
Bootstrap: 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;
Method arguments:
(Ljava/lang/Object;)Ljava/lang/Object;
org/jruby/anno/AnnotationBinder.lambda$0(Ljava/lang/String;)Ljava/lang/CharSequence; (6)
(Ljava/lang/String;)Ljava/lang/CharSequence;
invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
invokeinterface java.util.stream.Stream.toArray:()[Ljava/lang/Object;
invokestatic org.jruby.anno.AnnotationBinder.join:([Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc ");"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
112: aload 0
getfield org.jruby.anno.AnnotationBinder.out:Ljava/io/PrintStream;
ldc " }"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
113: aload 0
getfield org.jruby.anno.AnnotationBinder.out:Ljava/io/PrintStream;
ldc " static {"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
114: aload 9
115: aload 0
invokedynamic accept(Lorg/jruby/anno/AnnotationBinder;)Ljava/util/function/BiConsumer;
Bootstrap: 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;
Method arguments:
(Ljava/lang/Object;Ljava/lang/Object;)V
org/jruby/anno/AnnotationBinder.lambda$1(Ljava/lang/Integer;Ljava/lang/String;)V (7)
(Ljava/lang/Integer;Ljava/lang/String;)V
116: invokestatic org.jruby.anno.AnnotationHelper.populateMethodIndex:(Ljava/util/Map;Ljava/util/function/BiConsumer;)V
117: aload 10
118: aload 0
invokedynamic accept(Lorg/jruby/anno/AnnotationBinder;)Ljava/util/function/BiConsumer;
Bootstrap: 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;
Method arguments:
(Ljava/lang/Object;Ljava/lang/Object;)V
org/jruby/anno/AnnotationBinder.lambda$2(Ljava/lang/Integer;Ljava/lang/String;)V (7)
(Ljava/lang/Integer;Ljava/lang/String;)V
119: invokestatic org.jruby.anno.AnnotationHelper.populateMethodIndex:(Ljava/util/Map;Ljava/util/function/BiConsumer;)V
120: aload 0
getfield org.jruby.anno.AnnotationBinder.out:Ljava/io/PrintStream;
ldc " }"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
121: aload 0
getfield org.jruby.anno.AnnotationBinder.out:Ljava/io/PrintStream;
ldc "}"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
122: aload 0
getfield org.jruby.anno.AnnotationBinder.out:Ljava/io/PrintStream;
invokevirtual java.io.PrintStream.close:()V
123: aload 0
aconst_null
putfield org.jruby.anno.AnnotationBinder.out:Ljava/io/PrintStream;
124: new java.io.File
dup
ldc "target/generated-sources/org/jruby/gen/"
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
invokevirtual java.io.File.mkdirs:()Z
pop
125: new java.io.FileOutputStream
dup
new java.lang.StringBuilder
dup
ldc "target/generated-sources/org/jruby/gen/"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "$POPULATOR"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ".java"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.io.FileOutputStream.<init>:(Ljava/lang/String;)V
astore 15
start local 15 126: aload 15
aload 3
invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
invokevirtual java.io.FileOutputStream.write:([B)V
127: aload 15
invokevirtual java.io.FileOutputStream.close:()V
end local 15 end local 14 end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 128: goto 132
129: StackMap locals: org.jruby.anno.AnnotationBinder javax.lang.model.element.TypeElement
StackMap stack: java.io.IOException
astore 2
start local 2 130: aload 2
getstatic java.lang.System.err:Ljava/io/PrintStream;
invokevirtual java.io.IOException.printStackTrace:(Ljava/io/PrintStream;)V
131: iconst_1
invokestatic java.lang.System.exit:(I)V
end local 2 132: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 133 0 this Lorg/jruby/anno/AnnotationBinder;
0 133 1 cd Ljavax/lang/model/element/TypeElement;
2 3 2 innerType Ljavax/lang/model/element/TypeElement;
5 128 2 qualifiedName Ljava/lang/String;
8 128 3 bytes Ljava/io/ByteArrayOutputStream;
30 128 4 hasAnno Z
31 128 5 hasMeta Z
32 128 6 hasModule Z
34 40 7 method Ljavax/lang/model/element/ExecutableElement;
35 40 9 anno Lorg/jruby/anno/JRubyMethod;
49 128 7 annotatedMethods Ljava/util/Map<Ljava/lang/CharSequence;Ljava/util/List<Ljavax/lang/model/element/ExecutableElement;>;>;
50 128 8 staticAnnotatedMethods Ljava/util/Map<Ljava/lang/CharSequence;Ljava/util/List<Ljavax/lang/model/element/ExecutableElement;>;>;
51 128 9 readGroups Ljava/util/Map<Ljava/util/Set<Lorg/jruby/anno/FrameField;>;Ljava/util/List<Ljava/lang/String;>;>;
52 128 10 writeGroups Ljava/util/Map<Ljava/util/Set<Lorg/jruby/anno/FrameField;>;Ljava/util/List<Ljava/lang/String;>;>;
53 128 11 methodCount I
55 72 12 method Ljavax/lang/model/element/ExecutableElement;
56 72 14 anno Lorg/jruby/anno/JRubyMethod;
63 72 15 name Ljava/lang/CharSequence;
65 66 16 methodsHash Ljava/util/Map<Ljava/lang/CharSequence;Ljava/util/List<Ljavax/lang/model/element/ExecutableElement;>;>;
67 72 16 methodsHash Ljava/util/Map<Ljava/lang/CharSequence;Ljava/util/List<Ljavax/lang/model/element/ExecutableElement;>;>;
68 72 17 methodDescs Ljava/util/List<Ljavax/lang/model/element/ExecutableElement;>;
77 128 12 simpleNames Ljava/util/List<Ljavax/lang/model/element/ExecutableElement;>;
78 128 13 complexNames Ljava/util/Map<Ljava/lang/CharSequence;Ljava/util/List<Ljavax/lang/model/element/ExecutableElement;>;>;
81 91 14 entry Ljava/util/Map$Entry<Ljava/lang/CharSequence;Ljava/util/List<Ljavax/lang/model/element/ExecutableElement;>;>;
82 91 16 decl Ljavax/lang/model/element/ExecutableElement;
83 91 17 anno Lorg/jruby/anno/JRubyMethod;
85 91 18 rubyName Ljava/lang/CharSequence;
89 91 19 complex Ljava/util/List<Ljavax/lang/model/element/ExecutableElement;>;
95 105 14 entry Ljava/util/Map$Entry<Ljava/lang/CharSequence;Ljava/util/List<Ljavax/lang/model/element/ExecutableElement;>;>;
96 105 16 decl Ljavax/lang/model/element/ExecutableElement;
97 105 17 anno Lorg/jruby/anno/JRubyMethod;
99 105 18 rubyName Ljava/lang/CharSequence;
103 105 19 complex Ljava/util/List<Ljavax/lang/model/element/ExecutableElement;>;
108 128 14 args Ljava/util/List<Ljava/lang/String;>;
126 128 15 fos Ljava/io/FileOutputStream;
130 132 2 ex Ljava/io/IOException;
Exception table:
from to target type
4 6 129 Class java.io.IOException
7 42 129 Class java.io.IOException
43 74 129 Class java.io.IOException
75 128 129 Class java.io.IOException
MethodParameters:
Name Flags
cd
public void emitIndexCode(int, java.lang.String, java.lang.String);
descriptor: (ILjava/lang/String;Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield org.jruby.anno.AnnotationBinder.out:Ljava/io/PrintStream;
aload 3
iconst_2
anewarray java.lang.Object
dup
iconst_0
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
aload 2
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
1: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/anno/AnnotationBinder;
0 2 1 bits I
0 2 2 names Ljava/lang/String;
0 2 3 format Ljava/lang/String;
MethodParameters:
Name Flags
bits
names
format
public void processMethodDeclarations(java.util.Map<java.lang.CharSequence, java.util.List<javax.lang.model.element.ExecutableElement>>);
descriptor: (Ljava/util/Map;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 3
goto 7
StackMap locals: org.jruby.anno.AnnotationBinder java.util.Map top java.util.Iterator
StackMap stack:
1: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 2
start local 2 2: aload 2
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast java.util.List
astore 4
start local 4 3: aload 4
invokeinterface java.util.List.size:()I
iconst_1
if_icmpne 6
4: aload 0
aload 4
iconst_0
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast javax.lang.model.element.ExecutableElement
invokevirtual org.jruby.anno.AnnotationBinder.processMethodDeclaration:(Ljavax/lang/model/element/ExecutableElement;)V
5: goto 7
6: StackMap locals: org.jruby.anno.AnnotationBinder java.util.Map java.util.Map$Entry java.util.Iterator java.util.List
StackMap stack:
aload 0
aload 4
iconst_0
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast javax.lang.model.element.ExecutableElement
invokevirtual org.jruby.anno.AnnotationBinder.processMethodDeclarationMulti:(Ljavax/lang/model/element/ExecutableElement;)V
end local 4 end local 2 7: StackMap locals: org.jruby.anno.AnnotationBinder java.util.Map top java.util.Iterator
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
8: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/jruby/anno/AnnotationBinder;
0 9 1 declarations Ljava/util/Map<Ljava/lang/CharSequence;Ljava/util/List<Ljavax/lang/model/element/ExecutableElement;>;>;
2 7 2 entry Ljava/util/Map$Entry<Ljava/lang/CharSequence;Ljava/util/List<Ljavax/lang/model/element/ExecutableElement;>;>;
3 7 4 list Ljava/util/List<Ljavax/lang/model/element/ExecutableElement;>;
Signature: (Ljava/util/Map<Ljava/lang/CharSequence;Ljava/util/List<Ljavax/lang/model/element/ExecutableElement;>;>;)V
MethodParameters:
Name Flags
declarations
public void processMethodDeclaration(javax.lang.model.element.ExecutableElement);
descriptor: (Ljavax/lang/model/element/ExecutableElement;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=10, args_size=2
start local 0 start local 1 0: aload 1
ldc Lorg/jruby/anno/JRubyMethod;
invokeinterface javax.lang.model.element.ExecutableElement.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
checkcast org.jruby.anno.JRubyMethod
astore 2
start local 2 1: aload 2
ifnull 32
aload 0
getfield org.jruby.anno.AnnotationBinder.out:Ljava/io/PrintStream;
ifnull 32
2: aload 1
invokeinterface javax.lang.model.element.ExecutableElement.getModifiers:()Ljava/util/Set;
getstatic javax.lang.model.element.Modifier.STATIC:Ljavax/lang/model/element/Modifier;
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
istore 3
start local 3 3: aload 1
invokeinterface javax.lang.model.element.ExecutableElement.getEnclosingElement:()Ljavax/lang/model/element/Element;
checkcast javax.lang.model.element.TypeElement
invokestatic org.jruby.anno.AnnotationBinder.getActualQualifiedName:(Ljavax/lang/model/element/TypeElement;)Ljava/lang/CharSequence;
astore 4
start local 4 4: aload 1
invokeinterface javax.lang.model.element.ExecutableElement.getParameters:()Ljava/util/List;
invokestatic org.jruby.anno.AnnotationBinder.identifyParameters:(Ljava/util/List;)Lorg/jruby/anno/AnnotationBinder$ParametersInfo;
astore 5
start local 5 5: aload 1
aload 1
invokeinterface javax.lang.model.element.ExecutableElement.getParameters:()Ljava/util/List;
invokeinterface java.util.List.size:()I
aload 2
invokeinterface org.jruby.anno.JRubyMethod.optional:()I
aload 2
invokeinterface org.jruby.anno.JRubyMethod.rest:()Z
iload 3
aload 5
getfield org.jruby.anno.AnnotationBinder$ParametersInfo.hasContext:Z
aload 5
getfield org.jruby.anno.AnnotationBinder$ParametersInfo.hasBlock:Z
invokestatic org.jruby.anno.AnnotationBinder.calculateActualRequired:(Ljavax/lang/model/element/ExecutableElement;IIZZZZ)I
istore 6
start local 6 6: aload 1
invokeinterface javax.lang.model.element.ExecutableElement.getSimpleName:()Ljavax/lang/model/element/Name;
7: aload 4
8: iload 3
9: iload 6
10: aload 2
invokeinterface org.jruby.anno.JRubyMethod.optional:()I
11: iconst_0
12: aload 2
invokeinterface org.jruby.anno.JRubyMethod.frame:()Z
13: invokestatic org.jruby.util.CodegenUtils.getAnnotatedBindingClassName:(Ljavax/lang/model/element/Name;Ljava/lang/CharSequence;ZIIZZ)Ljava/lang/String;
astore 7
start local 7 14: aload 2
invokeinterface org.jruby.anno.JRubyMethod.meta:()Z
ifeq 15
ldc "singletonClass"
goto 16
StackMap locals: org.jruby.anno.AnnotationBinder javax.lang.model.element.ExecutableElement org.jruby.anno.JRubyMethod int java.lang.CharSequence org.jruby.anno.AnnotationBinder$ParametersInfo int java.lang.String
StackMap stack:
15: ldc "cls"
StackMap locals:
StackMap stack: java.lang.String
16: astore 8
start local 8 17: aload 2
invokeinterface org.jruby.anno.JRubyMethod.name:()[Ljava/lang/String;
aload 1
invokestatic org.jruby.anno.AnnotationBinder.getBaseName:([Ljava/lang/String;Ljavax/lang/model/element/ExecutableElement;)Ljava/lang/String;
astore 9
start local 9 18: aload 0
getfield org.jruby.anno.AnnotationBinder.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc " javaMethod = new "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 7
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "("
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 8
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ", Visibility."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokeinterface org.jruby.anno.JRubyMethod.visibility:()Lorg/jruby/runtime/Visibility;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc ", \""
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 9
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "\");"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
19: aload 0
getfield org.jruby.anno.AnnotationBinder.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc " populateMethod(javaMethod, "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
20: bipush 8
anewarray java.lang.Object
dup
iconst_0
aload 2
iload 6
invokestatic org.jruby.anno.AnnotationHelper.getArityValue:(Lorg/jruby/anno/JRubyMethod;I)I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
21: aload 1
invokeinterface javax.lang.model.element.ExecutableElement.getSimpleName:()Ljavax/lang/model/element/Name;
invokestatic org.jruby.anno.AnnotationBinder.quote:(Ljava/lang/Object;)Ljava/lang/CharSequence;
aastore
dup
iconst_2
22: iload 3
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
aastore
dup
iconst_3
23: aload 2
invokeinterface org.jruby.anno.JRubyMethod.notImplemented:()Z
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
aastore
dup
iconst_4
24: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
aload 1
invokeinterface javax.lang.model.element.ExecutableElement.getEnclosingElement:()Ljavax/lang/model/element/Element;
checkcast javax.lang.model.element.TypeElement
invokeinterface javax.lang.model.element.TypeElement.getQualifiedName:()Ljavax/lang/model/element/Name;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc ".class"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aastore
dup
iconst_5
25: aload 1
invokeinterface javax.lang.model.element.ExecutableElement.getSimpleName:()Ljavax/lang/model/element/Name;
invokestatic org.jruby.anno.AnnotationBinder.quote:(Ljava/lang/Object;)Ljava/lang/CharSequence;
aastore
dup
bipush 6
26: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
aload 1
invokeinterface javax.lang.model.element.ExecutableElement.getReturnType:()Ljavax/lang/model/type/TypeMirror;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc ".class"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aastore
dup
bipush 7
27: aload 5
getfield org.jruby.anno.AnnotationBinder$ParametersInfo.typeDecl:Ljava/lang/String;
aastore
28: invokestatic org.jruby.anno.AnnotationBinder.join:([Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
29: ldc ");"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
30: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
31: aload 0
aload 1
aload 2
invokevirtual org.jruby.anno.AnnotationBinder.generateMethodAddCalls:(Ljavax/lang/model/element/ExecutableElement;Lorg/jruby/anno/JRubyMethod;)V
end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 32: StackMap locals: org.jruby.anno.AnnotationBinder javax.lang.model.element.ExecutableElement org.jruby.anno.JRubyMethod
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 33 0 this Lorg/jruby/anno/AnnotationBinder;
0 33 1 method Ljavax/lang/model/element/ExecutableElement;
1 33 2 anno Lorg/jruby/anno/JRubyMethod;
3 32 3 isStatic Z
4 32 4 qualifiedName Ljava/lang/CharSequence;
5 32 5 info Lorg/jruby/anno/AnnotationBinder$ParametersInfo;
6 32 6 actualRequired I
14 32 7 annotatedBindingName Ljava/lang/String;
17 32 8 implClass Ljava/lang/String;
18 32 9 baseName Ljava/lang/String;
MethodParameters:
Name Flags
method
public void processMethodDeclarationMulti(javax.lang.model.element.ExecutableElement);
descriptor: (Ljavax/lang/model/element/ExecutableElement;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=10, args_size=2
start local 0 start local 1 0: aload 1
ldc Lorg/jruby/anno/JRubyMethod;
invokeinterface javax.lang.model.element.ExecutableElement.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
checkcast org.jruby.anno.JRubyMethod
astore 2
start local 2 1: aload 2
ifnull 32
aload 0
getfield org.jruby.anno.AnnotationBinder.out:Ljava/io/PrintStream;
ifnull 32
2: aload 1
invokeinterface javax.lang.model.element.ExecutableElement.getModifiers:()Ljava/util/Set;
getstatic javax.lang.model.element.Modifier.STATIC:Ljavax/lang/model/element/Modifier;
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
istore 3
start local 3 3: aload 1
invokeinterface javax.lang.model.element.ExecutableElement.getEnclosingElement:()Ljavax/lang/model/element/Element;
checkcast javax.lang.model.element.TypeElement
invokestatic org.jruby.anno.AnnotationBinder.getActualQualifiedName:(Ljavax/lang/model/element/TypeElement;)Ljava/lang/CharSequence;
astore 4
start local 4 4: aload 1
invokeinterface javax.lang.model.element.ExecutableElement.getParameters:()Ljava/util/List;
invokestatic org.jruby.anno.AnnotationBinder.identifyParameters:(Ljava/util/List;)Lorg/jruby/anno/AnnotationBinder$ParametersInfo;
astore 5
start local 5 5: aload 1
aload 1
invokeinterface javax.lang.model.element.ExecutableElement.getParameters:()Ljava/util/List;
invokeinterface java.util.List.size:()I
aload 2
invokeinterface org.jruby.anno.JRubyMethod.optional:()I
aload 2
invokeinterface org.jruby.anno.JRubyMethod.rest:()Z
iload 3
aload 5
getfield org.jruby.anno.AnnotationBinder$ParametersInfo.hasContext:Z
aload 5
getfield org.jruby.anno.AnnotationBinder$ParametersInfo.hasBlock:Z
invokestatic org.jruby.anno.AnnotationBinder.calculateActualRequired:(Ljavax/lang/model/element/ExecutableElement;IIZZZZ)I
istore 6
start local 6 6: aload 1
invokeinterface javax.lang.model.element.ExecutableElement.getSimpleName:()Ljavax/lang/model/element/Name;
7: aload 4
8: iload 3
9: iload 6
10: aload 2
invokeinterface org.jruby.anno.JRubyMethod.optional:()I
11: iconst_1
12: aload 2
invokeinterface org.jruby.anno.JRubyMethod.frame:()Z
13: invokestatic org.jruby.util.CodegenUtils.getAnnotatedBindingClassName:(Ljavax/lang/model/element/Name;Ljava/lang/CharSequence;ZIIZZ)Ljava/lang/String;
astore 7
start local 7 14: aload 2
invokeinterface org.jruby.anno.JRubyMethod.meta:()Z
ifeq 15
ldc "singletonClass"
goto 16
StackMap locals: org.jruby.anno.AnnotationBinder javax.lang.model.element.ExecutableElement org.jruby.anno.JRubyMethod int java.lang.CharSequence org.jruby.anno.AnnotationBinder$ParametersInfo int java.lang.String
StackMap stack:
15: ldc "cls"
StackMap locals:
StackMap stack: java.lang.String
16: astore 8
start local 8 17: aload 2
invokeinterface org.jruby.anno.JRubyMethod.name:()[Ljava/lang/String;
aload 1
invokestatic org.jruby.anno.AnnotationBinder.getBaseName:([Ljava/lang/String;Ljavax/lang/model/element/ExecutableElement;)Ljava/lang/String;
astore 9
start local 9 18: aload 0
getfield org.jruby.anno.AnnotationBinder.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc " javaMethod = new "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 7
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "("
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 8
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ", Visibility."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokeinterface org.jruby.anno.JRubyMethod.visibility:()Lorg/jruby/runtime/Visibility;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc ", \""
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 9
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "\");"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
19: aload 0
getfield org.jruby.anno.AnnotationBinder.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc " populateMethod(javaMethod, "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
20: bipush 8
anewarray java.lang.Object
dup
iconst_0
iconst_m1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
21: aload 1
invokeinterface javax.lang.model.element.ExecutableElement.getSimpleName:()Ljavax/lang/model/element/Name;
invokestatic org.jruby.anno.AnnotationBinder.quote:(Ljava/lang/Object;)Ljava/lang/CharSequence;
aastore
dup
iconst_2
22: iload 3
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
aastore
dup
iconst_3
23: aload 2
invokeinterface org.jruby.anno.JRubyMethod.notImplemented:()Z
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
aastore
dup
iconst_4
24: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
aload 1
invokeinterface javax.lang.model.element.ExecutableElement.getEnclosingElement:()Ljavax/lang/model/element/Element;
checkcast javax.lang.model.element.TypeElement
invokeinterface javax.lang.model.element.TypeElement.getQualifiedName:()Ljavax/lang/model/element/Name;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc ".class"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aastore
dup
iconst_5
25: aload 1
invokeinterface javax.lang.model.element.ExecutableElement.getSimpleName:()Ljavax/lang/model/element/Name;
invokestatic org.jruby.anno.AnnotationBinder.quote:(Ljava/lang/Object;)Ljava/lang/CharSequence;
aastore
dup
bipush 6
26: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
aload 1
invokeinterface javax.lang.model.element.ExecutableElement.getReturnType:()Ljavax/lang/model/type/TypeMirror;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc ".class"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aastore
dup
bipush 7
27: aload 5
getfield org.jruby.anno.AnnotationBinder$ParametersInfo.typeDecl:Ljava/lang/String;
aastore
28: invokestatic org.jruby.anno.AnnotationBinder.join:([Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
29: ldc ");"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
30: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
31: aload 0
aload 1
aload 2
invokevirtual org.jruby.anno.AnnotationBinder.generateMethodAddCalls:(Ljavax/lang/model/element/ExecutableElement;Lorg/jruby/anno/JRubyMethod;)V
end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 32: StackMap locals: org.jruby.anno.AnnotationBinder javax.lang.model.element.ExecutableElement org.jruby.anno.JRubyMethod
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 33 0 this Lorg/jruby/anno/AnnotationBinder;
0 33 1 method Ljavax/lang/model/element/ExecutableElement;
1 33 2 anno Lorg/jruby/anno/JRubyMethod;
3 32 3 isStatic Z
4 32 4 qualifiedName Ljava/lang/CharSequence;
5 32 5 info Lorg/jruby/anno/AnnotationBinder$ParametersInfo;
6 32 6 actualRequired I
14 32 7 annotatedBindingName Ljava/lang/String;
17 32 8 implClass Ljava/lang/String;
18 32 9 baseName Ljava/lang/String;
MethodParameters:
Name Flags
method
private static org.jruby.anno.AnnotationBinder$ParametersInfo identifyParameters(java.util.List<? extends javax.lang.model.element.VariableElement>);
descriptor: (Ljava/util/List;)Lorg/jruby/anno/AnnotationBinder$ParametersInfo;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=11, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: iconst_0
istore 2
start local 2 2: iconst_0
istore 3
start local 3 3: aload 0
invokeinterface java.util.List.size:()I
istore 4
start local 4 4: iload 4
ifle 6
aload 0
iconst_0
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast javax.lang.model.element.VariableElement
invokeinterface javax.lang.model.element.VariableElement.asType:()Ljavax/lang/model/type/TypeMirror;
invokeinterface javax.lang.model.type.TypeMirror.toString:()Ljava/lang/String;
ldc "org.jruby.runtime.ThreadContext"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 6
5: iconst_1
istore 1
iinc 3 1
6: StackMap locals: java.util.List int int int int
StackMap stack:
iload 4
ifle 8
aload 0
iload 4
iconst_1
isub
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast javax.lang.model.element.VariableElement
invokeinterface javax.lang.model.element.VariableElement.asType:()Ljavax/lang/model/type/TypeMirror;
invokeinterface javax.lang.model.type.TypeMirror.toString:()Ljava/lang/String;
ldc "org.jruby.runtime.Block"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 8
7: iconst_1
istore 2
iinc 4 -1
8: StackMap locals:
StackMap stack:
iconst_1
istore 5
start local 5 9: iconst_0
istore 6
start local 6 10: iload 4
iload 3
isub
anewarray javax.lang.model.type.TypeMirror
astore 7
start local 7 11: iconst_0
istore 8
start local 8 12: goto 20
13: StackMap locals: java.util.List int int int int int int javax.lang.model.type.TypeMirror[] int
StackMap stack:
aload 7
iload 8
aload 0
iload 3
iload 8
iadd
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast javax.lang.model.element.VariableElement
invokeinterface javax.lang.model.element.VariableElement.asType:()Ljavax/lang/model/type/TypeMirror;
aastore
14: aload 7
iload 8
aaload
invokeinterface javax.lang.model.type.TypeMirror.toString:()Ljava/lang/String;
ldc "org.jruby.runtime.builtin.IRubyObject"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifne 17
15: iconst_0
istore 5
16: goto 21
17: StackMap locals:
StackMap stack:
aload 7
iload 8
aaload
invokeinterface javax.lang.model.type.TypeMirror.toString:()Ljava/lang/String;
ldc "[]"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 19
18: iconst_1
istore 6
19: StackMap locals:
StackMap stack:
iinc 8 1
StackMap locals:
StackMap stack:
20: iload 8
aload 7
arraylength
if_icmplt 13
end local 8 21: StackMap locals:
StackMap stack:
iload 5
ifeq 30
22: new java.util.StringJoiner
dup
ldc "_"
invokespecial java.util.StringJoiner.<init>:(Ljava/lang/CharSequence;)V
astore 8
start local 8 23: iload 1
ifeq 24
aload 8
ldc "CONTEXT"
invokevirtual java.util.StringJoiner.add:(Ljava/lang/CharSequence;)Ljava/util/StringJoiner;
pop
24: StackMap locals: java.util.StringJoiner
StackMap stack:
aload 8
new java.lang.StringBuilder
dup
ldc "ARG"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 6
ifeq 25
aload 7
arraylength
iconst_1
isub
goto 26
StackMap locals: java.util.List int int int int int int javax.lang.model.type.TypeMirror[] java.util.StringJoiner
StackMap stack: java.util.StringJoiner java.lang.StringBuilder
25: aload 7
arraylength
StackMap locals: java.util.List int int int int int int javax.lang.model.type.TypeMirror[] java.util.StringJoiner
StackMap stack: java.util.StringJoiner java.lang.StringBuilder int
26: invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.util.StringJoiner.add:(Ljava/lang/CharSequence;)Ljava/util/StringJoiner;
pop
27: iload 6
ifeq 28
aload 8
ldc "ARY"
invokevirtual java.util.StringJoiner.add:(Ljava/lang/CharSequence;)Ljava/util/StringJoiner;
pop
28: StackMap locals:
StackMap stack:
iload 2
ifeq 29
aload 8
ldc "BLOCK"
invokevirtual java.util.StringJoiner.add:(Ljava/lang/CharSequence;)Ljava/util/StringJoiner;
pop
29: StackMap locals:
StackMap stack:
new org.jruby.anno.AnnotationBinder$ParametersInfo
dup
aload 8
invokevirtual java.util.StringJoiner.toString:()Ljava/lang/String;
iload 1
iload 2
invokespecial org.jruby.anno.AnnotationBinder$ParametersInfo.<init>:(Ljava/lang/String;ZZ)V
areturn
end local 8 30: StackMap locals:
StackMap stack:
new java.util.StringJoiner
dup
ldc ", "
invokespecial java.util.StringJoiner.<init>:(Ljava/lang/CharSequence;)V
astore 8
start local 8 31: aload 0
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 10
goto 34
StackMap locals: java.util.List int int int int int int javax.lang.model.type.TypeMirror[] java.util.StringJoiner top java.util.Iterator
StackMap stack:
32: aload 10
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast javax.lang.model.element.VariableElement
astore 9
start local 9 33: aload 8
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
aload 9
invokeinterface javax.lang.model.element.VariableElement.asType:()Ljavax/lang/model/type/TypeMirror;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc ".class"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.util.StringJoiner.add:(Ljava/lang/CharSequence;)Ljava/util/StringJoiner;
pop
end local 9 34: StackMap locals:
StackMap stack:
aload 10
invokeinterface java.util.Iterator.hasNext:()Z
ifne 32
35: new org.jruby.anno.AnnotationBinder$ParametersInfo
dup
new java.lang.StringBuilder
dup
ldc "new Class[] { "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 8
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " }"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iload 1
iload 2
invokespecial org.jruby.anno.AnnotationBinder$ParametersInfo.<init>:(Ljava/lang/String;ZZ)V
areturn
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 36 0 parameters Ljava/util/List<+Ljavax/lang/model/element/VariableElement;>;
1 36 1 hasContext Z
2 36 2 hasBlock Z
3 36 3 s I
4 36 4 l I
9 36 5 allIRubyObject Z
10 36 6 aryIRubyObject Z
11 36 7 types [Ljavax/lang/model/type/TypeMirror;
12 21 8 i I
23 30 8 constant Ljava/util/StringJoiner;
31 36 8 joiner Ljava/util/StringJoiner;
33 34 9 parameter Ljavax/lang/model/element/VariableElement;
Signature: (Ljava/util/List<+Ljavax/lang/model/element/VariableElement;>;)Lorg/jruby/anno/AnnotationBinder$ParametersInfo;
MethodParameters:
Name Flags
parameters
private java.util.List<java.lang.String> getMethodMappings(javax.lang.model.element.TypeElement, java.util.Map<java.lang.CharSequence, java.util.List<javax.lang.model.element.ExecutableElement>>);
descriptor: (Ljavax/lang/model/element/TypeElement;Ljava/util/Map;)Ljava/util/List;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=8, args_size=3
start local 0 start local 1 start local 2 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 3
start local 3 1: aload 2
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 5
goto 9
StackMap locals: org.jruby.anno.AnnotationBinder javax.lang.model.element.TypeElement java.util.Map java.util.List top java.util.Iterator
StackMap stack:
2: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 4
start local 4 3: aload 4
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast java.util.List
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 6
start local 6 4: goto 8
5: StackMap locals: org.jruby.anno.AnnotationBinder javax.lang.model.element.TypeElement java.util.Map java.util.List java.util.Map$Entry java.util.Iterator java.util.Iterator
StackMap stack:
aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast javax.lang.model.element.ExecutableElement
astore 7
start local 7 6: aload 3
aload 7
invokeinterface javax.lang.model.element.ExecutableElement.getSimpleName:()Ljavax/lang/model/element/Name;
invokeinterface javax.lang.model.element.Name.toString:()Ljava/lang/String;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
7: aload 3
aload 4
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast java.lang.CharSequence
invokeinterface java.lang.CharSequence.toString:()Ljava/lang/String;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 7 8: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
end local 6 end local 4 9: StackMap locals: org.jruby.anno.AnnotationBinder javax.lang.model.element.TypeElement java.util.Map java.util.List top java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
10: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/jruby/anno/AnnotationBinder;
0 11 1 type Ljavax/lang/model/element/TypeElement;
0 11 2 complexNames Ljava/util/Map<Ljava/lang/CharSequence;Ljava/util/List<Ljavax/lang/model/element/ExecutableElement;>;>;
1 11 3 mappings Ljava/util/List<Ljava/lang/String;>;
3 9 4 entry Ljava/util/Map$Entry<Ljava/lang/CharSequence;Ljava/util/List<Ljavax/lang/model/element/ExecutableElement;>;>;
4 9 6 iterator Ljava/util/Iterator<Ljavax/lang/model/element/ExecutableElement;>;
6 8 7 elt Ljavax/lang/model/element/ExecutableElement;
Signature: (Ljavax/lang/model/element/TypeElement;Ljava/util/Map<Ljava/lang/CharSequence;Ljava/util/List<Ljavax/lang/model/element/ExecutableElement;>;>;)Ljava/util/List<Ljava/lang/String;>;
MethodParameters:
Name Flags
type
complexNames
private java.util.List<java.lang.String> getSimpleMethodMappings(javax.lang.model.element.TypeElement, java.util.List<javax.lang.model.element.ExecutableElement>);
descriptor: (Ljavax/lang/model/element/TypeElement;Ljava/util/List;)Ljava/util/List;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=7, args_size=3
start local 0 start local 1 start local 2 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 3
start local 3 1: aload 2
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 5
goto 6
StackMap locals: org.jruby.anno.AnnotationBinder javax.lang.model.element.TypeElement java.util.List java.util.List top java.util.Iterator
StackMap stack:
2: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast javax.lang.model.element.ExecutableElement
astore 4
start local 4 3: aload 4
invokeinterface javax.lang.model.element.ExecutableElement.getSimpleName:()Ljavax/lang/model/element/Name;
invokeinterface javax.lang.model.element.Name.toString:()Ljava/lang/String;
astore 6
start local 6 4: aload 3
aload 6
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
5: aload 3
aload 6
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 6 end local 4 6: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
7: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/jruby/anno/AnnotationBinder;
0 8 1 type Ljavax/lang/model/element/TypeElement;
0 8 2 simpleNames Ljava/util/List<Ljavax/lang/model/element/ExecutableElement;>;
1 8 3 mappings Ljava/util/List<Ljava/lang/String;>;
3 6 4 elt Ljavax/lang/model/element/ExecutableElement;
4 6 6 name Ljava/lang/String;
Signature: (Ljavax/lang/model/element/TypeElement;Ljava/util/List<Ljavax/lang/model/element/ExecutableElement;>;)Ljava/util/List<Ljava/lang/String;>;
MethodParameters:
Name Flags
type
simpleNames
private static java.lang.CharSequence getActualQualifiedName(javax.lang.model.element.TypeElement);
descriptor: (Ljavax/lang/model/element/TypeElement;)Ljava/lang/CharSequence;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokeinterface javax.lang.model.element.TypeElement.getNestingKind:()Ljavax/lang/model/element/NestingKind;
getstatic javax.lang.model.element.NestingKind.MEMBER:Ljavax/lang/model/element/NestingKind;
if_acmpne 2
1: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
aload 0
invokeinterface javax.lang.model.element.TypeElement.getEnclosingElement:()Ljavax/lang/model/element/Element;
checkcast javax.lang.model.element.TypeElement
invokestatic org.jruby.anno.AnnotationBinder.getActualQualifiedName:(Ljavax/lang/model/element/TypeElement;)Ljava/lang/CharSequence;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "$"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
invokeinterface javax.lang.model.element.TypeElement.getSimpleName:()Ljavax/lang/model/element/Name;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
2: StackMap locals:
StackMap stack:
aload 0
invokeinterface javax.lang.model.element.TypeElement.getQualifiedName:()Ljavax/lang/model/element/Name;
invokeinterface javax.lang.model.element.Name.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 elem Ljavax/lang/model/element/TypeElement;
MethodParameters:
Name Flags
elem
private static java.lang.StringBuilder join(java.lang.Object[]);
descriptor: ([Ljava/lang/Object;)Ljava/lang/StringBuilder;
flags: (0x008a) ACC_PRIVATE, ACC_STATIC, ACC_VARARGS
Code:
stack=2, locals=1, args_size=1
start local 0 0: ldc ", "
aload 0
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
invokestatic org.jruby.anno.AnnotationBinder.join:(Ljava/lang/String;Ljava/lang/Iterable;)Ljava/lang/StringBuilder;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 vals [Ljava/lang/Object;
MethodParameters:
Name Flags
vals final
private static java.lang.StringBuilder join(java.lang.String, java.lang.Iterable<?>);
descriptor: (Ljava/lang/String;Ljava/lang/Iterable;)Ljava/lang/StringBuilder;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=5, args_size=2
start local 0 start local 1 0: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 2
start local 2 1: aload 1
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
astore 4
goto 5
StackMap locals: java.lang.String java.lang.Iterable java.lang.StringBuilder top java.util.Iterator
StackMap stack:
2: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
astore 3
start local 3 3: aload 2
invokevirtual java.lang.StringBuilder.length:()I
ifle 4
aload 2
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
4: StackMap locals: java.lang.String java.lang.Iterable java.lang.StringBuilder java.lang.Object java.util.Iterator
StackMap stack:
aload 2
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
pop
end local 3 5: StackMap locals: java.lang.String java.lang.Iterable java.lang.StringBuilder top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
6: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 sep Ljava/lang/String;
0 7 1 names Ljava/lang/Iterable<*>;
1 7 2 str Ljava/lang/StringBuilder;
3 5 3 name Ljava/lang/Object;
Signature: (Ljava/lang/String;Ljava/lang/Iterable<*>;)Ljava/lang/StringBuilder;
MethodParameters:
Name Flags
sep final
names final
private static java.lang.CharSequence quote(java.lang.Object);
descriptor: (Ljava/lang/Object;)Ljava/lang/CharSequence;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
bipush 34
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
bipush 34
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 name Ljava/lang/Object;
MethodParameters:
Name Flags
name final
private static int calculateActualRequired(javax.lang.model.element.ExecutableElement, int, int, boolean, boolean, boolean, boolean);
descriptor: (Ljavax/lang/model/element/ExecutableElement;IIZZZZ)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=8, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: iload 1
istore 7
start local 7 1: iload 7
ifne 2
iconst_0
ireturn
2: StackMap locals: int
StackMap stack:
iload 4
ifeq 3
iinc 7 -1
3: StackMap locals:
StackMap stack:
iload 5
ifeq 4
iinc 7 -1
4: StackMap locals:
StackMap stack:
iload 6
ifeq 5
iinc 7 -1
5: StackMap locals:
StackMap stack:
iload 2
ifne 7
iload 3
ifne 7
6: iload 7
ireturn
7: StackMap locals:
StackMap stack:
iinc 7 -1
8: iload 7
ifeq 12
9: new java.lang.RuntimeException
dup
new java.lang.StringBuilder
dup
ldc "Combining specific args with IRubyObject[] is not yet supported: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
10: aload 0
invokeinterface javax.lang.model.element.ExecutableElement.getEnclosingElement:()Ljavax/lang/model/element/Element;
checkcast javax.lang.model.element.TypeElement
invokeinterface javax.lang.model.element.TypeElement.getQualifiedName:()Ljavax/lang/model/element/Name;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
11: invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
12: StackMap locals:
StackMap stack:
iload 7
ireturn
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 method Ljavax/lang/model/element/ExecutableElement;
0 13 1 paramsLength I
0 13 2 optional I
0 13 3 rest Z
0 13 4 isStatic Z
0 13 5 hasContext Z
0 13 6 hasBlock Z
1 13 7 args I
MethodParameters:
Name Flags
method
paramsLength
optional
rest
isStatic
hasContext
hasBlock
public void generateMethodAddCalls(javax.lang.model.element.ExecutableElement, org.jruby.anno.JRubyMethod);
descriptor: (Ljavax/lang/model/element/ExecutableElement;Lorg/jruby/anno/JRubyMethod;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
invokeinterface org.jruby.anno.JRubyMethod.meta:()Z
aload 2
invokeinterface org.jruby.anno.JRubyMethod.module:()Z
aload 2
invokeinterface org.jruby.anno.JRubyMethod.name:()[Ljava/lang/String;
aload 2
invokeinterface org.jruby.anno.JRubyMethod.alias:()[Ljava/lang/String;
invokevirtual org.jruby.anno.AnnotationBinder.generateMethodAddCalls:(Ljavax/lang/model/element/ExecutableElement;ZZ[Ljava/lang/String;[Ljava/lang/String;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/anno/AnnotationBinder;
0 2 1 md Ljavax/lang/model/element/ExecutableElement;
0 2 2 anno Lorg/jruby/anno/JRubyMethod;
MethodParameters:
Name Flags
md
anno
private void generateMethodAddCalls(javax.lang.model.element.ExecutableElement, boolean, boolean, java.lang.String[], java.lang.String[]);
descriptor: (Ljavax/lang/model/element/ExecutableElement;ZZ[Ljava/lang/String;[Ljava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: iload 2
ifeq 3
1: aload 0
ldc "javaMethod"
ldc "singletonClass"
aload 4
aload 5
aload 1
invokevirtual org.jruby.anno.AnnotationBinder.defineMethodOnClass:(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;Ljavax/lang/model/element/ExecutableElement;)V
2: goto 7
3: StackMap locals:
StackMap stack:
aload 0
ldc "javaMethod"
ldc "cls"
aload 4
aload 5
aload 1
invokevirtual org.jruby.anno.AnnotationBinder.defineMethodOnClass:(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;Ljavax/lang/model/element/ExecutableElement;)V
4: iload 3
ifeq 7
5: aload 0
getfield org.jruby.anno.AnnotationBinder.out:Ljava/io/PrintStream;
ldc " moduleMethod = populateModuleMethod(cls, javaMethod);"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
6: aload 0
ldc "moduleMethod"
ldc "singletonClass"
aload 4
aload 5
aload 1
invokevirtual org.jruby.anno.AnnotationBinder.defineMethodOnClass:(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;Ljavax/lang/model/element/ExecutableElement;)V
7: StackMap locals:
StackMap stack:
return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/jruby/anno/AnnotationBinder;
0 8 1 md Ljavax/lang/model/element/ExecutableElement;
0 8 2 meta Z
0 8 3 module Z
0 8 4 names [Ljava/lang/String;
0 8 5 aliases [Ljava/lang/String;
MethodParameters:
Name Flags
md
meta final
module final
names
aliases
private void defineMethodOnClass(java.lang.String, java.lang.String, java.lang.String[], java.lang.String[], javax.lang.model.element.ExecutableElement);
descriptor: (Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;Ljavax/lang/model/element/ExecutableElement;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=11, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 3
aload 5
invokestatic org.jruby.anno.AnnotationBinder.getBaseName:([Ljava/lang/String;Ljavax/lang/model/element/ExecutableElement;)Ljava/lang/String;
astore 6
start local 6 1: aload 0
getfield org.jruby.anno.AnnotationBinder.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc " aliasedMethod = "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ".putMethod(runtime, \""
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 6
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "\", "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ");"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
2: aload 3
arraylength
ifle 9
3: aload 3
dup
astore 10
arraylength
istore 9
iconst_0
istore 8
goto 8
StackMap locals: org.jruby.anno.AnnotationBinder java.lang.String java.lang.String java.lang.String[] java.lang.String[] javax.lang.model.element.ExecutableElement java.lang.CharSequence top int int java.lang.String[]
StackMap stack:
4: aload 10
iload 8
aaload
astore 7
start local 7 5: aload 7
aload 6
invokevirtual java.lang.String.contentEquals:(Ljava/lang/CharSequence;)Z
ifne 7
6: aload 0
getfield org.jruby.anno.AnnotationBinder.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc " "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ".putMethod(runtime, \""
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 7
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "\", "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ");"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
end local 7 7: StackMap locals:
StackMap stack:
iinc 8 1
StackMap locals:
StackMap stack:
8: iload 8
iload 9
if_icmplt 4
9: StackMap locals: org.jruby.anno.AnnotationBinder java.lang.String java.lang.String java.lang.String[] java.lang.String[] javax.lang.model.element.ExecutableElement java.lang.CharSequence
StackMap stack:
aload 4
arraylength
ifle 15
10: aload 4
dup
astore 10
arraylength
istore 9
iconst_0
istore 8
goto 14
StackMap locals: org.jruby.anno.AnnotationBinder java.lang.String java.lang.String java.lang.String[] java.lang.String[] javax.lang.model.element.ExecutableElement java.lang.CharSequence top int int java.lang.String[]
StackMap stack:
11: aload 10
iload 8
aaload
astore 7
start local 7 12: aload 0
getfield org.jruby.anno.AnnotationBinder.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc " "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ".putAlias(\""
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 7
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "\", aliasedMethod, \""
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 6
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "\");"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
end local 7 13: iinc 8 1
StackMap locals:
StackMap stack:
14: iload 8
iload 9
if_icmplt 11
15: StackMap locals: org.jruby.anno.AnnotationBinder java.lang.String java.lang.String java.lang.String[] java.lang.String[] javax.lang.model.element.ExecutableElement java.lang.CharSequence
StackMap stack:
return
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lorg/jruby/anno/AnnotationBinder;
0 16 1 methodVar Ljava/lang/String;
0 16 2 classVar Ljava/lang/String;
0 16 3 names [Ljava/lang/String;
0 16 4 aliases [Ljava/lang/String;
0 16 5 md Ljavax/lang/model/element/ExecutableElement;
1 16 6 baseName Ljava/lang/CharSequence;
5 7 7 name Ljava/lang/String;
12 13 7 alias Ljava/lang/String;
MethodParameters:
Name Flags
methodVar
classVar
names final
aliases final
md
public static void checkForThrows(javax.lang.model.element.TypeElement, javax.lang.model.element.ExecutableElement);
descriptor: (Ljavax/lang/model/element/TypeElement;Ljavax/lang/model/element/ExecutableElement;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 2
start local 2 1: aload 1
invokeinterface javax.lang.model.element.ExecutableElement.getThrownTypes:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 6
StackMap locals: javax.lang.model.element.TypeElement javax.lang.model.element.ExecutableElement java.util.List top java.util.Iterator
StackMap stack:
2: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast javax.lang.model.type.TypeMirror
astore 3
start local 3 3: aload 3
invokeinterface javax.lang.model.type.TypeMirror.toString:()Ljava/lang/String;
astore 5
start local 5 4: aload 5
ldc "org.jruby.exceptions.RaiseException"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 6
5: aload 2
aload 5
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 5 end local 3 6: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
7: aload 2
invokeinterface java.util.List.size:()I
ifle 9
8: new java.lang.StringBuilder
dup
ldc "method "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " should not throw exceptions: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ", "
aload 2
invokestatic org.jruby.anno.AnnotationBinder.join:(Ljava/lang/String;Ljava/lang/Iterable;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic org.jruby.anno.AnnotationBinder.warn:(Ljava/lang/CharSequence;)V
9: StackMap locals: javax.lang.model.element.TypeElement javax.lang.model.element.ExecutableElement java.util.List
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 type Ljavax/lang/model/element/TypeElement;
0 10 1 method Ljavax/lang/model/element/ExecutableElement;
1 10 2 exNames Ljava/util/List<Ljava/lang/String;>;
3 6 3 ex Ljavax/lang/model/type/TypeMirror;
4 6 5 name Ljava/lang/String;
MethodParameters:
Name Flags
type
method
public static java.lang.String getBaseName(java.lang.String[], javax.lang.model.element.ExecutableElement);
descriptor: ([Ljava/lang/String;Ljavax/lang/model/element/ExecutableElement;)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
arraylength
ifne 2
1: aload 1
invokeinterface javax.lang.model.element.ExecutableElement.getSimpleName:()Ljavax/lang/model/element/Name;
invokeinterface javax.lang.model.element.Name.toString:()Ljava/lang/String;
areturn
2: StackMap locals:
StackMap stack:
aload 0
iconst_0
aaload
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 names [Ljava/lang/String;
0 3 1 md Ljavax/lang/model/element/ExecutableElement;
MethodParameters:
Name Flags
names
md
private static void warn(java.lang.CharSequence);
descriptor: (Ljava/lang/CharSequence;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: getstatic java.lang.System.err:Ljava/io/PrintStream;
aload 0
invokevirtual java.io.PrintStream.println:(Ljava/lang/Object;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 msg Ljava/lang/CharSequence;
MethodParameters:
Name Flags
msg
private static java.lang.CharSequence lambda$0(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/CharSequence;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokestatic org.jruby.anno.AnnotationBinder.quote:(Ljava/lang/Object;)Ljava/lang/CharSequence;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 str Ljava/lang/String;
private void lambda$1(java.lang.Integer, java.lang.String);
descriptor: (Ljava/lang/Integer;Ljava/lang/String;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokevirtual java.lang.Integer.intValue:()I
aload 2
ldc " MethodIndex.addMethodReadFieldsPacked(%d, \"%s\");"
invokevirtual org.jruby.anno.AnnotationBinder.emitIndexCode:(ILjava/lang/String;Ljava/lang/String;)V
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/anno/AnnotationBinder;
0 1 1 bits Ljava/lang/Integer;
0 1 2 names Ljava/lang/String;
private void lambda$2(java.lang.Integer, java.lang.String);
descriptor: (Ljava/lang/Integer;Ljava/lang/String;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokevirtual java.lang.Integer.intValue:()I
aload 2
ldc " MethodIndex.addMethodWriteFieldsPacked(%d, \"%s\");"
invokevirtual org.jruby.anno.AnnotationBinder.emitIndexCode:(ILjava/lang/String;Ljava/lang/String;)V
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/anno/AnnotationBinder;
0 1 1 bits Ljava/lang/Integer;
0 1 2 names Ljava/lang/String;
}
SourceFile: "AnnotationBinder.java"
NestMembers:
org.jruby.anno.AnnotationBinder$ParametersInfo
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public abstract Entry = java.util.Map$Entry of java.util.Map
private ParametersInfo = org.jruby.anno.AnnotationBinder$ParametersInfo of org.jruby.anno.AnnotationBinder
RuntimeVisibleAnnotations:
javax.annotation.processing.SupportedAnnotationTypes(value = {"org.jruby.anno.JRubyMethod"})