public class org.jruby.java.proxies.JavaProxy$ClassMethods
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.jruby.java.proxies.JavaProxy$ClassMethods
  super_class: java.lang.Object
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.java.proxies.JavaProxy$ClassMethods this
         0: .line 557
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.jruby.java.proxies.JavaProxy$ClassMethods this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/java/proxies/JavaProxy$ClassMethods;

  public static org.jruby.runtime.builtin.IRubyObject const_missing(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject self
        start local 2 // org.jruby.runtime.builtin.IRubyObject name
         0: .line 562
            aload 0 /* context */
            aload 1 /* self */
            checkcast org.jruby.RubyModule
            aload 2 /* name */
            invokestatic org.jruby.javasupport.Java.get_inner_class:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyModule;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject name
        end local 1 // org.jruby.runtime.builtin.IRubyObject self
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  context  Lorg/jruby/runtime/ThreadContext;
            0    1     1     self  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     2     name  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"const_missing"}, required = 1, meta = true, visibility = org.jruby.runtime.Visibility.PRIVATE:Lorg/jruby/runtime/Visibility;, frame = true)
    MethodParameters:
         Name  Flags
      context  
      self     
      name     

  public static org.jruby.runtime.builtin.IRubyObject java_method(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject proxyClass
        start local 2 // org.jruby.runtime.builtin.IRubyObject rubyName
         0: .line 567
            aload 2 /* rubyName */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.asJavaString:()Ljava/lang/String;
            astore 3 /* name */
        start local 3 // java.lang.String name
         1: .line 569
            aload 0 /* context */
            aload 1 /* proxyClass */
            aload 3 /* name */
            iconst_0
            anewarray java.lang.Class
            invokestatic org.jruby.java.proxies.JavaProxy$ClassMethods.getRubyMethod:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;[Ljava/lang/Class;)Lorg/jruby/AbstractRubyMethod;
            areturn
        end local 3 // java.lang.String name
        end local 2 // org.jruby.runtime.builtin.IRubyObject rubyName
        end local 1 // org.jruby.runtime.builtin.IRubyObject proxyClass
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0     context  Lorg/jruby/runtime/ThreadContext;
            0    2     1  proxyClass  Lorg/jruby/runtime/builtin/IRubyObject;
            0    2     2    rubyName  Lorg/jruby/runtime/builtin/IRubyObject;
            1    2     3        name  Ljava/lang/String;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(meta = true)
    MethodParameters:
            Name  Flags
      context     
      proxyClass  
      rubyName    

  public static org.jruby.runtime.builtin.IRubyObject java_method(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=4
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject proxyClass
        start local 2 // org.jruby.runtime.builtin.IRubyObject rubyName
        start local 3 // org.jruby.runtime.builtin.IRubyObject argTypes
         0: .line 574
            aload 2 /* rubyName */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.asJavaString:()Ljava/lang/String;
            astore 4 /* name */
        start local 4 // java.lang.String name
         1: .line 575
            aload 3 /* argTypes */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToArray:()Lorg/jruby/RubyArray;
            astore 5 /* argTypesAry */
        start local 5 // org.jruby.RubyArray argTypesAry
         2: .line 576
            aload 5 /* argTypesAry */
            aload 5 /* argTypesAry */
            invokevirtual org.jruby.RubyArray.size:()I
            anewarray java.lang.Class
            invokevirtual org.jruby.RubyArray.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.Class[]
            astore 6 /* argTypesClasses */
        start local 6 // java.lang.Class[] argTypesClasses
         3: .line 578
            aload 0 /* context */
            aload 1 /* proxyClass */
            aload 4 /* name */
            aload 6 /* argTypesClasses */
            invokestatic org.jruby.java.proxies.JavaProxy$ClassMethods.getRubyMethod:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;[Ljava/lang/Class;)Lorg/jruby/AbstractRubyMethod;
            areturn
        end local 6 // java.lang.Class[] argTypesClasses
        end local 5 // org.jruby.RubyArray argTypesAry
        end local 4 // java.lang.String name
        end local 3 // org.jruby.runtime.builtin.IRubyObject argTypes
        end local 2 // org.jruby.runtime.builtin.IRubyObject rubyName
        end local 1 // org.jruby.runtime.builtin.IRubyObject proxyClass
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    4     0          context  Lorg/jruby/runtime/ThreadContext;
            0    4     1       proxyClass  Lorg/jruby/runtime/builtin/IRubyObject;
            0    4     2         rubyName  Lorg/jruby/runtime/builtin/IRubyObject;
            0    4     3         argTypes  Lorg/jruby/runtime/builtin/IRubyObject;
            1    4     4             name  Ljava/lang/String;
            2    4     5      argTypesAry  Lorg/jruby/RubyArray;
            3    4     6  argTypesClasses  [Ljava/lang/Class;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(meta = true)
    MethodParameters:
            Name  Flags
      context     
      proxyClass  
      rubyName    
      argTypes    

  public static org.jruby.runtime.builtin.IRubyObject java_send(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=6, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
        start local 2 // org.jruby.runtime.builtin.IRubyObject rubyName
         0: .line 583
            aload 2 /* rubyName */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.asJavaString:()Ljava/lang/String;
            astore 3 /* name */
        start local 3 // java.lang.String name
         1: .line 584
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 4 /* runtime */
        start local 4 // org.jruby.Ruby runtime
         2: .line 586
            new org.jruby.javasupport.JavaMethod
            dup
            aload 4 /* runtime */
            aload 0 /* context */
            aload 1 /* recv */
            aload 3 /* name */
            iconst_0
            anewarray java.lang.Class
            invokestatic org.jruby.java.proxies.JavaProxy$ClassMethods.getMethodFromClass:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            invokespecial org.jruby.javasupport.JavaMethod.<init>:(Lorg/jruby/Ruby;Ljava/lang/reflect/Method;)V
            astore 5 /* method */
        start local 5 // org.jruby.javasupport.JavaMethod method
         3: .line 587
            aload 5 /* method */
            aload 0 /* context */
            invokevirtual org.jruby.javasupport.JavaMethod.invokeStaticDirect:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 5 // org.jruby.javasupport.JavaMethod method
        end local 4 // org.jruby.Ruby runtime
        end local 3 // java.lang.String name
        end local 2 // org.jruby.runtime.builtin.IRubyObject rubyName
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0   context  Lorg/jruby/runtime/ThreadContext;
            0    4     1      recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0    4     2  rubyName  Lorg/jruby/runtime/builtin/IRubyObject;
            1    4     3      name  Ljava/lang/String;
            2    4     4   runtime  Lorg/jruby/Ruby;
            3    4     5    method  Lorg/jruby/javasupport/JavaMethod;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(meta = true)
    MethodParameters:
          Name  Flags
      context   
      recv      
      rubyName  

  public static org.jruby.runtime.builtin.IRubyObject java_send(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=8, args_size=4
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
        start local 2 // org.jruby.runtime.builtin.IRubyObject rubyName
        start local 3 // org.jruby.runtime.builtin.IRubyObject argTypes
         0: .line 592
            aload 2 /* rubyName */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.asJavaString:()Ljava/lang/String;
            astore 4 /* name */
        start local 4 // java.lang.String name
         1: .line 593
            aload 3 /* argTypes */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToArray:()Lorg/jruby/RubyArray;
            astore 5 /* argTypesAry */
        start local 5 // org.jruby.RubyArray argTypesAry
         2: .line 594
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 6 /* runtime */
        start local 6 // org.jruby.Ruby runtime
         3: .line 596
            aload 6 /* runtime */
            iconst_0
            aload 5 /* argTypesAry */
            invokestatic org.jruby.java.proxies.JavaProxy.checkArgSizeMismatch:(Lorg/jruby/Ruby;ILorg/jruby/RubyArray;)V
         4: .line 598
            new org.jruby.javasupport.JavaMethod
            dup
            aload 6 /* runtime */
            aload 0 /* context */
            aload 1 /* recv */
            aload 4 /* name */
            iconst_0
            anewarray java.lang.Class
            invokestatic org.jruby.java.proxies.JavaProxy$ClassMethods.getMethodFromClass:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            invokespecial org.jruby.javasupport.JavaMethod.<init>:(Lorg/jruby/Ruby;Ljava/lang/reflect/Method;)V
            astore 7 /* method */
        start local 7 // org.jruby.javasupport.JavaMethod method
         5: .line 599
            aload 7 /* method */
            aload 0 /* context */
            invokevirtual org.jruby.javasupport.JavaMethod.invokeStaticDirect:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 7 // org.jruby.javasupport.JavaMethod method
        end local 6 // org.jruby.Ruby runtime
        end local 5 // org.jruby.RubyArray argTypesAry
        end local 4 // java.lang.String name
        end local 3 // org.jruby.runtime.builtin.IRubyObject argTypes
        end local 2 // org.jruby.runtime.builtin.IRubyObject rubyName
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0      context  Lorg/jruby/runtime/ThreadContext;
            0    6     1         recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0    6     2     rubyName  Lorg/jruby/runtime/builtin/IRubyObject;
            0    6     3     argTypes  Lorg/jruby/runtime/builtin/IRubyObject;
            1    6     4         name  Ljava/lang/String;
            2    6     5  argTypesAry  Lorg/jruby/RubyArray;
            3    6     6      runtime  Lorg/jruby/Ruby;
            5    6     7       method  Lorg/jruby/javasupport/JavaMethod;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(meta = true)
    MethodParameters:
          Name  Flags
      context   
      recv      
      rubyName  
      argTypes  

  public static org.jruby.runtime.builtin.IRubyObject java_send(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=10, locals=10, args_size=5
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
        start local 2 // org.jruby.runtime.builtin.IRubyObject rubyName
        start local 3 // org.jruby.runtime.builtin.IRubyObject argTypes
        start local 4 // org.jruby.runtime.builtin.IRubyObject arg0
         0: .line 604
            aload 2 /* rubyName */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.asJavaString:()Ljava/lang/String;
            astore 5 /* name */
        start local 5 // java.lang.String name
         1: .line 605
            aload 3 /* argTypes */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToArray:()Lorg/jruby/RubyArray;
            astore 6 /* argTypesAry */
        start local 6 // org.jruby.RubyArray argTypesAry
         2: .line 606
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 7 /* runtime */
        start local 7 // org.jruby.Ruby runtime
         3: .line 608
            aload 7 /* runtime */
            iconst_1
            aload 6 /* argTypesAry */
            invokestatic org.jruby.java.proxies.JavaProxy.checkArgSizeMismatch:(Lorg/jruby/Ruby;ILorg/jruby/RubyArray;)V
         4: .line 610
            aload 6 /* argTypesAry */
            iconst_0
            invokevirtual org.jruby.RubyArray.eltInternal:(I)Lorg/jruby/runtime/builtin/IRubyObject;
            ldc Ljava/lang/Class;
            invokeinterface org.jruby.runtime.builtin.IRubyObject.toJava:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast java.lang.Class
            astore 8 /* argTypeClass */
        start local 8 // java.lang.Class argTypeClass
         5: .line 612
            new org.jruby.javasupport.JavaMethod
            dup
            aload 7 /* runtime */
            aload 0 /* context */
            aload 1 /* recv */
            aload 5 /* name */
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            aload 8 /* argTypeClass */
            aastore
            invokestatic org.jruby.java.proxies.JavaProxy$ClassMethods.getMethodFromClass:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            invokespecial org.jruby.javasupport.JavaMethod.<init>:(Lorg/jruby/Ruby;Ljava/lang/reflect/Method;)V
            astore 9 /* method */
        start local 9 // org.jruby.javasupport.JavaMethod method
         6: .line 613
            aload 9 /* method */
            aload 0 /* context */
            aload 4 /* arg0 */
            aload 8 /* argTypeClass */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.toJava:(Ljava/lang/Class;)Ljava/lang/Object;
            invokevirtual org.jruby.javasupport.JavaMethod.invokeStaticDirect:(Lorg/jruby/runtime/ThreadContext;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 9 // org.jruby.javasupport.JavaMethod method
        end local 8 // java.lang.Class argTypeClass
        end local 7 // org.jruby.Ruby runtime
        end local 6 // org.jruby.RubyArray argTypesAry
        end local 5 // java.lang.String name
        end local 4 // org.jruby.runtime.builtin.IRubyObject arg0
        end local 3 // org.jruby.runtime.builtin.IRubyObject argTypes
        end local 2 // org.jruby.runtime.builtin.IRubyObject rubyName
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    7     0       context  Lorg/jruby/runtime/ThreadContext;
            0    7     1          recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0    7     2      rubyName  Lorg/jruby/runtime/builtin/IRubyObject;
            0    7     3      argTypes  Lorg/jruby/runtime/builtin/IRubyObject;
            0    7     4          arg0  Lorg/jruby/runtime/builtin/IRubyObject;
            1    7     5          name  Ljava/lang/String;
            2    7     6   argTypesAry  Lorg/jruby/RubyArray;
            3    7     7       runtime  Lorg/jruby/Ruby;
            5    7     8  argTypeClass  Ljava/lang/Class;
            6    7     9        method  Lorg/jruby/javasupport/JavaMethod;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(meta = true)
    MethodParameters:
          Name  Flags
      context   
      recv      
      rubyName  
      argTypes  
      arg0      

  public static org.jruby.runtime.builtin.IRubyObject java_send(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject[]);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=10, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 618
            aload 2 /* args */
            arraylength
            tableswitch { // 1 - 3
                    1: 1
                    2: 2
                    3: 3
              default: 4
          }
         1: .line 619
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            aload 1 /* recv */
            aload 2 /* args */
            iconst_0
            aaload
            invokestatic org.jruby.java.proxies.JavaProxy$ClassMethods.java_send:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         2: .line 620
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            aload 1 /* recv */
            aload 2 /* args */
            iconst_0
            aaload
            aload 2 /* args */
            iconst_1
            aaload
            invokestatic org.jruby.java.proxies.JavaProxy$ClassMethods.java_send:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         3: .line 621
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            aload 1 /* recv */
            aload 2 /* args */
            iconst_0
            aaload
            aload 2 /* args */
            iconst_1
            aaload
            aload 2 /* args */
            iconst_2
            aaload
            invokestatic org.jruby.java.proxies.JavaProxy$ClassMethods.java_send:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         4: .line 622
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
         5: .line 624
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 3 /* runtime */
        start local 3 // org.jruby.Ruby runtime
         6: .line 626
            aload 2 /* args */
            iconst_0
            aaload
            invokeinterface org.jruby.runtime.builtin.IRubyObject.asJavaString:()Ljava/lang/String;
            astore 4 /* name */
        start local 4 // java.lang.String name
         7: .line 627
            aload 2 /* args */
            iconst_1
            aaload
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToArray:()Lorg/jruby/RubyArray;
            astore 5 /* argTypesAry */
        start local 5 // org.jruby.RubyArray argTypesAry
         8: .line 628
            aload 2 /* args */
            arraylength
            iconst_2
            isub
            istore 6 /* argsLen */
        start local 6 // int argsLen
         9: .line 630
            aload 3 /* runtime */
            iload 6 /* argsLen */
            aload 5 /* argTypesAry */
            invokestatic org.jruby.java.proxies.JavaProxy.checkArgSizeMismatch:(Lorg/jruby/Ruby;ILorg/jruby/RubyArray;)V
        10: .line 632
            aload 5 /* argTypesAry */
            iload 6 /* argsLen */
            anewarray java.lang.Class
            invokevirtual org.jruby.RubyArray.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.Class[]
            astore 7 /* argTypesClasses */
        start local 7 // java.lang.Class[] argTypesClasses
        11: .line 634
            iload 6 /* argsLen */
            anewarray java.lang.Object
            astore 8 /* javaArgs */
        start local 8 // java.lang.Object[] javaArgs
        12: .line 635
            iconst_0
            istore 9 /* i */
        start local 9 // int i
        13: goto 16
        14: .line 636
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby java.lang.String org.jruby.RubyArray int java.lang.Class[] java.lang.Object[] int
      StackMap stack:
            aload 8 /* javaArgs */
            iload 9 /* i */
            aload 2 /* args */
            iload 9 /* i */
            iconst_2
            iadd
            aaload
            aload 7 /* argTypesClasses */
            iload 9 /* i */
            aaload
            invokeinterface org.jruby.runtime.builtin.IRubyObject.toJava:(Ljava/lang/Class;)Ljava/lang/Object;
            aastore
        15: .line 635
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        16: iload 9 /* i */
            iload 6 /* argsLen */
            if_icmplt 14
        end local 9 // int i
        17: .line 639
            new org.jruby.javasupport.JavaMethod
            dup
            aload 3 /* runtime */
            aload 0 /* context */
            aload 1 /* recv */
            aload 4 /* name */
            aload 7 /* argTypesClasses */
            invokestatic org.jruby.java.proxies.JavaProxy$ClassMethods.getMethodFromClass:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            invokespecial org.jruby.javasupport.JavaMethod.<init>:(Lorg/jruby/Ruby;Ljava/lang/reflect/Method;)V
            astore 9 /* method */
        start local 9 // org.jruby.javasupport.JavaMethod method
        18: .line 640
            aload 9 /* method */
            aload 0 /* context */
            aload 8 /* javaArgs */
            invokevirtual org.jruby.javasupport.JavaMethod.invokeStaticDirect:(Lorg/jruby/runtime/ThreadContext;[Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 9 // org.jruby.javasupport.JavaMethod method
        end local 8 // java.lang.Object[] javaArgs
        end local 7 // java.lang.Class[] argTypesClasses
        end local 6 // int argsLen
        end local 5 // org.jruby.RubyArray argTypesAry
        end local 4 // java.lang.String name
        end local 3 // org.jruby.Ruby runtime
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   19     0          context  Lorg/jruby/runtime/ThreadContext;
            0   19     1             recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0   19     2             args  [Lorg/jruby/runtime/builtin/IRubyObject;
            6   19     3          runtime  Lorg/jruby/Ruby;
            7   19     4             name  Ljava/lang/String;
            8   19     5      argTypesAry  Lorg/jruby/RubyArray;
            9   19     6          argsLen  I
           11   19     7  argTypesClasses  [Ljava/lang/Class;
           12   19     8         javaArgs  [Ljava/lang/Object;
           13   17     9                i  I
           18   19     9           method  Lorg/jruby/javasupport/JavaMethod;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(required = 1, rest = true, meta = true)
    MethodParameters:
         Name  Flags
      context  
      recv     
      args     

  public static org.jruby.runtime.builtin.IRubyObject java_alias(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject clazz
        start local 2 // org.jruby.runtime.builtin.IRubyObject newName
        start local 3 // org.jruby.runtime.builtin.IRubyObject rubyName
         0: .line 645
            aload 0 /* context */
            aload 1 /* clazz */
            aload 2 /* newName */
            aload 3 /* rubyName */
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.newEmptyArray:()Lorg/jruby/RubyArray;
            invokestatic org.jruby.java.proxies.JavaProxy$ClassMethods.java_alias:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 3 // org.jruby.runtime.builtin.IRubyObject rubyName
        end local 2 // org.jruby.runtime.builtin.IRubyObject newName
        end local 1 // org.jruby.runtime.builtin.IRubyObject clazz
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0   context  Lorg/jruby/runtime/ThreadContext;
            0    1     1     clazz  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     2   newName  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     3  rubyName  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(meta = true, visibility = org.jruby.runtime.Visibility.PRIVATE:Lorg/jruby/runtime/Visibility;)
    MethodParameters:
          Name  Flags
      context   
      clazz     
      newName   
      rubyName  

  public static org.jruby.runtime.builtin.IRubyObject java_alias(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=13, args_size=5
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject clazz
        start local 2 // org.jruby.runtime.builtin.IRubyObject newName
        start local 3 // org.jruby.runtime.builtin.IRubyObject rubyName
        start local 4 // org.jruby.runtime.builtin.IRubyObject argTypes
         0: .line 650
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 5 /* runtime */
        start local 5 // org.jruby.Ruby runtime
         1: .line 651
            aload 1 /* clazz */
            instanceof org.jruby.RubyClass
            ifne 3
         2: .line 652
            aload 5 /* runtime */
            aload 1 /* clazz */
            aload 5 /* runtime */
            invokevirtual org.jruby.Ruby.getModule:()Lorg/jruby/RubyClass;
            invokevirtual org.jruby.Ruby.newTypeError:(Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyClass;)Lorg/jruby/exceptions/RaiseException;
            athrow
         3: .line 654
      StackMap locals: org.jruby.Ruby
      StackMap stack:
            aload 1 /* clazz */
            checkcast org.jruby.RubyClass
            astore 6 /* proxyClass */
        start local 6 // org.jruby.RubyClass proxyClass
         4: .line 656
            aload 3 /* rubyName */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.asJavaString:()Ljava/lang/String;
            astore 7 /* name */
        start local 7 // java.lang.String name
         5: .line 657
            aload 2 /* newName */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.asJavaString:()Ljava/lang/String;
            astore 8 /* newNameStr */
        start local 8 // java.lang.String newNameStr
         6: .line 658
            aload 4 /* argTypes */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToArray:()Lorg/jruby/RubyArray;
            astore 9 /* argTypesAry */
        start local 9 // org.jruby.RubyArray argTypesAry
         7: .line 659
            aload 9 /* argTypesAry */
            aload 9 /* argTypesAry */
            invokevirtual org.jruby.RubyArray.size:()I
            anewarray java.lang.Class
            invokevirtual org.jruby.RubyArray.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.Class[]
            astore 10 /* argTypesClasses */
        start local 10 // java.lang.Class[] argTypesClasses
         8: .line 661
            aload 0 /* context */
            aload 1 /* clazz */
            aload 7 /* name */
            aload 10 /* argTypesClasses */
            invokestatic org.jruby.java.proxies.JavaProxy$ClassMethods.getMethodFromClass:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            astore 11 /* method */
        start local 11 // java.lang.reflect.Method method
         9: .line 664
            aload 11 /* method */
            invokevirtual java.lang.reflect.Method.getModifiers:()I
            invokestatic java.lang.reflect.Modifier.isStatic:(I)Z
            ifeq 13
        10: .line 665
            new org.jruby.java.invokers.StaticMethodInvoker
            dup
            aload 6 /* proxyClass */
            invokevirtual org.jruby.RubyClass.getMetaClass:()Lorg/jruby/RubyClass;
            aload 11 /* method */
            invokedynamic get(Ljava/lang/reflect/Method;)Ljava/util/function/Supplier;
              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;
                  org/jruby/java/proxies/JavaProxy$ClassMethods.lambda$0(Ljava/lang/reflect/Method;)[Ljava/lang/reflect/Method; (6)
                  ()[Ljava/lang/reflect/Method;
            aload 8 /* newNameStr */
            invokespecial org.jruby.java.invokers.StaticMethodInvoker.<init>:(Lorg/jruby/RubyModule;Ljava/util/function/Supplier;Ljava/lang/String;)V
            astore 12 /* invoker */
        start local 12 // org.jruby.java.invokers.MethodInvoker invoker
        11: .line 667
            aload 6 /* proxyClass */
            invokevirtual org.jruby.RubyClass.getSingletonClass:()Lorg/jruby/RubyClass;
            aload 8 /* newNameStr */
            aload 12 /* invoker */
            invokevirtual org.jruby.RubyClass.addMethod:(Ljava/lang/String;Lorg/jruby/internal/runtime/methods/DynamicMethod;)V
        12: .line 668
            goto 15
        end local 12 // org.jruby.java.invokers.MethodInvoker invoker
        13: .line 670
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.Ruby org.jruby.RubyClass java.lang.String java.lang.String org.jruby.RubyArray java.lang.Class[] java.lang.reflect.Method
      StackMap stack:
            new org.jruby.java.invokers.InstanceMethodInvoker
            dup
            aload 6 /* proxyClass */
            aload 11 /* method */
            invokedynamic get(Ljava/lang/reflect/Method;)Ljava/util/function/Supplier;
              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;
                  org/jruby/java/proxies/JavaProxy$ClassMethods.lambda$1(Ljava/lang/reflect/Method;)[Ljava/lang/reflect/Method; (6)
                  ()[Ljava/lang/reflect/Method;
            aload 8 /* newNameStr */
            invokespecial org.jruby.java.invokers.InstanceMethodInvoker.<init>:(Lorg/jruby/RubyModule;Ljava/util/function/Supplier;Ljava/lang/String;)V
            astore 12 /* invoker */
        start local 12 // org.jruby.java.invokers.MethodInvoker invoker
        14: .line 671
            aload 6 /* proxyClass */
            aload 8 /* newNameStr */
            aload 12 /* invoker */
            invokevirtual org.jruby.RubyClass.addMethod:(Ljava/lang/String;Lorg/jruby/internal/runtime/methods/DynamicMethod;)V
        15: .line 674
      StackMap locals: org.jruby.java.invokers.MethodInvoker
      StackMap stack:
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 12 // org.jruby.java.invokers.MethodInvoker invoker
        end local 11 // java.lang.reflect.Method method
        end local 10 // java.lang.Class[] argTypesClasses
        end local 9 // org.jruby.RubyArray argTypesAry
        end local 8 // java.lang.String newNameStr
        end local 7 // java.lang.String name
        end local 6 // org.jruby.RubyClass proxyClass
        end local 5 // org.jruby.Ruby runtime
        end local 4 // org.jruby.runtime.builtin.IRubyObject argTypes
        end local 3 // org.jruby.runtime.builtin.IRubyObject rubyName
        end local 2 // org.jruby.runtime.builtin.IRubyObject newName
        end local 1 // org.jruby.runtime.builtin.IRubyObject clazz
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   16     0          context  Lorg/jruby/runtime/ThreadContext;
            0   16     1            clazz  Lorg/jruby/runtime/builtin/IRubyObject;
            0   16     2          newName  Lorg/jruby/runtime/builtin/IRubyObject;
            0   16     3         rubyName  Lorg/jruby/runtime/builtin/IRubyObject;
            0   16     4         argTypes  Lorg/jruby/runtime/builtin/IRubyObject;
            1   16     5          runtime  Lorg/jruby/Ruby;
            4   16     6       proxyClass  Lorg/jruby/RubyClass;
            5   16     7             name  Ljava/lang/String;
            6   16     8       newNameStr  Ljava/lang/String;
            7   16     9      argTypesAry  Lorg/jruby/RubyArray;
            8   16    10  argTypesClasses  [Ljava/lang/Class;
            9   16    11           method  Ljava/lang/reflect/Method;
           11   13    12          invoker  Lorg/jruby/java/invokers/MethodInvoker;
           14   16    12          invoker  Lorg/jruby/java/invokers/MethodInvoker;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(meta = true, visibility = org.jruby.runtime.Visibility.PRIVATE:Lorg/jruby/runtime/Visibility;)
    MethodParameters:
          Name  Flags
      context   
      clazz     
      newName   
      rubyName  
      argTypes  

  private static org.jruby.AbstractRubyMethod getRubyMethod(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, java.lang.String, java.lang.Class[]);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;[Ljava/lang/Class;)Lorg/jruby/AbstractRubyMethod;
    flags: (0x008a) ACC_PRIVATE, ACC_STATIC, ACC_VARARGS
    Code:
      stack=9, locals=9, args_size=4
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject clazz
        start local 2 // java.lang.String name
        start local 3 // java.lang.Class[] argTypesClasses
         0: .line 678
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 4 /* runtime */
        start local 4 // org.jruby.Ruby runtime
         1: .line 679
            aload 1 /* clazz */
            instanceof org.jruby.RubyModule
            ifne 3
         2: .line 680
            aload 4 /* runtime */
            aload 1 /* clazz */
            aload 4 /* runtime */
            invokevirtual org.jruby.Ruby.getModule:()Lorg/jruby/RubyClass;
            invokevirtual org.jruby.Ruby.newTypeError:(Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyClass;)Lorg/jruby/exceptions/RaiseException;
            athrow
         3: .line 682
      StackMap locals: org.jruby.Ruby
      StackMap stack:
            aload 1 /* clazz */
            checkcast org.jruby.RubyModule
            astore 5 /* proxyClass */
        start local 5 // org.jruby.RubyModule proxyClass
         4: .line 684
            aload 0 /* context */
            aload 1 /* clazz */
            aload 2 /* name */
            aload 3 /* argTypesClasses */
            invokestatic org.jruby.java.proxies.JavaProxy$ClassMethods.getMethodFromClass:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            astore 6 /* method */
        start local 6 // java.lang.reflect.Method method
         5: .line 685
            new java.lang.StringBuilder
            dup
            aload 2 /* name */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* argTypesClasses */
            invokestatic org.jruby.util.CodegenUtils.prettyParams:([Ljava/lang/Class;)Ljava/lang/CharSequence;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 7 /* prettyName */
        start local 7 // java.lang.String prettyName
         6: .line 687
            aload 6 /* method */
            invokevirtual java.lang.reflect.Method.getModifiers:()I
            invokestatic java.lang.reflect.Modifier.isStatic:(I)Z
            ifeq 9
         7: .line 688
            new org.jruby.java.invokers.StaticMethodInvoker
            dup
            aload 5 /* proxyClass */
            aload 6 /* method */
            invokedynamic get(Ljava/lang/reflect/Method;)Ljava/util/function/Supplier;
              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;
                  org/jruby/java/proxies/JavaProxy$ClassMethods.lambda$2(Ljava/lang/reflect/Method;)[Ljava/lang/reflect/Method; (6)
                  ()[Ljava/lang/reflect/Method;
            aload 2 /* name */
            invokespecial org.jruby.java.invokers.StaticMethodInvoker.<init>:(Lorg/jruby/RubyModule;Ljava/util/function/Supplier;Ljava/lang/String;)V
            astore 8 /* invoker */
        start local 8 // org.jruby.java.invokers.MethodInvoker invoker
         8: .line 689
            aload 5 /* proxyClass */
            aload 7 /* prettyName */
            aload 5 /* proxyClass */
            aload 2 /* name */
            new org.jruby.runtime.callsite.CacheEntry
            dup
            aload 8 /* invoker */
            aload 5 /* proxyClass */
            aload 5 /* proxyClass */
            invokevirtual org.jruby.RubyModule.getGeneration:()I
            invokespecial org.jruby.runtime.callsite.CacheEntry.<init>:(Lorg/jruby/internal/runtime/methods/DynamicMethod;Lorg/jruby/RubyModule;I)V
            aload 1 /* clazz */
            invokestatic org.jruby.RubyMethod.newMethod:(Lorg/jruby/RubyModule;Ljava/lang/String;Lorg/jruby/RubyModule;Ljava/lang/String;Lorg/jruby/runtime/callsite/CacheEntry;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyMethod;
            areturn
        end local 8 // org.jruby.java.invokers.MethodInvoker invoker
         9: .line 692
      StackMap locals: org.jruby.RubyModule java.lang.reflect.Method java.lang.String
      StackMap stack:
            new org.jruby.java.invokers.InstanceMethodInvoker
            dup
            aload 5 /* proxyClass */
            aload 6 /* method */
            invokedynamic get(Ljava/lang/reflect/Method;)Ljava/util/function/Supplier;
              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;
                  org/jruby/java/proxies/JavaProxy$ClassMethods.lambda$3(Ljava/lang/reflect/Method;)[Ljava/lang/reflect/Method; (6)
                  ()[Ljava/lang/reflect/Method;
            aload 2 /* name */
            invokespecial org.jruby.java.invokers.InstanceMethodInvoker.<init>:(Lorg/jruby/RubyModule;Ljava/util/function/Supplier;Ljava/lang/String;)V
            astore 8 /* invoker */
        start local 8 // org.jruby.java.invokers.MethodInvoker invoker
        10: .line 693
            aload 5 /* proxyClass */
            aload 7 /* prettyName */
            aload 5 /* proxyClass */
            aload 2 /* name */
            new org.jruby.runtime.callsite.CacheEntry
            dup
            aload 8 /* invoker */
            aload 5 /* proxyClass */
            aload 5 /* proxyClass */
            invokevirtual org.jruby.RubyModule.getGeneration:()I
            invokespecial org.jruby.runtime.callsite.CacheEntry.<init>:(Lorg/jruby/internal/runtime/methods/DynamicMethod;Lorg/jruby/RubyModule;I)V
            invokestatic org.jruby.RubyUnboundMethod.newUnboundMethod:(Lorg/jruby/RubyModule;Ljava/lang/String;Lorg/jruby/RubyModule;Ljava/lang/String;Lorg/jruby/runtime/callsite/CacheEntry;)Lorg/jruby/RubyUnboundMethod;
            areturn
        end local 8 // org.jruby.java.invokers.MethodInvoker invoker
        end local 7 // java.lang.String prettyName
        end local 6 // java.lang.reflect.Method method
        end local 5 // org.jruby.RubyModule proxyClass
        end local 4 // org.jruby.Ruby runtime
        end local 3 // java.lang.Class[] argTypesClasses
        end local 2 // java.lang.String name
        end local 1 // org.jruby.runtime.builtin.IRubyObject clazz
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   11     0          context  Lorg/jruby/runtime/ThreadContext;
            0   11     1            clazz  Lorg/jruby/runtime/builtin/IRubyObject;
            0   11     2             name  Ljava/lang/String;
            0   11     3  argTypesClasses  [Ljava/lang/Class;
            1   11     4          runtime  Lorg/jruby/Ruby;
            4   11     5       proxyClass  Lorg/jruby/RubyModule;
            5   11     6           method  Ljava/lang/reflect/Method;
            6   11     7       prettyName  Ljava/lang/String;
            8    9     8          invoker  Lorg/jruby/java/invokers/MethodInvoker;
           10   11     8          invoker  Lorg/jruby/java/invokers/MethodInvoker;
    MethodParameters:
                 Name  Flags
      context          
      clazz            
      name             
      argTypesClasses  

  private static java.lang.reflect.Method getMethodFromClass(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, java.lang.String, java.lang.Class[]);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
    flags: (0x008a) ACC_PRIVATE, ACC_STATIC, ACC_VARARGS
    Code:
      stack=4, locals=7, args_size=4
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject proxyClass
        start local 2 // java.lang.String name
        start local 3 // java.lang.Class[] argTypes
         0: .line 698
            aload 0 /* context */
            aload 1 /* proxyClass */
            checkcast org.jruby.RubyModule
            invokestatic org.jruby.javasupport.JavaClass.getJavaClass:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyModule;)Ljava/lang/Class;
            astore 4 /* clazz */
        start local 4 // java.lang.Class clazz
         1: .line 700
            aload 4 /* clazz */
            aload 2 /* name */
            aload 3 /* argTypes */
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
         2: areturn
         3: .line 702
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject java.lang.String java.lang.Class[] java.lang.Class
      StackMap stack: java.lang.NoSuchMethodException
            pop
         4: .line 703
            new java.lang.StringBuilder
            dup
            aload 2 /* name */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* argTypes */
            invokestatic org.jruby.util.CodegenUtils.prettyParams:([Ljava/lang/Class;)Ljava/lang/CharSequence;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 5 /* prettyName */
        start local 5 // java.lang.String prettyName
         5: .line 704
            new java.lang.StringBuilder
            dup
            aload 4 /* clazz */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            bipush 46
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 5 /* prettyName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 6 /* errorName */
        start local 6 // java.lang.String errorName
         6: .line 705
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            new java.lang.StringBuilder
            dup
            ldc "Java method not found: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* errorName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 2 /* name */
            invokevirtual org.jruby.Ruby.newNameError:(Ljava/lang/String;Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 6 // java.lang.String errorName
        end local 5 // java.lang.String prettyName
        end local 4 // java.lang.Class clazz
        end local 3 // java.lang.Class[] argTypes
        end local 2 // java.lang.String name
        end local 1 // org.jruby.runtime.builtin.IRubyObject proxyClass
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0     context  Lorg/jruby/runtime/ThreadContext;
            0    7     1  proxyClass  Lorg/jruby/runtime/builtin/IRubyObject;
            0    7     2        name  Ljava/lang/String;
            0    7     3    argTypes  [Ljava/lang/Class;
            1    7     4       clazz  Ljava/lang/Class<*>;
            5    7     5  prettyName  Ljava/lang/String;
            6    7     6   errorName  Ljava/lang/String;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.NoSuchMethodException
    MethodParameters:
            Name  Flags
      context     final
      proxyClass  final
      name        final
      argTypes    final

  private static java.lang.reflect.Method[] lambda$0(java.lang.reflect.Method);
    descriptor: (Ljava/lang/reflect/Method;)[Ljava/lang/reflect/Method;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=1, args_size=1
         0: .line 665
            iconst_1
            anewarray java.lang.reflect.Method
            dup
            iconst_0
            aload 0
            aastore
            invokestatic org.jruby.runtime.Helpers.arrayOf:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.reflect.Method[]
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static java.lang.reflect.Method[] lambda$1(java.lang.reflect.Method);
    descriptor: (Ljava/lang/reflect/Method;)[Ljava/lang/reflect/Method;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=1, args_size=1
         0: .line 670
            iconst_1
            anewarray java.lang.reflect.Method
            dup
            iconst_0
            aload 0
            aastore
            invokestatic org.jruby.runtime.Helpers.arrayOf:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.reflect.Method[]
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static java.lang.reflect.Method[] lambda$2(java.lang.reflect.Method);
    descriptor: (Ljava/lang/reflect/Method;)[Ljava/lang/reflect/Method;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=1, args_size=1
         0: .line 688
            iconst_1
            anewarray java.lang.reflect.Method
            dup
            iconst_0
            aload 0
            aastore
            invokestatic org.jruby.runtime.Helpers.arrayOf:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.reflect.Method[]
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static java.lang.reflect.Method[] lambda$3(java.lang.reflect.Method);
    descriptor: (Ljava/lang/reflect/Method;)[Ljava/lang/reflect/Method;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=1, args_size=1
         0: .line 692
            iconst_1
            anewarray java.lang.reflect.Method
            dup
            iconst_0
            aload 0
            aastore
            invokestatic org.jruby.runtime.Helpers.arrayOf:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.reflect.Method[]
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "JavaProxy.java"
NestHost: org.jruby.java.proxies.JavaProxy
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public ClassMethods = org.jruby.java.proxies.JavaProxy$ClassMethods of org.jruby.java.proxies.JavaProxy