public class org.jruby.javasupport.binding.MethodGatherer
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.jruby.javasupport.binding.MethodGatherer
  super_class: java.lang.Object
{
  private static final boolean DEBUG_SCALA;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  private static final java.lang.String METHOD_MANGLE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "__method"

  private static final java.lang.String CONSTRUCTOR_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "__jcreate!"

  private static final java.lang.reflect.Method[] EMPTY_METHODS;
    descriptor: [Ljava/lang/reflect/Method;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final int ACC_BRIDGE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 64

  private static final java.util.Map<java.lang.String, java.lang.String> SCALA_OPERATORS;
    descriptor: Ljava/util/Map;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;

  private final java.util.Map<java.lang.String, org.jruby.javasupport.binding.AssignedName> staticNames;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;Lorg/jruby/javasupport/binding/AssignedName;>;

  private final java.util.Map<java.lang.String, org.jruby.javasupport.binding.AssignedName> instanceNames;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;Lorg/jruby/javasupport/binding/AssignedName;>;

  private static final java.util.Map<java.lang.String, org.jruby.javasupport.binding.AssignedName> STATIC_RESERVED_NAMES;
    descriptor: Ljava/util/Map;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;Lorg/jruby/javasupport/binding/AssignedName;>;

  private static final java.util.Map<java.lang.String, org.jruby.javasupport.binding.AssignedName> INSTANCE_RESERVED_NAMES;
    descriptor: Ljava/util/Map;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;Lorg/jruby/javasupport/binding/AssignedName;>;

  private java.util.Map<java.lang.String, org.jruby.javasupport.binding.NamedInstaller> staticInstallers;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Map<Ljava/lang/String;Lorg/jruby/javasupport/binding/NamedInstaller;>;

  private java.util.Map<java.lang.String, org.jruby.javasupport.binding.NamedInstaller> instanceInstallers;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Map<Ljava/lang/String;Lorg/jruby/javasupport/binding/NamedInstaller;>;

  final java.util.List<org.jruby.javasupport.binding.ConstantField> constantFields;
    descriptor: Ljava/util/List;
    flags: (0x0010) ACC_FINAL
    Signature: Ljava/util/List<Lorg/jruby/javasupport/binding/ConstantField;>;

  final org.jruby.Ruby runtime;
    descriptor: Lorg/jruby/Ruby;
    flags: (0x0010) ACC_FINAL

  public static final java.lang.ClassValue<java.lang.reflect.Method[]> DECLARED_METHODS;
    descriptor: Ljava/lang/ClassValue;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Signature: Ljava/lang/ClassValue<[Ljava/lang/reflect/Method;>;

  private static final java.lang.ClassValue<org.jruby.javasupport.binding.MethodGatherer$PartitionedMethods> FILTERED_DECLARED_METHODS;
    descriptor: Ljava/lang/ClassValue;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/lang/ClassValue<Lorg/jruby/javasupport/binding/MethodGatherer$PartitionedMethods;>;

  private static final java.lang.ClassValue<java.lang.reflect.Method[]> METHODS;
    descriptor: Ljava/lang/ClassValue;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/lang/ClassValue<[Ljava/lang/reflect/Method;>;

  private static final java.lang.ClassValue<org.jruby.javasupport.binding.MethodGatherer$PartitionedMethods> FILTERED_METHODS;
    descriptor: Ljava/lang/ClassValue;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/lang/ClassValue<Lorg/jruby/javasupport/binding/MethodGatherer$PartitionedMethods;>;

  private static final java.lang.ClassValue<java.lang.Class<?>[]> INTERFACES;
    descriptor: Ljava/lang/ClassValue;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/lang/ClassValue<[Ljava/lang/Class<*>;>;

  private static final java.lang.ClassValue<java.lang.Boolean> IS_SCALA;
    descriptor: Ljava/lang/ClassValue;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/lang/ClassValue<Ljava/lang/Boolean;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=1, args_size=0
         0: .line 36
            iconst_0
            anewarray java.lang.reflect.Method
            putstatic org.jruby.javasupport.binding.MethodGatherer.EMPTY_METHODS:[Ljava/lang/reflect/Method;
         1: .line 42
            new java.util.HashMap
            dup
            bipush 24
            fconst_1
            invokespecial java.util.HashMap.<init>:(IF)V
            astore 0 /* scalaOperators */
        start local 0 // java.util.HashMap scalaOperators
         2: .line 43
            aload 0 /* scalaOperators */
            ldc "\\$plus"
            ldc "+"
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 44
            aload 0 /* scalaOperators */
            ldc "\\$minus"
            ldc "-"
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 45
            aload 0 /* scalaOperators */
            ldc "\\$colon"
            ldc ":"
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 46
            aload 0 /* scalaOperators */
            ldc "\\$div"
            ldc "/"
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 47
            aload 0 /* scalaOperators */
            ldc "\\$eq"
            ldc "="
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         7: .line 48
            aload 0 /* scalaOperators */
            ldc "\\$less"
            ldc "<"
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         8: .line 49
            aload 0 /* scalaOperators */
            ldc "\\$greater"
            ldc ">"
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         9: .line 50
            aload 0 /* scalaOperators */
            ldc "\\$bslash"
            ldc "\\\\"
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        10: .line 51
            aload 0 /* scalaOperators */
            ldc "\\$hash"
            ldc "#"
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        11: .line 52
            aload 0 /* scalaOperators */
            ldc "\\$times"
            ldc "*"
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        12: .line 53
            aload 0 /* scalaOperators */
            ldc "\\$bang"
            ldc "!"
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        13: .line 54
            aload 0 /* scalaOperators */
            ldc "\\$at"
            ldc "@"
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        14: .line 55
            aload 0 /* scalaOperators */
            ldc "\\$percent"
            ldc "%"
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        15: .line 56
            aload 0 /* scalaOperators */
            ldc "\\$up"
            ldc "^"
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        16: .line 57
            aload 0 /* scalaOperators */
            ldc "\\$amp"
            ldc "&"
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        17: .line 58
            aload 0 /* scalaOperators */
            ldc "\\$tilde"
            ldc "~"
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        18: .line 59
            aload 0 /* scalaOperators */
            ldc "\\$qmark"
            ldc "?"
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        19: .line 60
            aload 0 /* scalaOperators */
            ldc "\\$bar"
            ldc "|"
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        20: .line 61
            aload 0 /* scalaOperators */
            invokestatic java.util.Collections.unmodifiableMap:(Ljava/util/Map;)Ljava/util/Map;
            putstatic org.jruby.javasupport.binding.MethodGatherer.SCALA_OPERATORS:Ljava/util/Map;
        end local 0 // java.util.HashMap scalaOperators
        21: .line 71
            iconst_1
            invokestatic org.jruby.javasupport.binding.MethodGatherer.newReservedNamesMap:(I)Ljava/util/Map;
            putstatic org.jruby.javasupport.binding.MethodGatherer.STATIC_RESERVED_NAMES:Ljava/util/Map;
        22: .line 72
            getstatic org.jruby.javasupport.binding.MethodGatherer.STATIC_RESERVED_NAMES:Ljava/util/Map;
            ldc "new"
            new org.jruby.javasupport.binding.AssignedName
            dup
            ldc "new"
            getstatic org.jruby.javasupport.binding.Priority.RESERVED:Lorg/jruby/javasupport/binding/Priority;
            invokespecial org.jruby.javasupport.binding.AssignedName.<init>:(Ljava/lang/String;Lorg/jruby/javasupport/binding/Priority;)V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        23: .line 76
            iconst_2
            invokestatic org.jruby.javasupport.binding.MethodGatherer.newReservedNamesMap:(I)Ljava/util/Map;
            putstatic org.jruby.javasupport.binding.MethodGatherer.INSTANCE_RESERVED_NAMES:Ljava/util/Map;
        24: .line 78
            getstatic org.jruby.javasupport.binding.MethodGatherer.INSTANCE_RESERVED_NAMES:Ljava/util/Map;
            ldc "class"
            new org.jruby.javasupport.binding.AssignedName
            dup
            ldc "class"
            getstatic org.jruby.javasupport.binding.Priority.RESERVED:Lorg/jruby/javasupport/binding/Priority;
            invokespecial org.jruby.javasupport.binding.AssignedName.<init>:(Ljava/lang/String;Lorg/jruby/javasupport/binding/Priority;)V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        25: .line 80
            getstatic org.jruby.javasupport.binding.MethodGatherer.INSTANCE_RESERVED_NAMES:Ljava/util/Map;
            ldc "initialize"
            new org.jruby.javasupport.binding.AssignedName
            dup
            ldc "initialize"
            getstatic org.jruby.javasupport.binding.Priority.RESERVED:Lorg/jruby/javasupport/binding/Priority;
            invokespecial org.jruby.javasupport.binding.AssignedName.<init>:(Ljava/lang/String;Lorg/jruby/javasupport/binding/Priority;)V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        26: .line 239
            new org.jruby.javasupport.binding.MethodGatherer$1
            dup
            invokespecial org.jruby.javasupport.binding.MethodGatherer$1.<init>:()V
            putstatic org.jruby.javasupport.binding.MethodGatherer.DECLARED_METHODS:Ljava/lang/ClassValue;
        27: .line 250
            new org.jruby.javasupport.binding.MethodGatherer$2
            dup
            invokespecial org.jruby.javasupport.binding.MethodGatherer$2.<init>:()V
            putstatic org.jruby.javasupport.binding.MethodGatherer.FILTERED_DECLARED_METHODS:Ljava/lang/ClassValue;
        28: .line 256
            new org.jruby.javasupport.binding.MethodGatherer$3
            dup
            invokespecial org.jruby.javasupport.binding.MethodGatherer$3.<init>:()V
            putstatic org.jruby.javasupport.binding.MethodGatherer.METHODS:Ljava/lang/ClassValue;
        29: .line 266
            new org.jruby.javasupport.binding.MethodGatherer$4
            dup
            invokespecial org.jruby.javasupport.binding.MethodGatherer$4.<init>:()V
            putstatic org.jruby.javasupport.binding.MethodGatherer.FILTERED_METHODS:Ljava/lang/ClassValue;
        30: .line 272
            new org.jruby.javasupport.binding.MethodGatherer$5
            dup
            invokespecial org.jruby.javasupport.binding.MethodGatherer$5.<init>:()V
            putstatic org.jruby.javasupport.binding.MethodGatherer.INTERFACES:Ljava/lang/ClassValue;
        31: .line 278
            new org.jruby.javasupport.binding.MethodGatherer$6
            dup
            invokespecial org.jruby.javasupport.binding.MethodGatherer$6.<init>:()V
            putstatic org.jruby.javasupport.binding.MethodGatherer.IS_SCALA:Ljava/lang/ClassValue;
        32: .line 293
            return
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            2   21     0  scalaOperators  Ljava/util/HashMap<Ljava/lang/String;Ljava/lang/String;>;

  private static java.util.Map<java.lang.String, org.jruby.javasupport.binding.AssignedName> newReservedNamesMap(int);
    descriptor: (I)Ljava/util/Map;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // int size
         0: .line 85
            new java.util.HashMap
            dup
            iload 0 /* size */
            iconst_4
            iadd
            fconst_1
            invokespecial java.util.HashMap.<init>:(IF)V
            astore 1 /* RESERVED_NAMES */
        start local 1 // java.util.HashMap RESERVED_NAMES
         1: .line 86
            aload 1 /* RESERVED_NAMES */
            ldc "__id__"
            new org.jruby.javasupport.binding.AssignedName
            dup
            ldc "__id__"
            getstatic org.jruby.javasupport.binding.Priority.RESERVED:Lorg/jruby/javasupport/binding/Priority;
            invokespecial org.jruby.javasupport.binding.AssignedName.<init>:(Ljava/lang/String;Lorg/jruby/javasupport/binding/Priority;)V
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 87
            aload 1 /* RESERVED_NAMES */
            ldc "__send__"
            new org.jruby.javasupport.binding.AssignedName
            dup
            ldc "__send__"
            getstatic org.jruby.javasupport.binding.Priority.RESERVED:Lorg/jruby/javasupport/binding/Priority;
            invokespecial org.jruby.javasupport.binding.AssignedName.<init>:(Ljava/lang/String;Lorg/jruby/javasupport/binding/Priority;)V
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 89
            aload 1 /* RESERVED_NAMES */
            ldc "instance_of?"
            new org.jruby.javasupport.binding.AssignedName
            dup
            ldc "instance_of?"
            getstatic org.jruby.javasupport.binding.Priority.RESERVED:Lorg/jruby/javasupport/binding/Priority;
            invokespecial org.jruby.javasupport.binding.AssignedName.<init>:(Ljava/lang/String;Lorg/jruby/javasupport/binding/Priority;)V
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 90
            aload 1 /* RESERVED_NAMES */
            areturn
        end local 1 // java.util.HashMap RESERVED_NAMES
        end local 0 // int size
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0            size  I
            1    5     1  RESERVED_NAMES  Ljava/util/HashMap<Ljava/lang/String;Lorg/jruby/javasupport/binding/AssignedName;>;
    Signature: (I)Ljava/util/Map<Ljava/lang/String;Lorg/jruby/javasupport/binding/AssignedName;>;
    MethodParameters:
      Name  Flags
      size  final

  void <init>(org.jruby.Ruby, java.lang.Class);
    descriptor: (Lorg/jruby/Ruby;Ljava/lang/Class;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // org.jruby.javasupport.binding.MethodGatherer this
        start local 1 // org.jruby.Ruby runtime
        start local 2 // java.lang.Class superClass
         0: .line 98
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 93
            aload 0 /* this */
            getstatic java.util.Collections.EMPTY_MAP:Ljava/util/Map;
            putfield org.jruby.javasupport.binding.MethodGatherer.staticInstallers:Ljava/util/Map;
         2: .line 94
            aload 0 /* this */
            getstatic java.util.Collections.EMPTY_MAP:Ljava/util/Map;
            putfield org.jruby.javasupport.binding.MethodGatherer.instanceInstallers:Ljava/util/Map;
         3: .line 95
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield org.jruby.javasupport.binding.MethodGatherer.constantFields:Ljava/util/List;
         4: .line 99
            aload 0 /* this */
            aload 1 /* runtime */
            putfield org.jruby.javasupport.binding.MethodGatherer.runtime:Lorg/jruby/Ruby;
         5: .line 101
            aload 2 /* superClass */
            ifnonnull 9
         6: .line 102
            aload 0 /* this */
            new java.util.HashMap
            dup
            getstatic org.jruby.javasupport.binding.MethodGatherer.STATIC_RESERVED_NAMES:Ljava/util/Map;
            invokespecial java.util.HashMap.<init>:(Ljava/util/Map;)V
            putfield org.jruby.javasupport.binding.MethodGatherer.staticNames:Ljava/util/Map;
         7: .line 103
            aload 0 /* this */
            new java.util.HashMap
            dup
            getstatic org.jruby.javasupport.binding.MethodGatherer.INSTANCE_RESERVED_NAMES:Ljava/util/Map;
            invokespecial java.util.HashMap.<init>:(Ljava/util/Map;)V
            putfield org.jruby.javasupport.binding.MethodGatherer.instanceNames:Ljava/util/Map;
         8: .line 104
            goto 18
         9: .line 105
      StackMap locals: org.jruby.javasupport.binding.MethodGatherer org.jruby.Ruby java.lang.Class
      StackMap stack:
            aload 1 /* runtime */
            invokevirtual org.jruby.Ruby.getJavaSupport:()Lorg/jruby/javasupport/JavaSupport;
            astore 3 /* javaSupport */
        start local 3 // org.jruby.javasupport.JavaSupport javaSupport
        10: .line 107
            aload 3 /* javaSupport */
            invokevirtual org.jruby.javasupport.JavaSupport.getStaticAssignedNames:()Lorg/jruby/util/collections/ClassValue;
            aload 2 /* superClass */
            invokevirtual org.jruby.util.collections.ClassValue.get:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast java.util.Map
            astore 4 /* staticAssignedNames */
        start local 4 // java.util.Map staticAssignedNames
        11: .line 108
            aload 0 /* this */
            new java.util.HashMap
            dup
            aload 4 /* staticAssignedNames */
            invokeinterface java.util.Map.size:()I
            getstatic org.jruby.javasupport.binding.MethodGatherer.STATIC_RESERVED_NAMES:Ljava/util/Map;
            invokeinterface java.util.Map.size:()I
            iadd
            invokespecial java.util.HashMap.<init>:(I)V
            putfield org.jruby.javasupport.binding.MethodGatherer.staticNames:Ljava/util/Map;
        12: .line 110
            aload 3 /* javaSupport */
            invokevirtual org.jruby.javasupport.JavaSupport.getInstanceAssignedNames:()Lorg/jruby/util/collections/ClassValue;
            aload 2 /* superClass */
            invokevirtual org.jruby.util.collections.ClassValue.get:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast java.util.Map
            astore 5 /* instanceAssignedNames */
        start local 5 // java.util.Map instanceAssignedNames
        13: .line 111
            aload 0 /* this */
            new java.util.HashMap
            dup
            aload 5 /* instanceAssignedNames */
            invokeinterface java.util.Map.size:()I
            getstatic org.jruby.javasupport.binding.MethodGatherer.INSTANCE_RESERVED_NAMES:Ljava/util/Map;
            invokeinterface java.util.Map.size:()I
            iadd
            invokespecial java.util.HashMap.<init>:(I)V
            putfield org.jruby.javasupport.binding.MethodGatherer.instanceNames:Ljava/util/Map;
        14: .line 113
            aload 0 /* this */
            getfield org.jruby.javasupport.binding.MethodGatherer.staticNames:Ljava/util/Map;
            getstatic org.jruby.javasupport.binding.MethodGatherer.STATIC_RESERVED_NAMES:Ljava/util/Map;
            invokeinterface java.util.Map.putAll:(Ljava/util/Map;)V
        15: .line 114
            aload 0 /* this */
            getfield org.jruby.javasupport.binding.MethodGatherer.staticNames:Ljava/util/Map;
            aload 4 /* staticAssignedNames */
            invokeinterface java.util.Map.putAll:(Ljava/util/Map;)V
        16: .line 115
            aload 0 /* this */
            getfield org.jruby.javasupport.binding.MethodGatherer.instanceNames:Ljava/util/Map;
            getstatic org.jruby.javasupport.binding.MethodGatherer.INSTANCE_RESERVED_NAMES:Ljava/util/Map;
            invokeinterface java.util.Map.putAll:(Ljava/util/Map;)V
        17: .line 116
            aload 0 /* this */
            getfield org.jruby.javasupport.binding.MethodGatherer.instanceNames:Ljava/util/Map;
            aload 5 /* instanceAssignedNames */
            invokeinterface java.util.Map.putAll:(Ljava/util/Map;)V
        end local 5 // java.util.Map instanceAssignedNames
        end local 4 // java.util.Map staticAssignedNames
        end local 3 // org.jruby.javasupport.JavaSupport javaSupport
        18: .line 118
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.Class superClass
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.javasupport.binding.MethodGatherer this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   19     0                   this  Lorg/jruby/javasupport/binding/MethodGatherer;
            0   19     1                runtime  Lorg/jruby/Ruby;
            0   19     2             superClass  Ljava/lang/Class;
           10   18     3            javaSupport  Lorg/jruby/javasupport/JavaSupport;
           11   18     4    staticAssignedNames  Ljava/util/Map<Ljava/lang/String;Lorg/jruby/javasupport/binding/AssignedName;>;
           13   18     5  instanceAssignedNames  Ljava/util/Map<Ljava/lang/String;Lorg/jruby/javasupport/binding/AssignedName;>;
    MethodParameters:
            Name  Flags
      runtime     final
      superClass  final

  void initialize(java.lang.Class<?>, org.jruby.RubyModule);
    descriptor: (Ljava/lang/Class;Lorg/jruby/RubyModule;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // org.jruby.javasupport.binding.MethodGatherer this
        start local 1 // java.lang.Class javaClass
        start local 2 // org.jruby.RubyModule proxy
         0: .line 121
            aload 0 /* this */
            aload 1 /* javaClass */
            invokevirtual org.jruby.javasupport.binding.MethodGatherer.setupFieldsAndConstants:(Ljava/lang/Class;)V
         1: .line 122
            aload 0 /* this */
            aload 1 /* javaClass */
            invokevirtual org.jruby.javasupport.binding.MethodGatherer.setupMethods:(Ljava/lang/Class;)V
         2: .line 123
            aload 0 /* this */
            aload 1 /* javaClass */
            invokevirtual org.jruby.javasupport.binding.MethodGatherer.setupScalaSingleton:(Ljava/lang/Class;)V
         3: .line 125
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.binding.MethodGatherer.assignStaticAliases:()V
         4: .line 127
            aload 0 /* this */
            getfield org.jruby.javasupport.binding.MethodGatherer.runtime:Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getJavaSupport:()Lorg/jruby/javasupport/JavaSupport;
            astore 3 /* javaSupport */
        start local 3 // org.jruby.javasupport.JavaSupport javaSupport
         5: .line 129
            aload 3 /* javaSupport */
            invokevirtual org.jruby.javasupport.JavaSupport.getStaticAssignedNames:()Lorg/jruby/util/collections/ClassValue;
            aload 1 /* javaClass */
            invokevirtual org.jruby.util.collections.ClassValue.get:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast java.util.Map
            aload 0 /* this */
            getfield org.jruby.javasupport.binding.MethodGatherer.staticNames:Ljava/util/Map;
            invokeinterface java.util.Map.putAll:(Ljava/util/Map;)V
         6: .line 131
            aload 3 /* javaSupport */
            invokevirtual org.jruby.javasupport.JavaSupport.getInstanceAssignedNames:()Lorg/jruby/util/collections/ClassValue;
            aload 1 /* javaClass */
            invokevirtual org.jruby.util.collections.ClassValue.get:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast java.util.Map
            astore 4 /* instanceAssignedNames */
        start local 4 // java.util.Map instanceAssignedNames
         7: .line 132
            aload 1 /* javaClass */
            invokevirtual java.lang.Class.isInterface:()Z
            ifeq 10
         8: .line 133
            aload 4 /* instanceAssignedNames */
            invokeinterface java.util.Map.clear:()V
         9: .line 134
            goto 14
        10: .line 135
      StackMap locals: org.jruby.javasupport.JavaSupport java.util.Map
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.binding.MethodGatherer.assignInstanceAliases:()V
        11: .line 137
            aload 4 /* instanceAssignedNames */
            aload 0 /* this */
            getfield org.jruby.javasupport.binding.MethodGatherer.instanceNames:Ljava/util/Map;
            invokeinterface java.util.Map.putAll:(Ljava/util/Map;)V
        12: .line 139
            aload 0 /* this */
            aload 2 /* proxy */
            invokevirtual org.jruby.javasupport.binding.MethodGatherer.installInstanceMethods:(Lorg/jruby/RubyModule;)V
        13: .line 140
            aload 0 /* this */
            aload 1 /* javaClass */
            aload 2 /* proxy */
            invokevirtual org.jruby.javasupport.binding.MethodGatherer.installConstructors:(Ljava/lang/Class;Lorg/jruby/RubyModule;)V
        14: .line 143
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* proxy */
            invokevirtual org.jruby.javasupport.binding.MethodGatherer.installConstants:(Lorg/jruby/RubyModule;)V
        15: .line 144
            aload 0 /* this */
            aload 2 /* proxy */
            invokevirtual org.jruby.javasupport.binding.MethodGatherer.installClassMethods:(Lorg/jruby/RubyModule;)V
        16: .line 145
            aload 0 /* this */
            aload 1 /* javaClass */
            aload 2 /* proxy */
            invokevirtual org.jruby.javasupport.binding.MethodGatherer.installInnerClasses:(Ljava/lang/Class;Lorg/jruby/RubyModule;)V
        17: .line 146
            return
        end local 4 // java.util.Map instanceAssignedNames
        end local 3 // org.jruby.javasupport.JavaSupport javaSupport
        end local 2 // org.jruby.RubyModule proxy
        end local 1 // java.lang.Class javaClass
        end local 0 // org.jruby.javasupport.binding.MethodGatherer this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   18     0                   this  Lorg/jruby/javasupport/binding/MethodGatherer;
            0   18     1              javaClass  Ljava/lang/Class<*>;
            0   18     2                  proxy  Lorg/jruby/RubyModule;
            5   18     3            javaSupport  Lorg/jruby/javasupport/JavaSupport;
            7   18     4  instanceAssignedNames  Ljava/util/Map<Ljava/lang/String;Lorg/jruby/javasupport/binding/AssignedName;>;
    Signature: (Ljava/lang/Class<*>;Lorg/jruby/RubyModule;)V
    MethodParameters:
           Name  Flags
      javaClass  
      proxy      

  static java.util.Map<java.lang.String, java.util.List<java.lang.reflect.Method>> getMethods(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Ljava/util/Map;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=8, args_size=1
        start local 0 // java.lang.Class javaClass
         0: .line 149
            new java.util.HashMap
            dup
            bipush 32
            invokespecial java.util.HashMap.<init>:(I)V
            astore 1 /* nameMethods */
        start local 1 // java.util.HashMap nameMethods
         1: .line 153
            aload 0 /* javaClass */
            astore 2 /* klass */
        start local 2 // java.lang.Class klass
         2: goto 19
         3: .line 156
      StackMap locals: java.util.HashMap java.lang.Class
      StackMap stack:
            aload 2 /* klass */
            invokevirtual java.lang.Class.getModifiers:()I
            invokestatic java.lang.reflect.Modifier.isPublic:(I)Z
            pop
         4: .line 161
            getstatic org.jruby.javasupport.binding.MethodGatherer.FILTERED_DECLARED_METHODS:Ljava/lang/ClassValue;
            aload 2 /* klass */
            invokevirtual java.lang.ClassValue.get:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast org.jruby.javasupport.binding.MethodGatherer$PartitionedMethods
            astore 3 /* filteredMethods */
        start local 3 // org.jruby.javasupport.binding.MethodGatherer$PartitionedMethods filteredMethods
         5: .line 163
            aload 1 /* nameMethods */
            aload 3 /* filteredMethods */
            getfield org.jruby.javasupport.binding.MethodGatherer$PartitionedMethods.instanceMethods:[Ljava/lang/reflect/Method;
            iconst_1
            invokestatic org.jruby.javasupport.binding.MethodGatherer.addNewMethods:(Ljava/util/HashMap;[Ljava/lang/reflect/Method;Z)V
         6: .line 165
            aload 2 /* klass */
            aload 0 /* javaClass */
            if_acmpne 10
         7: .line 166
            aload 1 /* nameMethods */
            aload 3 /* filteredMethods */
            getfield org.jruby.javasupport.binding.MethodGatherer$PartitionedMethods.staticMethods:[Ljava/lang/reflect/Method;
            iconst_1
            invokestatic org.jruby.javasupport.binding.MethodGatherer.addNewMethods:(Ljava/util/HashMap;[Ljava/lang/reflect/Method;Z)V
        end local 3 // org.jruby.javasupport.binding.MethodGatherer$PartitionedMethods filteredMethods
         8: .line 168
            goto 10
         9: .line 169
      StackMap locals:
      StackMap stack: java.lang.SecurityException
            pop
        10: .line 173
      StackMap locals:
      StackMap stack:
            getstatic org.jruby.javasupport.binding.MethodGatherer.INTERFACES:Ljava/lang/ClassValue;
            aload 2 /* klass */
            invokevirtual java.lang.ClassValue.get:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast java.lang.Class[]
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 17
      StackMap locals: java.lang.Class java.util.HashMap java.lang.Class top int int java.lang.Class[]
      StackMap stack:
        11: aload 6
            iload 4
            aaload
            astore 3 /* iface */
        start local 3 // java.lang.Class iface
        12: .line 178
            getstatic org.jruby.javasupport.binding.MethodGatherer.FILTERED_METHODS:Ljava/lang/ClassValue;
            aload 3 /* iface */
            invokevirtual java.lang.ClassValue.get:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast org.jruby.javasupport.binding.MethodGatherer$PartitionedMethods
            astore 7 /* filteredMethods */
        start local 7 // org.jruby.javasupport.binding.MethodGatherer$PartitionedMethods filteredMethods
        13: .line 180
            aload 1 /* nameMethods */
            aload 7 /* filteredMethods */
            getfield org.jruby.javasupport.binding.MethodGatherer$PartitionedMethods.instanceMethods:[Ljava/lang/reflect/Method;
            iconst_0
            invokestatic org.jruby.javasupport.binding.MethodGatherer.addNewMethods:(Ljava/util/HashMap;[Ljava/lang/reflect/Method;Z)V
        end local 7 // org.jruby.javasupport.binding.MethodGatherer$PartitionedMethods filteredMethods
        14: .line 181
            goto 16
        15: .line 182
      StackMap locals: java.lang.Class java.util.HashMap java.lang.Class java.lang.Class int int java.lang.Class[]
      StackMap stack: java.lang.SecurityException
            pop
        end local 3 // java.lang.Class iface
        16: .line 173
      StackMap locals: java.lang.Class java.util.HashMap java.lang.Class top int int java.lang.Class[]
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
        17: iload 4
            iload 5
            if_icmplt 11
        18: .line 153
            aload 2 /* klass */
            invokevirtual java.lang.Class.getSuperclass:()Ljava/lang/Class;
            astore 2 /* klass */
      StackMap locals: java.lang.Class java.util.HashMap java.lang.Class
      StackMap stack:
        19: aload 2 /* klass */
            ifnonnull 3
        end local 2 // java.lang.Class klass
        20: .line 186
            aload 1 /* nameMethods */
            areturn
        end local 1 // java.util.HashMap nameMethods
        end local 0 // java.lang.Class javaClass
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   21     0        javaClass  Ljava/lang/Class<*>;
            1   21     1      nameMethods  Ljava/util/HashMap<Ljava/lang/String;Ljava/util/List<Ljava/lang/reflect/Method;>;>;
            2   20     2            klass  Ljava/lang/Class<*>;
            5    8     3  filteredMethods  Lorg/jruby/javasupport/binding/MethodGatherer$PartitionedMethods;
           12   16     3            iface  Ljava/lang/Class;
           13   14     7  filteredMethods  Lorg/jruby/javasupport/binding/MethodGatherer$PartitionedMethods;
      Exception table:
        from    to  target  type
           4     8       9  Class java.lang.SecurityException
          12    14      15  Class java.lang.SecurityException
    Signature: (Ljava/lang/Class<*>;)Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/reflect/Method;>;>;
    MethodParameters:
           Name  Flags
      javaClass  final

  private static boolean methodsAreEquivalent(java.lang.reflect.Method, java.lang.reflect.Method);
    descriptor: (Ljava/lang/reflect/Method;Ljava/lang/reflect/Method;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // java.lang.reflect.Method child
        start local 1 // java.lang.reflect.Method parent
         0: .line 192
            aload 1 /* parent */
            invokevirtual java.lang.reflect.Method.getDeclaringClass:()Ljava/lang/Class;
            aload 0 /* child */
            invokevirtual java.lang.reflect.Method.getDeclaringClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 10
         1: .line 193
            aload 0 /* child */
            invokevirtual java.lang.reflect.Method.getReturnType:()Ljava/lang/Class;
            aload 1 /* parent */
            invokevirtual java.lang.reflect.Method.getReturnType:()Ljava/lang/Class;
            if_acmpne 10
         2: .line 194
            aload 0 /* child */
            invokevirtual java.lang.reflect.Method.isVarArgs:()Z
            aload 1 /* parent */
            invokevirtual java.lang.reflect.Method.isVarArgs:()Z
            if_icmpne 10
         3: .line 195
            aload 0 /* child */
            invokevirtual java.lang.reflect.Method.getModifiers:()I
            dup
            istore 2 /* childModifiers */
        start local 2 // int childModifiers
         4: invokestatic java.lang.reflect.Modifier.isPublic:(I)Z
            aload 1 /* parent */
            invokevirtual java.lang.reflect.Method.getModifiers:()I
            dup
            istore 3 /* parentModifiers */
        start local 3 // int parentModifiers
         5: invokestatic java.lang.reflect.Modifier.isPublic:(I)Z
            if_icmpne 10
         6: .line 196
            iload 2 /* childModifiers */
            invokestatic java.lang.reflect.Modifier.isProtected:(I)Z
            iload 3 /* parentModifiers */
            invokestatic java.lang.reflect.Modifier.isProtected:(I)Z
            if_icmpne 10
         7: .line 197
            iload 2 /* childModifiers */
            invokestatic java.lang.reflect.Modifier.isStatic:(I)Z
            iload 3 /* parentModifiers */
            invokestatic java.lang.reflect.Modifier.isStatic:(I)Z
            if_icmpne 10
         8: .line 198
            aload 0 /* child */
            invokevirtual java.lang.reflect.Method.getParameterTypes:()[Ljava/lang/Class;
            aload 1 /* parent */
            invokevirtual java.lang.reflect.Method.getParameterTypes:()[Ljava/lang/Class;
            invokestatic java.util.Arrays.equals:([Ljava/lang/Object;[Ljava/lang/Object;)Z
            ifeq 10
        end local 3 // int parentModifiers
        end local 2 // int childModifiers
         9: .line 192
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
        10: iconst_0
            ireturn
        end local 1 // java.lang.reflect.Method parent
        end local 0 // java.lang.reflect.Method child
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   11     0            child  Ljava/lang/reflect/Method;
            0   11     1           parent  Ljava/lang/reflect/Method;
            4    9     2   childModifiers  I
            5    9     3  parentModifiers  I
    MethodParameters:
        Name  Flags
      child   
      parent  

  private static void addNewMethods(java.util.HashMap<java.lang.String, java.util.List<java.lang.reflect.Method>>, java.lang.reflect.Method[], );
    descriptor: (Ljava/util/HashMap;[Ljava/lang/reflect/Method;Z)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=10, args_size=3
        start local 0 // java.util.HashMap nameMethods
        start local 1 // java.lang.reflect.Method[] methods
        start local 2 // boolean removeDuplicate
         0: .line 206
            aload 1 /* methods */
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 19
      StackMap locals: java.util.HashMap java.lang.reflect.Method[] int top int int java.lang.reflect.Method[]
      StackMap stack:
         1: aload 6
            iload 4
            aaload
            astore 3 /* method */
        start local 3 // java.lang.reflect.Method method
         2: .line 207
            aload 0 /* nameMethods */
            aload 3 /* method */
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.List
            astore 7 /* childMethods */
        start local 7 // java.util.List childMethods
         3: .line 208
            aload 7 /* childMethods */
            ifnonnull 8
         4: .line 210
            new java.util.ArrayList
            dup
            iconst_4
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 7 /* childMethods */
         5: .line 211
            aload 7 /* childMethods */
            aload 3 /* method */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         6: .line 212
            aload 0 /* nameMethods */
            aload 3 /* method */
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            aload 7 /* childMethods */
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         7: .line 213
            goto 18
         8: .line 216
      StackMap locals: java.util.HashMap java.lang.reflect.Method[] int java.lang.reflect.Method int int java.lang.reflect.Method[] java.util.List
      StackMap stack:
            iconst_0
            istore 8 /* i */
        start local 8 // int i
         9: goto 16
        10: .line 217
      StackMap locals: int
      StackMap stack:
            aload 7 /* childMethods */
            iload 8 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.reflect.Method
            astore 9 /* current */
        start local 9 // java.lang.reflect.Method current
        11: .line 218
            aload 9 /* current */
            aload 3 /* method */
            invokestatic org.jruby.javasupport.binding.MethodGatherer.methodsAreEquivalent:(Ljava/lang/reflect/Method;Ljava/lang/reflect/Method;)Z
            ifeq 15
        12: .line 219
            iload 2 /* removeDuplicate */
            ifeq 18
        13: .line 224
            aload 7 /* childMethods */
            iload 8 /* i */
            aload 3 /* method */
            invokeinterface java.util.List.set:(ILjava/lang/Object;)Ljava/lang/Object;
            pop
        14: .line 230
            goto 18
        end local 9 // java.lang.reflect.Method current
        15: .line 216
      StackMap locals:
      StackMap stack:
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        16: iload 8 /* i */
            aload 7 /* childMethods */
            invokeinterface java.util.List.size:()I
            if_icmplt 10
        end local 8 // int i
        17: .line 234
            aload 7 /* childMethods */
            aload 3 /* method */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 7 // java.util.List childMethods
        end local 3 // java.lang.reflect.Method method
        18: .line 206
      StackMap locals: java.util.HashMap java.lang.reflect.Method[] int top int int java.lang.reflect.Method[]
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
        19: iload 4
            iload 5
            if_icmplt 1
        20: .line 237
            return
        end local 2 // boolean removeDuplicate
        end local 1 // java.lang.reflect.Method[] methods
        end local 0 // java.util.HashMap nameMethods
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   21     0      nameMethods  Ljava/util/HashMap<Ljava/lang/String;Ljava/util/List<Ljava/lang/reflect/Method;>;>;
            0   21     1          methods  [Ljava/lang/reflect/Method;
            0   21     2  removeDuplicate  Z
            2   18     3           method  Ljava/lang/reflect/Method;
            3   18     7     childMethods  Ljava/util/List<Ljava/lang/reflect/Method;>;
            9   17     8                i  I
           11   15     9          current  Ljava/lang/reflect/Method;
    Signature: (Ljava/util/HashMap<Ljava/lang/String;Ljava/util/List<Ljava/lang/reflect/Method;>;>;[Ljava/lang/reflect/Method;Z)V
    MethodParameters:
                 Name  Flags
      nameMethods      final
      methods          final
      removeDuplicate  final

  protected void installInnerClasses(java.lang.Class<?>, org.jruby.RubyModule);
    descriptor: (Ljava/lang/Class;Lorg/jruby/RubyModule;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=9, locals=9, args_size=3
        start local 0 // org.jruby.javasupport.binding.MethodGatherer this
        start local 1 // java.lang.Class javaClass
        start local 2 // org.jruby.RubyModule proxy
         0: .line 297
            aload 1 /* javaClass */
            invokestatic org.jruby.javasupport.JavaClass.getDeclaredClasses:(Ljava/lang/Class;)[Ljava/lang/Class;
            astore 3 /* classes */
        start local 3 // java.lang.Class[] classes
         1: .line 299
            aload 2 /* proxy */
            invokevirtual org.jruby.RubyModule.getRuntime:()Lorg/jruby/Ruby;
            astore 4 /* runtime */
        start local 4 // org.jruby.Ruby runtime
         2: .line 301
            aload 3 /* classes */
            arraylength
            istore 5 /* i */
        start local 5 // int i
         3: goto 16
         4: .line 302
      StackMap locals: java.lang.Class[] org.jruby.Ruby int
      StackMap stack:
            aload 3 /* classes */
            iload 5 /* i */
            aaload
            astore 6 /* clazz */
        start local 6 // java.lang.Class clazz
         5: .line 303
            aload 1 /* javaClass */
            aload 6 /* clazz */
            invokevirtual java.lang.Class.getDeclaringClass:()Ljava/lang/Class;
            if_acmpeq 6
            goto 16
         6: .line 306
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 6 /* clazz */
            invokevirtual java.lang.Class.getModifiers:()I
            invokestatic java.lang.reflect.Modifier.isPublic:(I)Z
            ifne 7
            goto 16
         7: .line 308
      StackMap locals:
      StackMap stack:
            aload 6 /* clazz */
            invokestatic org.jruby.javasupport.JavaClass.getSimpleName:(Ljava/lang/Class;)Ljava/lang/String;
            astore 7 /* simpleName */
        start local 7 // java.lang.String simpleName
         8: .line 309
            aload 7 /* simpleName */
            invokevirtual java.lang.String.length:()I
            ifne 9
            goto 16
         9: .line 311
      StackMap locals: java.lang.String
      StackMap stack:
            aload 4 /* runtime */
            aload 4 /* runtime */
            aload 6 /* clazz */
            invokestatic org.jruby.javasupport.JavaClass.get:(Lorg/jruby/Ruby;Ljava/lang/Class;)Lorg/jruby/javasupport/JavaClass;
            invokestatic org.jruby.javasupport.Java.getProxyClass:(Lorg/jruby/Ruby;Lorg/jruby/javasupport/JavaClass;)Lorg/jruby/RubyModule;
            astore 8 /* innerProxy */
        start local 8 // org.jruby.RubyModule innerProxy
        10: .line 313
            aload 7 /* simpleName */
            invokestatic org.jruby.util.IdUtil.isConstant:(Ljava/lang/String;)Z
            ifeq 14
        11: .line 314
            aload 2 /* proxy */
            aload 7 /* simpleName */
            invokevirtual org.jruby.RubyModule.getConstantAt:(Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            ifnonnull 16
        12: .line 315
            aload 2 /* proxy */
            aload 4 /* runtime */
            aload 7 /* simpleName */
            invokevirtual org.jruby.Ruby.newString:(Ljava/lang/String;)Lorg/jruby/RubyString;
            aload 8 /* innerProxy */
            invokevirtual org.jruby.RubyModule.const_set:(Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        13: .line 317
            goto 16
        14: .line 319
      StackMap locals: org.jruby.RubyModule
      StackMap stack:
            aload 2 /* proxy */
            aload 7 /* simpleName */
            invokevirtual org.jruby.RubyModule.respondsTo:(Ljava/lang/String;)Z
            ifne 16
        15: .line 321
            aload 2 /* proxy */
            invokevirtual org.jruby.RubyModule.getSingletonClass:()Lorg/jruby/RubyClass;
            aload 7 /* simpleName */
            new org.jruby.javasupport.binding.MethodGatherer$7
            dup
            aload 0 /* this */
            aload 2 /* proxy */
            invokevirtual org.jruby.RubyModule.getSingletonClass:()Lorg/jruby/RubyClass;
            getstatic org.jruby.runtime.Visibility.PUBLIC:Lorg/jruby/runtime/Visibility;
            aload 7 /* simpleName */
            aload 8 /* innerProxy */
            invokespecial org.jruby.javasupport.binding.MethodGatherer$7.<init>:(Lorg/jruby/javasupport/binding/MethodGatherer;Lorg/jruby/RubyModule;Lorg/jruby/runtime/Visibility;Ljava/lang/String;Lorg/jruby/RubyModule;)V
            invokevirtual org.jruby.RubyClass.addMethod:(Ljava/lang/String;Lorg/jruby/internal/runtime/methods/DynamicMethod;)V
        end local 8 // org.jruby.RubyModule innerProxy
        end local 7 // java.lang.String simpleName
        end local 6 // java.lang.Class clazz
        16: .line 301
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ -1
            iload 5 /* i */
            ifge 4
        end local 5 // int i
        17: .line 330
            return
        end local 4 // org.jruby.Ruby runtime
        end local 3 // java.lang.Class[] classes
        end local 2 // org.jruby.RubyModule proxy
        end local 1 // java.lang.Class javaClass
        end local 0 // org.jruby.javasupport.binding.MethodGatherer this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   18     0        this  Lorg/jruby/javasupport/binding/MethodGatherer;
            0   18     1   javaClass  Ljava/lang/Class<*>;
            0   18     2       proxy  Lorg/jruby/RubyModule;
            1   18     3     classes  [Ljava/lang/Class;
            2   18     4     runtime  Lorg/jruby/Ruby;
            3   17     5           i  I
            5   16     6       clazz  Ljava/lang/Class<*>;
            8   16     7  simpleName  Ljava/lang/String;
           10   16     8  innerProxy  Lorg/jruby/RubyModule;
    Signature: (Ljava/lang/Class<*>;Lorg/jruby/RubyModule;)V
    MethodParameters:
           Name  Flags
      javaClass  final
      proxy      final

  protected void setupScalaSingleton(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // org.jruby.javasupport.binding.MethodGatherer this
        start local 1 // java.lang.Class javaClass
         0: .line 333
            aload 1 /* javaClass */
            invokevirtual java.lang.Class.isInterface:()Z
            ifeq 1
            return
         1: .line 337
      StackMap locals:
      StackMap stack:
            aload 1 /* javaClass */
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            astore 2 /* loader */
        start local 2 // java.lang.ClassLoader loader
         2: .line 338
            aload 2 /* loader */
            ifnonnull 4
         3: return
         4: .line 340
      StackMap locals: java.lang.ClassLoader
      StackMap stack:
            getstatic org.jruby.javasupport.binding.MethodGatherer.IS_SCALA:Ljava/lang/ClassValue;
            aload 1 /* javaClass */
            invokevirtual java.lang.ClassValue.get:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifne 6
         5: return
         6: .line 342
      StackMap locals:
      StackMap stack:
            aload 2 /* loader */
            new java.lang.StringBuilder
            dup
            aload 1 /* javaClass */
            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 36
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.ClassLoader.loadClass:(Ljava/lang/String;)Ljava/lang/Class;
            astore 3 /* companionClass */
        start local 3 // java.lang.Class companionClass
         7: .line 343
            aload 3 /* companionClass */
            ldc "MODULE$"
            invokevirtual java.lang.Class.getField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
            astore 4 /* field */
        start local 4 // java.lang.reflect.Field field
         8: .line 344
            aload 4 /* field */
            aconst_null
            invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 5 /* singleton */
        start local 5 // java.lang.Object singleton
         9: .line 345
            aload 5 /* singleton */
            ifnonnull 11
        10: return
        11: .line 347
      StackMap locals: java.lang.Class java.lang.reflect.Field java.lang.Object
      StackMap stack:
            aload 3 /* companionClass */
            invokestatic org.jruby.javasupport.binding.MethodGatherer.getMethods:(Ljava/lang/Class;)Ljava/util/Map;
            aload 0 /* this */
            aload 3 /* companionClass */
            aload 1 /* javaClass */
            aload 5 /* singleton */
            invokedynamic accept(Lorg/jruby/javasupport/binding/MethodGatherer;Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/Object;)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/javasupport/binding/MethodGatherer.lambda$0(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/Object;Ljava/lang/String;Ljava/util/List;)V (7)
                  (Ljava/lang/String;Ljava/util/List;)V
            invokeinterface java.util.Map.forEach:(Ljava/util/function/BiConsumer;)V
        end local 5 // java.lang.Object singleton
        end local 4 // java.lang.reflect.Field field
        end local 3 // java.lang.Class companionClass
        end local 2 // java.lang.ClassLoader loader
        12: .line 384
            goto 16
        13: .line 385
      StackMap locals: org.jruby.javasupport.binding.MethodGatherer java.lang.Class
      StackMap stack: java.lang.ClassNotFoundException
            pop
            goto 16
        14: .line 386
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldException
            pop
            goto 16
        15: .line 387
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 2
        16: .line 390
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Class javaClass
        end local 0 // org.jruby.javasupport.binding.MethodGatherer this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   17     0            this  Lorg/jruby/javasupport/binding/MethodGatherer;
            0   17     1       javaClass  Ljava/lang/Class<*>;
            2   12     2          loader  Ljava/lang/ClassLoader;
            7   12     3  companionClass  Ljava/lang/Class<*>;
            8   12     4           field  Ljava/lang/reflect/Field;
            9   12     5       singleton  Ljava/lang/Object;
      Exception table:
        from    to  target  type
           1     3      13  Class java.lang.ClassNotFoundException
           4     5      13  Class java.lang.ClassNotFoundException
           6    10      13  Class java.lang.ClassNotFoundException
          11    12      13  Class java.lang.ClassNotFoundException
           1     3      14  Class java.lang.NoSuchFieldException
           4     5      14  Class java.lang.NoSuchFieldException
           6    10      14  Class java.lang.NoSuchFieldException
          11    12      14  Class java.lang.NoSuchFieldException
           1     3      15  Class java.lang.Exception
           4     5      15  Class java.lang.Exception
           6    10      15  Class java.lang.Exception
          11    12      15  Class java.lang.Exception
    Signature: (Ljava/lang/Class<*>;)V
    MethodParameters:
           Name  Flags
      javaClass  final

  protected static java.lang.String fixScalaNames(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // java.lang.String name
         0: .line 393
            aload 0 /* name */
            astore 1 /* s */
        start local 1 // java.lang.String s
         1: .line 394
            getstatic org.jruby.javasupport.binding.MethodGatherer.SCALA_OPERATORS:Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 4
      StackMap locals: java.lang.String java.lang.String top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 2 /* entry */
        start local 2 // java.util.Map$Entry entry
         3: .line 395
            aload 1 /* s */
            aload 2 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            aload 2 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual java.lang.String.replaceAll:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 1 /* s */
        end local 2 // java.util.Map$Entry entry
         4: .line 394
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 397
            aload 1 /* s */
            areturn
        end local 1 // java.lang.String s
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   name  Ljava/lang/String;
            1    6     1      s  Ljava/lang/String;
            3    4     2  entry  Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/String;>;
    MethodParameters:
      Name  Flags
      name  final

  protected void installConstants(org.jruby.RubyModule);
    descriptor: (Lorg/jruby/RubyModule;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.javasupport.binding.MethodGatherer this
        start local 1 // org.jruby.RubyModule proxy
         0: .line 401
            aload 0 /* this */
            getfield org.jruby.javasupport.binding.MethodGatherer.constantFields:Ljava/util/List;
            aload 1 /* proxy */
            invokedynamic accept(Lorg/jruby/RubyModule;)Ljava/util/function/Consumer;
              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;)V
                  org/jruby/javasupport/binding/MethodGatherer.lambda$1(Lorg/jruby/RubyModule;Lorg/jruby/javasupport/binding/ConstantField;)V (6)
                  (Lorg/jruby/javasupport/binding/ConstantField;)V
            invokeinterface java.util.List.forEach:(Ljava/util/function/Consumer;)V
         1: .line 402
            return
        end local 1 // org.jruby.RubyModule proxy
        end local 0 // org.jruby.javasupport.binding.MethodGatherer this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/jruby/javasupport/binding/MethodGatherer;
            0    2     1  proxy  Lorg/jruby/RubyModule;
    MethodParameters:
       Name  Flags
      proxy  final

  protected void installClassMethods(org.jruby.RubyModule);
    descriptor: (Lorg/jruby/RubyModule;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.javasupport.binding.MethodGatherer this
        start local 1 // org.jruby.RubyModule proxy
         0: .line 405
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.binding.MethodGatherer.getStaticInstallers:()Ljava/util/Map;
            aload 1 /* proxy */
            invokedynamic accept(Lorg/jruby/RubyModule;)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/javasupport/binding/MethodGatherer.lambda$2(Lorg/jruby/RubyModule;Ljava/lang/String;Lorg/jruby/javasupport/binding/NamedInstaller;)V (6)
                  (Ljava/lang/String;Lorg/jruby/javasupport/binding/NamedInstaller;)V
            invokeinterface java.util.Map.forEach:(Ljava/util/function/BiConsumer;)V
         1: .line 406
            return
        end local 1 // org.jruby.RubyModule proxy
        end local 0 // org.jruby.javasupport.binding.MethodGatherer this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/jruby/javasupport/binding/MethodGatherer;
            0    2     1  proxy  Lorg/jruby/RubyModule;
    MethodParameters:
       Name  Flags
      proxy  final

  void installConstructors(java.lang.Class<?>, org.jruby.RubyModule);
    descriptor: (Ljava/lang/Class;Lorg/jruby/RubyModule;)V
    flags: (0x0000) 
    Code:
      stack=7, locals=9, args_size=3
        start local 0 // org.jruby.javasupport.binding.MethodGatherer this
        start local 1 // java.lang.Class javaClass
        start local 2 // org.jruby.RubyModule proxy
         0: .line 409
            aload 1 /* javaClass */
            invokestatic org.jruby.javasupport.JavaClass.getConstructors:(Ljava/lang/Class;)[Ljava/lang/reflect/Constructor;
            astore 3 /* constructors */
        start local 3 // java.lang.reflect.Constructor[] constructors
         1: .line 411
            iconst_0
            istore 4 /* localConstructor */
        start local 4 // boolean localConstructor
         2: .line 412
            aload 3 /* constructors */
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 8
      StackMap locals: org.jruby.javasupport.binding.MethodGatherer java.lang.Class org.jruby.RubyModule java.lang.reflect.Constructor[] int top int int java.lang.reflect.Constructor[]
      StackMap stack:
         3: aload 8
            iload 6
            aaload
            astore 5 /* constructor */
        start local 5 // java.lang.reflect.Constructor constructor
         4: .line 413
            iload 4 /* localConstructor */
            aload 1 /* javaClass */
            aload 5 /* constructor */
            invokevirtual java.lang.reflect.Constructor.getDeclaringClass:()Ljava/lang/Class;
            if_acmpne 5
            iconst_1
            goto 6
      StackMap locals: org.jruby.javasupport.binding.MethodGatherer java.lang.Class org.jruby.RubyModule java.lang.reflect.Constructor[] int java.lang.reflect.Constructor int int java.lang.reflect.Constructor[]
      StackMap stack: int
         5: iconst_0
      StackMap locals: org.jruby.javasupport.binding.MethodGatherer java.lang.Class org.jruby.RubyModule java.lang.reflect.Constructor[] int java.lang.reflect.Constructor int int java.lang.reflect.Constructor[]
      StackMap stack: int int
         6: ior
            istore 4 /* localConstructor */
        end local 5 // java.lang.reflect.Constructor constructor
         7: .line 412
            iinc 6 1
      StackMap locals: org.jruby.javasupport.binding.MethodGatherer java.lang.Class org.jruby.RubyModule java.lang.reflect.Constructor[] int top int int java.lang.reflect.Constructor[]
      StackMap stack:
         8: iload 6
            iload 7
            if_icmplt 3
         9: .line 416
            iload 4 /* localConstructor */
            ifeq 12
        10: .line 419
            aload 2 /* proxy */
            ldc "__jcreate!"
            new org.jruby.java.invokers.ConstructorInvoker
            dup
            aload 2 /* proxy */
            aload 1 /* javaClass */
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic get(Ljava/lang/Class;)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;
                  java/lang/Class.getConstructors()[Ljava/lang/reflect/Constructor; (5)
                  ()[Ljava/lang/reflect/Constructor;
            ldc "__jcreate!"
            invokespecial org.jruby.java.invokers.ConstructorInvoker.<init>:(Lorg/jruby/RubyModule;Ljava/util/function/Supplier;Ljava/lang/String;)V
            invokevirtual org.jruby.RubyModule.addMethod:(Ljava/lang/String;Lorg/jruby/internal/runtime/methods/DynamicMethod;)V
        11: .line 420
            goto 13
        12: .line 422
      StackMap locals: org.jruby.javasupport.binding.MethodGatherer java.lang.Class org.jruby.RubyModule java.lang.reflect.Constructor[] int
      StackMap stack:
            aload 2 /* proxy */
            ldc "__jcreate!"
            new org.jruby.javasupport.binding.MethodGatherer$NoConstructorMethod
            dup
            aload 2 /* proxy */
            ldc "__jcreate!"
            invokespecial org.jruby.javasupport.binding.MethodGatherer$NoConstructorMethod.<init>:(Lorg/jruby/RubyModule;Ljava/lang/String;)V
            invokevirtual org.jruby.RubyModule.addMethod:(Ljava/lang/String;Lorg/jruby/internal/runtime/methods/DynamicMethod;)V
        13: .line 424
      StackMap locals:
      StackMap stack:
            return
        end local 4 // boolean localConstructor
        end local 3 // java.lang.reflect.Constructor[] constructors
        end local 2 // org.jruby.RubyModule proxy
        end local 1 // java.lang.Class javaClass
        end local 0 // org.jruby.javasupport.binding.MethodGatherer this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   14     0              this  Lorg/jruby/javasupport/binding/MethodGatherer;
            0   14     1         javaClass  Ljava/lang/Class<*>;
            0   14     2             proxy  Lorg/jruby/RubyModule;
            1   14     3      constructors  [Ljava/lang/reflect/Constructor;
            2   14     4  localConstructor  Z
            4    7     5       constructor  Ljava/lang/reflect/Constructor;
    Signature: (Ljava/lang/Class<*>;Lorg/jruby/RubyModule;)V
    MethodParameters:
           Name  Flags
      javaClass  
      proxy      final

  protected void prepareStaticMethod(java.lang.Class<?>, java.lang.reflect.Method, java.lang.String);
    descriptor: (Ljava/lang/Class;Ljava/lang/reflect/Method;Ljava/lang/String;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=8, locals=4, args_size=4
        start local 0 // org.jruby.javasupport.binding.MethodGatherer this
        start local 1 // java.lang.Class javaClass
        start local 2 // java.lang.reflect.Method method
        start local 3 // java.lang.String name
         0: .line 438
            aload 0 /* this */
            aload 1 /* javaClass */
            aload 2 /* method */
            aload 3 /* name */
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.binding.MethodGatherer.getStaticInstallersForWrite:()Ljava/util/Map;
            getstatic org.jruby.javasupport.binding.MethodGatherer.STATIC_RESERVED_NAMES:Ljava/util/Map;
            aload 0 /* this */
            getfield org.jruby.javasupport.binding.MethodGatherer.staticNames:Ljava/util/Map;
            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/javasupport/binding/StaticMethodInvokerInstaller.<init>(Ljava/lang/String;)V (8)
                  (Ljava/lang/String;)Lorg/jruby/javasupport/binding/NamedInstaller;
            invokevirtual org.jruby.javasupport.binding.MethodGatherer.prepareMethod:(Ljava/lang/Class;Ljava/lang/reflect/Method;Ljava/lang/String;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Ljava/util/function/Function;)V
         1: .line 439
            return
        end local 3 // java.lang.String name
        end local 2 // java.lang.reflect.Method method
        end local 1 // java.lang.Class javaClass
        end local 0 // org.jruby.javasupport.binding.MethodGatherer this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lorg/jruby/javasupport/binding/MethodGatherer;
            0    2     1  javaClass  Ljava/lang/Class<*>;
            0    2     2     method  Ljava/lang/reflect/Method;
            0    2     3       name  Ljava/lang/String;
    Signature: (Ljava/lang/Class<*>;Ljava/lang/reflect/Method;Ljava/lang/String;)V
    MethodParameters:
           Name  Flags
      javaClass  
      method     
      name       

  protected void prepareInstanceMethod(java.lang.Class<?>, java.lang.reflect.Method, java.lang.String);
    descriptor: (Ljava/lang/Class;Ljava/lang/reflect/Method;Ljava/lang/String;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=8, locals=4, args_size=4
        start local 0 // org.jruby.javasupport.binding.MethodGatherer this
        start local 1 // java.lang.Class javaClass
        start local 2 // java.lang.reflect.Method method
        start local 3 // java.lang.String name
         0: .line 442
            aload 0 /* this */
            aload 1 /* javaClass */
            aload 2 /* method */
            aload 3 /* name */
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.binding.MethodGatherer.getInstanceInstallersForWrite:()Ljava/util/Map;
            getstatic org.jruby.javasupport.binding.MethodGatherer.INSTANCE_RESERVED_NAMES:Ljava/util/Map;
            aload 0 /* this */
            getfield org.jruby.javasupport.binding.MethodGatherer.instanceNames:Ljava/util/Map;
            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/javasupport/binding/InstanceMethodInvokerInstaller.<init>(Ljava/lang/String;)V (8)
                  (Ljava/lang/String;)Lorg/jruby/javasupport/binding/NamedInstaller;
            invokevirtual org.jruby.javasupport.binding.MethodGatherer.prepareMethod:(Ljava/lang/Class;Ljava/lang/reflect/Method;Ljava/lang/String;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Ljava/util/function/Function;)V
         1: .line 443
            return
        end local 3 // java.lang.String name
        end local 2 // java.lang.reflect.Method method
        end local 1 // java.lang.Class javaClass
        end local 0 // org.jruby.javasupport.binding.MethodGatherer this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lorg/jruby/javasupport/binding/MethodGatherer;
            0    2     1  javaClass  Ljava/lang/Class<*>;
            0    2     2     method  Ljava/lang/reflect/Method;
            0    2     3       name  Ljava/lang/String;
    Signature: (Ljava/lang/Class<*>;Ljava/lang/reflect/Method;Ljava/lang/String;)V
    MethodParameters:
           Name  Flags
      javaClass  
      method     
      name       

  protected void prepareMethod(java.lang.Class<?>, java.lang.reflect.Method, java.lang.String, java.util.Map<java.lang.String, org.jruby.javasupport.binding.NamedInstaller>, java.util.Map<java.lang.String, org.jruby.javasupport.binding.AssignedName>, java.util.Map<java.lang.String, org.jruby.javasupport.binding.AssignedName>, java.util.function.Function<java.lang.String, org.jruby.javasupport.binding.NamedInstaller>);
    descriptor: (Ljava/lang/Class;Ljava/lang/reflect/Method;Ljava/lang/String;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Ljava/util/function/Function;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=9, args_size=8
        start local 0 // org.jruby.javasupport.binding.MethodGatherer this
        start local 1 // java.lang.Class javaClass
        start local 2 // java.lang.reflect.Method method
        start local 3 // java.lang.String name
        start local 4 // java.util.Map installers
        start local 5 // java.util.Map reservedNames
        start local 6 // java.util.Map names
        start local 7 // java.util.function.Function constructor
         0: .line 447
            aload 5 /* reservedNames */
            aload 2 /* method */
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 3
         1: .line 448
            new java.lang.StringBuilder
            dup
            aload 3 /* name */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "__method"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* name */
         2: .line 449
            goto 4
         3: .line 450
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* name */
            aload 4 /* installers */
            aload 6 /* names */
            invokevirtual org.jruby.javasupport.binding.MethodGatherer.lowerPriority:(Ljava/lang/String;Ljava/util/Map;Ljava/util/Map;)Z
            ifeq 4
            return
         4: .line 453
      StackMap locals:
      StackMap stack:
            aload 4 /* installers */
            aload 3 /* name */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.jruby.javasupport.binding.NamedInstaller
            astore 8 /* invoker */
        start local 8 // org.jruby.javasupport.binding.NamedInstaller invoker
         5: .line 454
            aload 8 /* invoker */
            ifnonnull 8
         6: .line 455
            aload 7 /* constructor */
            aload 3 /* name */
            invokeinterface java.util.function.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.jruby.javasupport.binding.NamedInstaller
            astore 8 /* invoker */
         7: .line 456
            aload 4 /* installers */
            aload 3 /* name */
            aload 8 /* invoker */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         8: .line 458
      StackMap locals: org.jruby.javasupport.binding.NamedInstaller
      StackMap stack:
            aload 8 /* invoker */
            checkcast org.jruby.javasupport.binding.MethodInstaller
            aload 2 /* method */
            aload 1 /* javaClass */
            invokevirtual org.jruby.javasupport.binding.MethodInstaller.addMethod:(Ljava/lang/reflect/Method;Ljava/lang/Class;)V
         9: .line 459
            return
        end local 8 // org.jruby.javasupport.binding.NamedInstaller invoker
        end local 7 // java.util.function.Function constructor
        end local 6 // java.util.Map names
        end local 5 // java.util.Map reservedNames
        end local 4 // java.util.Map installers
        end local 3 // java.lang.String name
        end local 2 // java.lang.reflect.Method method
        end local 1 // java.lang.Class javaClass
        end local 0 // org.jruby.javasupport.binding.MethodGatherer this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   10     0           this  Lorg/jruby/javasupport/binding/MethodGatherer;
            0   10     1      javaClass  Ljava/lang/Class<*>;
            0   10     2         method  Ljava/lang/reflect/Method;
            0   10     3           name  Ljava/lang/String;
            0   10     4     installers  Ljava/util/Map<Ljava/lang/String;Lorg/jruby/javasupport/binding/NamedInstaller;>;
            0   10     5  reservedNames  Ljava/util/Map<Ljava/lang/String;Lorg/jruby/javasupport/binding/AssignedName;>;
            0   10     6          names  Ljava/util/Map<Ljava/lang/String;Lorg/jruby/javasupport/binding/AssignedName;>;
            0   10     7    constructor  Ljava/util/function/Function<Ljava/lang/String;Lorg/jruby/javasupport/binding/NamedInstaller;>;
            5   10     8        invoker  Lorg/jruby/javasupport/binding/NamedInstaller;
    Signature: (Ljava/lang/Class<*>;Ljava/lang/reflect/Method;Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;Lorg/jruby/javasupport/binding/NamedInstaller;>;Ljava/util/Map<Ljava/lang/String;Lorg/jruby/javasupport/binding/AssignedName;>;Ljava/util/Map<Ljava/lang/String;Lorg/jruby/javasupport/binding/AssignedName;>;Ljava/util/function/Function<Ljava/lang/String;Lorg/jruby/javasupport/binding/NamedInstaller;>;)V
    MethodParameters:
               Name  Flags
      javaClass      
      method         
      name           
      installers     
      reservedNames  
      names          
      constructor    

  private boolean lowerPriority(java.lang.String, java.util.Map<java.lang.String, org.jruby.javasupport.binding.NamedInstaller>, java.util.Map<java.lang.String, org.jruby.javasupport.binding.AssignedName>);
    descriptor: (Ljava/lang/String;Ljava/util/Map;Ljava/util/Map;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=5, args_size=4
        start local 0 // org.jruby.javasupport.binding.MethodGatherer this
        start local 1 // java.lang.String name
        start local 2 // java.util.Map installers
        start local 3 // java.util.Map names
         0: .line 462
            aload 3 /* names */
            aload 1 /* name */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.jruby.javasupport.binding.AssignedName
            astore 4 /* assignedName */
        start local 4 // org.jruby.javasupport.binding.AssignedName assignedName
         1: .line 463
            aload 4 /* assignedName */
            ifnonnull 4
         2: .line 464
            aload 3 /* names */
            aload 1 /* name */
            new org.jruby.javasupport.binding.AssignedName
            dup
            aload 1 /* name */
            getstatic org.jruby.javasupport.binding.Priority.METHOD:Lorg/jruby/javasupport/binding/Priority;
            invokespecial org.jruby.javasupport.binding.AssignedName.<init>:(Ljava/lang/String;Lorg/jruby/javasupport/binding/Priority;)V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 465
            goto 9
         4: .line 466
      StackMap locals: org.jruby.javasupport.binding.AssignedName
      StackMap stack:
            getstatic org.jruby.javasupport.binding.Priority.METHOD:Lorg/jruby/javasupport/binding/Priority;
            aload 4 /* assignedName */
            invokevirtual org.jruby.javasupport.binding.Priority.lessImportantThan:(Lorg/jruby/javasupport/binding/AssignedName;)Z
            ifeq 5
            iconst_1
            ireturn
         5: .line 467
      StackMap locals:
      StackMap stack:
            getstatic org.jruby.javasupport.binding.Priority.METHOD:Lorg/jruby/javasupport/binding/Priority;
            aload 4 /* assignedName */
            invokevirtual org.jruby.javasupport.binding.Priority.asImportantAs:(Lorg/jruby/javasupport/binding/AssignedName;)Z
            ifne 9
         6: .line 468
            aload 2 /* installers */
            aload 1 /* name */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         7: .line 469
            aload 2 /* installers */
            new java.lang.StringBuilder
            dup
            aload 1 /* name */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            bipush 61
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         8: .line 470
            aload 3 /* names */
            aload 1 /* name */
            new org.jruby.javasupport.binding.AssignedName
            dup
            aload 1 /* name */
            getstatic org.jruby.javasupport.binding.Priority.METHOD:Lorg/jruby/javasupport/binding/Priority;
            invokespecial org.jruby.javasupport.binding.AssignedName.<init>:(Ljava/lang/String;Lorg/jruby/javasupport/binding/Priority;)V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         9: .line 473
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 4 // org.jruby.javasupport.binding.AssignedName assignedName
        end local 3 // java.util.Map names
        end local 2 // java.util.Map installers
        end local 1 // java.lang.String name
        end local 0 // org.jruby.javasupport.binding.MethodGatherer this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   10     0          this  Lorg/jruby/javasupport/binding/MethodGatherer;
            0   10     1          name  Ljava/lang/String;
            0   10     2    installers  Ljava/util/Map<Ljava/lang/String;Lorg/jruby/javasupport/binding/NamedInstaller;>;
            0   10     3         names  Ljava/util/Map<Ljava/lang/String;Lorg/jruby/javasupport/binding/AssignedName;>;
            1   10     4  assignedName  Lorg/jruby/javasupport/binding/AssignedName;
    Signature: (Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;Lorg/jruby/javasupport/binding/NamedInstaller;>;Ljava/util/Map<Ljava/lang/String;Lorg/jruby/javasupport/binding/AssignedName;>;)Z
    MethodParameters:
            Name  Flags
      name        
      installers  
      names       

  java.util.Map<java.lang.String, org.jruby.javasupport.binding.NamedInstaller> getStaticInstallers();
    descriptor: ()Ljava/util/Map;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.binding.MethodGatherer this
         0: .line 477
            aload 0 /* this */
            getfield org.jruby.javasupport.binding.MethodGatherer.staticInstallers:Ljava/util/Map;
            areturn
        end local 0 // org.jruby.javasupport.binding.MethodGatherer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/binding/MethodGatherer;
    Signature: ()Ljava/util/Map<Ljava/lang/String;Lorg/jruby/javasupport/binding/NamedInstaller;>;

  java.util.Map<java.lang.String, org.jruby.javasupport.binding.NamedInstaller> getStaticInstallersForWrite();
    descriptor: ()Ljava/util/Map;
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.jruby.javasupport.binding.MethodGatherer this
         0: .line 481
            aload 0 /* this */
            getfield org.jruby.javasupport.binding.MethodGatherer.staticInstallers:Ljava/util/Map;
            astore 1 /* staticInstallers */
        start local 1 // java.util.Map staticInstallers
         1: .line 482
            aload 1 /* staticInstallers */
            getstatic java.util.Collections.EMPTY_MAP:Ljava/util/Map;
            if_acmpne 2
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            dup_x1
            putfield org.jruby.javasupport.binding.MethodGatherer.staticInstallers:Ljava/util/Map;
            goto 3
      StackMap locals: java.util.Map
      StackMap stack:
         2: aload 1 /* staticInstallers */
      StackMap locals:
      StackMap stack: java.util.Map
         3: areturn
        end local 1 // java.util.Map staticInstallers
        end local 0 // org.jruby.javasupport.binding.MethodGatherer this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    4     0              this  Lorg/jruby/javasupport/binding/MethodGatherer;
            1    4     1  staticInstallers  Ljava/util/Map<Ljava/lang/String;Lorg/jruby/javasupport/binding/NamedInstaller;>;
    Signature: ()Ljava/util/Map<Ljava/lang/String;Lorg/jruby/javasupport/binding/NamedInstaller;>;

  java.util.Map<java.lang.String, org.jruby.javasupport.binding.NamedInstaller> getInstanceInstallers();
    descriptor: ()Ljava/util/Map;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.binding.MethodGatherer this
         0: .line 486
            aload 0 /* this */
            getfield org.jruby.javasupport.binding.MethodGatherer.instanceInstallers:Ljava/util/Map;
            areturn
        end local 0 // org.jruby.javasupport.binding.MethodGatherer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/binding/MethodGatherer;
    Signature: ()Ljava/util/Map<Ljava/lang/String;Lorg/jruby/javasupport/binding/NamedInstaller;>;

  java.util.Map<java.lang.String, org.jruby.javasupport.binding.NamedInstaller> getInstanceInstallersForWrite();
    descriptor: ()Ljava/util/Map;
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.jruby.javasupport.binding.MethodGatherer this
         0: .line 490
            aload 0 /* this */
            getfield org.jruby.javasupport.binding.MethodGatherer.instanceInstallers:Ljava/util/Map;
            astore 1 /* instanceInstallers */
        start local 1 // java.util.Map instanceInstallers
         1: .line 491
            aload 1 /* instanceInstallers */
            getstatic java.util.Collections.EMPTY_MAP:Ljava/util/Map;
            if_acmpne 2
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            dup_x1
            putfield org.jruby.javasupport.binding.MethodGatherer.instanceInstallers:Ljava/util/Map;
            goto 3
      StackMap locals: java.util.Map
      StackMap stack:
         2: aload 1 /* instanceInstallers */
      StackMap locals:
      StackMap stack: java.util.Map
         3: areturn
        end local 1 // java.util.Map instanceInstallers
        end local 0 // org.jruby.javasupport.binding.MethodGatherer this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    4     0                this  Lorg/jruby/javasupport/binding/MethodGatherer;
            1    4     1  instanceInstallers  Ljava/util/Map<Ljava/lang/String;Lorg/jruby/javasupport/binding/NamedInstaller;>;
    Signature: ()Ljava/util/Map<Ljava/lang/String;Lorg/jruby/javasupport/binding/NamedInstaller;>;

  void setupFieldsAndConstants(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)V
    flags: (0x0000) 
    Code:
      stack=6, locals=13, args_size=2
        start local 0 // org.jruby.javasupport.binding.MethodGatherer this
        start local 1 // java.lang.Class javaClass
         0: .line 495
            aload 1 /* javaClass */
            invokevirtual java.lang.Class.isInterface:()Z
            istore 2 /* isInterface */
        start local 2 // boolean isInterface
         1: .line 496
            aload 1 /* javaClass */
            invokestatic org.jruby.javasupport.JavaClass.getDeclaredFields:(Ljava/lang/Class;)[Ljava/lang/reflect/Field;
            astore 3 /* fields */
        start local 3 // java.lang.reflect.Field[] fields
         2: .line 498
            aload 3 /* fields */
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 21
      StackMap locals: org.jruby.javasupport.binding.MethodGatherer java.lang.Class int java.lang.reflect.Field[] top int int java.lang.reflect.Field[]
      StackMap stack:
         3: aload 7
            iload 5
            aaload
            astore 4 /* field */
        start local 4 // java.lang.reflect.Field field
         4: .line 499
            aload 1 /* javaClass */
            aload 4 /* field */
            invokevirtual java.lang.reflect.Field.getDeclaringClass:()Ljava/lang/Class;
            if_acmpeq 5
            goto 20
         5: .line 501
      StackMap locals: org.jruby.javasupport.binding.MethodGatherer java.lang.Class int java.lang.reflect.Field[] java.lang.reflect.Field int int java.lang.reflect.Field[]
      StackMap stack:
            aload 4 /* field */
            invokevirtual java.lang.reflect.Field.getModifiers:()I
            istore 8 /* modifiers */
        start local 8 // int modifiers
         6: .line 503
            iload 8 /* modifiers */
            invokestatic java.lang.reflect.Modifier.isPublic:(I)Z
            istore 9 /* isPublic */
        start local 9 // boolean isPublic
         7: .line 505
            iload 9 /* isPublic */
            ifne 8
            goto 20
         8: .line 507
      StackMap locals: int int
      StackMap stack:
            iload 8 /* modifiers */
            invokestatic java.lang.reflect.Modifier.isStatic:(I)Z
            istore 10 /* isStatic */
        start local 10 // boolean isStatic
         9: .line 508
            iload 8 /* modifiers */
            invokestatic java.lang.reflect.Modifier.isFinal:(I)Z
            istore 11 /* isFinal */
        start local 11 // boolean isFinal
        10: .line 510
            iload 9 /* isPublic */
            ifeq 11
            iload 10 /* isStatic */
            ifeq 11
            iload 11 /* isFinal */
            ifeq 11
            aload 4 /* field */
            invokevirtual java.lang.reflect.Field.getName:()Ljava/lang/String;
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic java.lang.Character.isUpperCase:(C)Z
            ifeq 11
            iconst_1
            goto 12
      StackMap locals: int int
      StackMap stack:
        11: iconst_0
      StackMap locals:
      StackMap stack: int
        12: istore 12 /* constant */
        start local 12 // boolean constant
        13: .line 511
            iload 12 /* constant */
            ifeq 16
        14: .line 512
            aload 0 /* this */
            getfield org.jruby.javasupport.binding.MethodGatherer.constantFields:Ljava/util/List;
            new org.jruby.javasupport.binding.ConstantField
            dup
            aload 4 /* field */
            invokespecial org.jruby.javasupport.binding.ConstantField.<init>:(Ljava/lang/reflect/Field;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        15: .line 516
            iload 2 /* isInterface */
            ifne 16
            goto 20
        16: .line 519
      StackMap locals: int
      StackMap stack:
            iload 10 /* isStatic */
            ifeq 19
        17: .line 520
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.binding.MethodGatherer.getStaticInstallersForWrite:()Ljava/util/Map;
            aload 0 /* this */
            getfield org.jruby.javasupport.binding.MethodGatherer.staticNames:Ljava/util/Map;
            aload 4 /* field */
            iload 11 /* isFinal */
            iconst_1
            iload 12 /* constant */
            invokestatic org.jruby.javasupport.binding.MethodGatherer.addField:(Ljava/util/Map;Ljava/util/Map;Ljava/lang/reflect/Field;ZZZ)V
        18: .line 521
            goto 20
        19: .line 522
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.binding.MethodGatherer.getInstanceInstallersForWrite:()Ljava/util/Map;
            aload 0 /* this */
            getfield org.jruby.javasupport.binding.MethodGatherer.instanceNames:Ljava/util/Map;
            aload 4 /* field */
            iload 11 /* isFinal */
            iconst_0
            iconst_0
            invokestatic org.jruby.javasupport.binding.MethodGatherer.addField:(Ljava/util/Map;Ljava/util/Map;Ljava/lang/reflect/Field;ZZZ)V
        end local 12 // boolean constant
        end local 11 // boolean isFinal
        end local 10 // boolean isStatic
        end local 9 // boolean isPublic
        end local 8 // int modifiers
        end local 4 // java.lang.reflect.Field field
        20: .line 498
      StackMap locals: org.jruby.javasupport.binding.MethodGatherer java.lang.Class int java.lang.reflect.Field[] top int int java.lang.reflect.Field[]
      StackMap stack:
            iinc 5 1
      StackMap locals:
      StackMap stack:
        21: iload 5
            iload 6
            if_icmplt 3
        22: .line 525
            return
        end local 3 // java.lang.reflect.Field[] fields
        end local 2 // boolean isInterface
        end local 1 // java.lang.Class javaClass
        end local 0 // org.jruby.javasupport.binding.MethodGatherer this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   23     0         this  Lorg/jruby/javasupport/binding/MethodGatherer;
            0   23     1    javaClass  Ljava/lang/Class<*>;
            1   23     2  isInterface  Z
            2   23     3       fields  [Ljava/lang/reflect/Field;
            4   20     4        field  Ljava/lang/reflect/Field;
            6   20     8    modifiers  I
            7   20     9     isPublic  Z
            9   20    10     isStatic  Z
           10   20    11      isFinal  Z
           13   20    12     constant  Z
    Signature: (Ljava/lang/Class<*>;)V
    MethodParameters:
           Name  Flags
      javaClass  

  void setupMethods(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.jruby.javasupport.binding.MethodGatherer this
        start local 1 // java.lang.Class javaClass
         0: .line 528
            aload 1 /* javaClass */
            invokevirtual java.lang.Class.isInterface:()Z
            istore 2 /* isInterface */
        start local 2 // boolean isInterface
         1: .line 530
            aload 1 /* javaClass */
            invokestatic org.jruby.javasupport.binding.MethodGatherer.getMethods:(Ljava/lang/Class;)Ljava/util/Map;
            aload 0 /* this */
            aload 1 /* javaClass */
            iload 2 /* isInterface */
            invokedynamic accept(Lorg/jruby/javasupport/binding/MethodGatherer;Ljava/lang/Class;Z)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/javasupport/binding/MethodGatherer.lambda$6(Ljava/lang/Class;ZLjava/lang/String;Ljava/util/List;)V (7)
                  (Ljava/lang/String;Ljava/util/List;)V
            invokeinterface java.util.Map.forEach:(Ljava/util/function/BiConsumer;)V
         2: .line 542
            return
        end local 2 // boolean isInterface
        end local 1 // java.lang.Class javaClass
        end local 0 // org.jruby.javasupport.binding.MethodGatherer this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0         this  Lorg/jruby/javasupport/binding/MethodGatherer;
            0    3     1    javaClass  Ljava/lang/Class<*>;
            1    3     2  isInterface  Z
    Signature: (Ljava/lang/Class<*>;)V
    MethodParameters:
           Name  Flags
      javaClass  

  private void setupSingletonMethods(java.util.Map<java.lang.String, org.jruby.javasupport.binding.NamedInstaller>, java.lang.Class<?>, , java.lang.reflect.Method, java.lang.String);
    descriptor: (Ljava/util/Map;Ljava/lang/Class;Ljava/lang/Object;Ljava/lang/reflect/Method;Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=6
        start local 0 // org.jruby.javasupport.binding.MethodGatherer this
        start local 1 // java.util.Map methodCallbacks
        start local 2 // java.lang.Class javaClass
        start local 3 // java.lang.Object singleton
        start local 4 // java.lang.reflect.Method method
        start local 5 // java.lang.String name
         0: .line 545
            aload 1 /* methodCallbacks */
            aload 5 /* name */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.jruby.javasupport.binding.NamedInstaller
            astore 6 /* invoker */
        start local 6 // org.jruby.javasupport.binding.NamedInstaller invoker
         1: .line 546
            aload 6 /* invoker */
            ifnonnull 4
         2: .line 547
            new org.jruby.javasupport.binding.SingletonMethodInvokerInstaller
            dup
            aload 5 /* name */
            aload 3 /* singleton */
            invokespecial org.jruby.javasupport.binding.SingletonMethodInvokerInstaller.<init>:(Ljava/lang/String;Ljava/lang/Object;)V
            astore 6 /* invoker */
         3: .line 548
            aload 1 /* methodCallbacks */
            aload 5 /* name */
            aload 6 /* invoker */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 550
      StackMap locals: org.jruby.javasupport.binding.NamedInstaller
      StackMap stack:
            aload 6 /* invoker */
            checkcast org.jruby.javasupport.binding.MethodInstaller
            aload 4 /* method */
            aload 2 /* javaClass */
            invokevirtual org.jruby.javasupport.binding.MethodInstaller.addMethod:(Ljava/lang/reflect/Method;Ljava/lang/Class;)V
         5: .line 551
            return
        end local 6 // org.jruby.javasupport.binding.NamedInstaller invoker
        end local 5 // java.lang.String name
        end local 4 // java.lang.reflect.Method method
        end local 3 // java.lang.Object singleton
        end local 2 // java.lang.Class javaClass
        end local 1 // java.util.Map methodCallbacks
        end local 0 // org.jruby.javasupport.binding.MethodGatherer this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    6     0             this  Lorg/jruby/javasupport/binding/MethodGatherer;
            0    6     1  methodCallbacks  Ljava/util/Map<Ljava/lang/String;Lorg/jruby/javasupport/binding/NamedInstaller;>;
            0    6     2        javaClass  Ljava/lang/Class<*>;
            0    6     3        singleton  Ljava/lang/Object;
            0    6     4           method  Ljava/lang/reflect/Method;
            0    6     5             name  Ljava/lang/String;
            1    6     6          invoker  Lorg/jruby/javasupport/binding/NamedInstaller;
    Signature: (Ljava/util/Map<Ljava/lang/String;Lorg/jruby/javasupport/binding/NamedInstaller;>;Ljava/lang/Class<*>;Ljava/lang/Object;Ljava/lang/reflect/Method;Ljava/lang/String;)V
    MethodParameters:
                 Name  Flags
      methodCallbacks  
      javaClass        
      singleton        
      method           
      name             

  private void assignStaticAliases();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.binding.MethodGatherer this
         0: .line 554
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.binding.MethodGatherer.getStaticInstallers:()Ljava/util/Map;
            aload 0 /* this */
            invokedynamic accept(Lorg/jruby/javasupport/binding/MethodGatherer;)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/javasupport/binding/MethodGatherer.lambda$7(Ljava/lang/String;Lorg/jruby/javasupport/binding/NamedInstaller;)V (7)
                  (Ljava/lang/String;Lorg/jruby/javasupport/binding/NamedInstaller;)V
            invokeinterface java.util.Map.forEach:(Ljava/util/function/BiConsumer;)V
         1: .line 564
            return
        end local 0 // org.jruby.javasupport.binding.MethodGatherer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jruby/javasupport/binding/MethodGatherer;

  private void assignInstanceAliases();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.binding.MethodGatherer this
         0: .line 567
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.binding.MethodGatherer.getInstanceInstallers:()Ljava/util/Map;
            aload 0 /* this */
            invokedynamic accept(Lorg/jruby/javasupport/binding/MethodGatherer;)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/javasupport/binding/MethodGatherer.lambda$8(Ljava/lang/String;Lorg/jruby/javasupport/binding/NamedInstaller;)V (7)
                  (Ljava/lang/String;Lorg/jruby/javasupport/binding/NamedInstaller;)V
            invokeinterface java.util.Map.forEach:(Ljava/util/function/BiConsumer;)V
         1: .line 587
            return
        end local 0 // org.jruby.javasupport.binding.MethodGatherer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jruby/javasupport/binding/MethodGatherer;

  protected static void addField(java.util.Map, java.util.Map<java.lang.String, org.jruby.javasupport.binding.AssignedName>, java.lang.reflect.Field, boolean, boolean, );
    descriptor: (Ljava/util/Map;Ljava/util/Map;Ljava/lang/reflect/Field;ZZZ)V
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=7, locals=8, args_size=6
        start local 0 // java.util.Map callbacks
        start local 1 // java.util.Map names
        start local 2 // java.lang.reflect.Field field
        start local 3 // boolean isFinal
        start local 4 // boolean isStatic
        start local 5 // boolean isConstant
         0: .line 597
            aload 2 /* field */
            invokevirtual java.lang.reflect.Field.getName:()Ljava/lang/String;
            astore 6 /* name */
        start local 6 // java.lang.String name
         1: .line 599
            getstatic org.jruby.javasupport.binding.Priority.FIELD:Lorg/jruby/javasupport/binding/Priority;
            aload 1 /* names */
            aload 6 /* name */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.jruby.javasupport.binding.AssignedName
            invokevirtual org.jruby.javasupport.binding.Priority.lessImportantThan:(Lorg/jruby/javasupport/binding/AssignedName;)Z
            ifeq 2
            return
         2: .line 601
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* names */
            aload 6 /* name */
            new org.jruby.javasupport.binding.AssignedName
            dup
            aload 6 /* name */
            getstatic org.jruby.javasupport.binding.Priority.FIELD:Lorg/jruby/javasupport/binding/Priority;
            invokespecial org.jruby.javasupport.binding.AssignedName.<init>:(Ljava/lang/String;Lorg/jruby/javasupport/binding/Priority;)V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 602
            aload 0 /* callbacks */
            aload 6 /* name */
            iload 4 /* isStatic */
            ifeq 4
            new org.jruby.javasupport.binding.StaticFieldGetterInstaller
            dup
            aload 6 /* name */
            aload 2 /* field */
            iload 5 /* isConstant */
            invokespecial org.jruby.javasupport.binding.StaticFieldGetterInstaller.<init>:(Ljava/lang/String;Ljava/lang/reflect/Field;Z)V
            goto 5
         4: .line 603
      StackMap locals: java.util.Map java.util.Map java.lang.reflect.Field int int int java.lang.String
      StackMap stack: java.util.Map java.lang.String
            new org.jruby.javasupport.binding.InstanceFieldGetterInstaller
            dup
            aload 6 /* name */
            aload 2 /* field */
            invokespecial org.jruby.javasupport.binding.InstanceFieldGetterInstaller.<init>:(Ljava/lang/String;Ljava/lang/reflect/Field;)V
         5: .line 602
      StackMap locals: java.util.Map java.util.Map java.lang.reflect.Field int int int java.lang.String
      StackMap stack: java.util.Map java.lang.String org.jruby.javasupport.binding.FieldInstaller
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 605
            iload 3 /* isFinal */
            ifne 11
         7: .line 606
            new java.lang.StringBuilder
            dup
            aload 6 /* name */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            bipush 61
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 7 /* setName */
        start local 7 // java.lang.String setName
         8: .line 607
            aload 0 /* callbacks */
            aload 7 /* setName */
            iload 4 /* isStatic */
            ifeq 9
            new org.jruby.javasupport.binding.StaticFieldSetterInstaller
            dup
            aload 7 /* setName */
            aload 2 /* field */
            invokespecial org.jruby.javasupport.binding.StaticFieldSetterInstaller.<init>:(Ljava/lang/String;Ljava/lang/reflect/Field;)V
            goto 10
         9: .line 608
      StackMap locals: java.util.Map java.util.Map java.lang.reflect.Field int int int java.lang.String java.lang.String
      StackMap stack: java.util.Map java.lang.String
            new org.jruby.javasupport.binding.InstanceFieldSetterInstaller
            dup
            aload 7 /* setName */
            aload 2 /* field */
            invokespecial org.jruby.javasupport.binding.InstanceFieldSetterInstaller.<init>:(Ljava/lang/String;Ljava/lang/reflect/Field;)V
        10: .line 607
      StackMap locals: java.util.Map java.util.Map java.lang.reflect.Field int int int java.lang.String java.lang.String
      StackMap stack: java.util.Map java.lang.String org.jruby.javasupport.binding.FieldInstaller
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 7 // java.lang.String setName
        11: .line 610
      StackMap locals:
      StackMap stack:
            return
        end local 6 // java.lang.String name
        end local 5 // boolean isConstant
        end local 4 // boolean isStatic
        end local 3 // boolean isFinal
        end local 2 // java.lang.reflect.Field field
        end local 1 // java.util.Map names
        end local 0 // java.util.Map callbacks
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   12     0   callbacks  Ljava/util/Map;
            0   12     1       names  Ljava/util/Map<Ljava/lang/String;Lorg/jruby/javasupport/binding/AssignedName;>;
            0   12     2       field  Ljava/lang/reflect/Field;
            0   12     3     isFinal  Z
            0   12     4    isStatic  Z
            0   12     5  isConstant  Z
            1   12     6        name  Ljava/lang/String;
            8   11     7     setName  Ljava/lang/String;
    Signature: (Ljava/util/Map;Ljava/util/Map<Ljava/lang/String;Lorg/jruby/javasupport/binding/AssignedName;>;Ljava/lang/reflect/Field;ZZZ)V
    MethodParameters:
            Name  Flags
      callbacks   final
      names       final
      field       final
      isFinal     final
      isStatic    final
      isConstant  final

  void installInstanceMethods(org.jruby.RubyModule);
    descriptor: (Lorg/jruby/RubyModule;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.javasupport.binding.MethodGatherer this
        start local 1 // org.jruby.RubyModule proxy
         0: .line 613
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.binding.MethodGatherer.getInstanceInstallers:()Ljava/util/Map;
            aload 1 /* proxy */
            invokedynamic accept(Lorg/jruby/RubyModule;)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/javasupport/binding/MethodGatherer.lambda$9(Lorg/jruby/RubyModule;Ljava/lang/String;Lorg/jruby/javasupport/binding/NamedInstaller;)V (6)
                  (Ljava/lang/String;Lorg/jruby/javasupport/binding/NamedInstaller;)V
            invokeinterface java.util.Map.forEach:(Ljava/util/function/BiConsumer;)V
         1: .line 614
            return
        end local 1 // org.jruby.RubyModule proxy
        end local 0 // org.jruby.javasupport.binding.MethodGatherer this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/jruby/javasupport/binding/MethodGatherer;
            0    2     1  proxy  Lorg/jruby/RubyModule;
    MethodParameters:
       Name  Flags
      proxy  final

  private void lambda$0(java.lang.Class, java.lang.Class, java.lang.Object, java.lang.String, java.util.List);
    descriptor: (Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/Object;Ljava/lang/String;Ljava/util/List;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=8, locals=9, args_size=6
        start local 0 // org.jruby.javasupport.binding.MethodGatherer this
        start local 4 // java.lang.String name
        start local 5 // java.util.List methods
         0: .line 348
            iconst_0
            istore 6 /* j */
        start local 6 // int j
         1: goto 20
         2: .line 349
      StackMap locals: int
      StackMap stack:
            aload 5 /* methods */
            iload 6 /* j */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.reflect.Method
            astore 7 /* method */
        start local 7 // java.lang.reflect.Method method
         3: .line 353
            aload 4 /* name */
            bipush 36
            invokevirtual java.lang.String.indexOf:(I)I
            iflt 4
            aload 4 /* name */
            invokestatic org.jruby.javasupport.binding.MethodGatherer.fixScalaNames:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* name */
         4: .line 355
      StackMap locals: java.lang.reflect.Method
      StackMap stack:
            aload 7 /* method */
            invokevirtual java.lang.reflect.Method.getModifiers:()I
            invokestatic java.lang.reflect.Modifier.isStatic:(I)Z
            ifne 19
         5: .line 356
            aload 0 /* this */
            getfield org.jruby.javasupport.binding.MethodGatherer.staticNames:Ljava/util/Map;
            aload 4 /* name */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.jruby.javasupport.binding.AssignedName
            astore 8 /* assignedName */
        start local 8 // org.jruby.javasupport.binding.AssignedName assignedName
         6: .line 358
            getstatic org.jruby.javasupport.binding.MethodGatherer.INSTANCE_RESERVED_NAMES:Ljava/util/Map;
            aload 7 /* method */
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 9
         7: .line 360
            aload 0 /* this */
            aload 0 /* this */
            getfield org.jruby.javasupport.binding.MethodGatherer.staticInstallers:Ljava/util/Map;
            aload 2
            aload 3
            aload 7 /* method */
            new java.lang.StringBuilder
            dup
            aload 4 /* name */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "__method"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.javasupport.binding.MethodGatherer.setupSingletonMethods:(Ljava/util/Map;Ljava/lang/Class;Ljava/lang/Object;Ljava/lang/reflect/Method;Ljava/lang/String;)V
         8: .line 361
            goto 19
         9: .line 363
      StackMap locals: org.jruby.javasupport.binding.AssignedName
      StackMap stack:
            aload 8 /* assignedName */
            ifnonnull 12
        10: .line 364
            aload 0 /* this */
            getfield org.jruby.javasupport.binding.MethodGatherer.staticNames:Ljava/util/Map;
            aload 4 /* name */
            new org.jruby.javasupport.binding.AssignedName
            dup
            aload 4 /* name */
            getstatic org.jruby.javasupport.binding.Priority.METHOD:Lorg/jruby/javasupport/binding/Priority;
            invokespecial org.jruby.javasupport.binding.AssignedName.<init>:(Ljava/lang/String;Lorg/jruby/javasupport/binding/Priority;)V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        11: .line 366
            goto 18
        12: .line 367
      StackMap locals:
      StackMap stack:
            getstatic org.jruby.javasupport.binding.Priority.METHOD:Lorg/jruby/javasupport/binding/Priority;
            aload 8 /* assignedName */
            invokevirtual org.jruby.javasupport.binding.Priority.lessImportantThan:(Lorg/jruby/javasupport/binding/AssignedName;)Z
            ifeq 14
        13: .line 369
            goto 19
        14: .line 371
      StackMap locals:
      StackMap stack:
            getstatic org.jruby.javasupport.binding.Priority.METHOD:Lorg/jruby/javasupport/binding/Priority;
            aload 8 /* assignedName */
            invokevirtual org.jruby.javasupport.binding.Priority.asImportantAs:(Lorg/jruby/javasupport/binding/AssignedName;)Z
            ifne 18
        15: .line 372
            aload 0 /* this */
            getfield org.jruby.javasupport.binding.MethodGatherer.staticInstallers:Ljava/util/Map;
            aload 4 /* name */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        16: .line 373
            aload 0 /* this */
            getfield org.jruby.javasupport.binding.MethodGatherer.staticInstallers:Ljava/util/Map;
            new java.lang.StringBuilder
            dup
            aload 4 /* name */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            bipush 61
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        17: .line 374
            aload 0 /* this */
            getfield org.jruby.javasupport.binding.MethodGatherer.staticNames:Ljava/util/Map;
            aload 4 /* name */
            new org.jruby.javasupport.binding.AssignedName
            dup
            aload 4 /* name */
            getstatic org.jruby.javasupport.binding.Priority.METHOD:Lorg/jruby/javasupport/binding/Priority;
            invokespecial org.jruby.javasupport.binding.AssignedName.<init>:(Ljava/lang/String;Lorg/jruby/javasupport/binding/Priority;)V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        18: .line 378
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.jruby.javasupport.binding.MethodGatherer.staticInstallers:Ljava/util/Map;
            aload 2
            aload 3
            aload 7 /* method */
            aload 4 /* name */
            invokevirtual org.jruby.javasupport.binding.MethodGatherer.setupSingletonMethods:(Ljava/util/Map;Ljava/lang/Class;Ljava/lang/Object;Ljava/lang/reflect/Method;Ljava/lang/String;)V
        end local 8 // org.jruby.javasupport.binding.AssignedName assignedName
        end local 7 // java.lang.reflect.Method method
        19: .line 348
      StackMap locals:
      StackMap stack:
            iinc 6 /* j */ 1
      StackMap locals:
      StackMap stack:
        20: iload 6 /* j */
            aload 5 /* methods */
            invokeinterface java.util.List.size:()I
            if_icmplt 2
        end local 6 // int j
        21: .line 383
            return
        end local 5 // java.util.List methods
        end local 4 // java.lang.String name
        end local 0 // org.jruby.javasupport.binding.MethodGatherer this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   22     0          this  Lorg/jruby/javasupport/binding/MethodGatherer;
            0   22     4          name  Ljava/lang/String;
            0   22     5       methods  Ljava/util/List<Ljava/lang/reflect/Method;>;
            1   21     6             j  I
            3   19     7        method  Ljava/lang/reflect/Method;
            6   19     8  assignedName  Lorg/jruby/javasupport/binding/AssignedName;

  private static void lambda$1(org.jruby.RubyModule, org.jruby.javasupport.binding.ConstantField);
    descriptor: (Lorg/jruby/RubyModule;Lorg/jruby/javasupport/binding/ConstantField;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // org.jruby.javasupport.binding.ConstantField field
         0: .line 401
            aload 1 /* field */
            aload 0
            invokevirtual org.jruby.javasupport.binding.ConstantField.install:(Lorg/jruby/RubyModule;)V
            return
        end local 1 // org.jruby.javasupport.binding.ConstantField field
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     1  field  Lorg/jruby/javasupport/binding/ConstantField;

  private static void lambda$2(org.jruby.RubyModule, java.lang.String, org.jruby.javasupport.binding.NamedInstaller);
    descriptor: (Lorg/jruby/RubyModule;Ljava/lang/String;Lorg/jruby/javasupport/binding/NamedInstaller;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=3, args_size=3
        start local 1 // java.lang.String $
        start local 2 // org.jruby.javasupport.binding.NamedInstaller value
         0: .line 405
            aload 2 /* value */
            aload 0
            invokevirtual org.jruby.javasupport.binding.NamedInstaller.install:(Lorg/jruby/RubyModule;)V
            return
        end local 2 // org.jruby.javasupport.binding.NamedInstaller value
        end local 1 // java.lang.String $
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     1      $  Ljava/lang/String;
            0    1     2  value  Lorg/jruby/javasupport/binding/NamedInstaller;

  private void lambda$6(java.lang.Class, boolean, java.lang.String, java.util.List);
    descriptor: (Ljava/lang/Class;ZLjava/lang/String;Ljava/util/List;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=4, locals=7, args_size=5
        start local 0 // org.jruby.javasupport.binding.MethodGatherer this
        start local 3 // java.lang.String name
        start local 4 // java.util.List methods
         0: .line 531
            aload 4 /* methods */
            invokeinterface java.util.List.size:()I
            istore 5 /* i */
        start local 5 // int i
         1: goto 8
         2: .line 533
      StackMap locals: int
      StackMap stack:
            aload 4 /* methods */
            iload 5 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.reflect.Method
            astore 6 /* method */
        start local 6 // java.lang.reflect.Method method
         3: .line 535
            aload 6 /* method */
            invokevirtual java.lang.reflect.Method.getModifiers:()I
            invokestatic java.lang.reflect.Modifier.isStatic:(I)Z
            ifeq 6
         4: .line 536
            aload 0 /* this */
            aload 1
            aload 6 /* method */
            aload 3 /* name */
            invokevirtual org.jruby.javasupport.binding.MethodGatherer.prepareStaticMethod:(Ljava/lang/Class;Ljava/lang/reflect/Method;Ljava/lang/String;)V
         5: .line 537
            goto 8
      StackMap locals: java.lang.reflect.Method
      StackMap stack:
         6: iload 2
            ifne 8
         7: .line 538
            aload 0 /* this */
            aload 1
            aload 6 /* method */
            aload 3 /* name */
            invokevirtual org.jruby.javasupport.binding.MethodGatherer.prepareInstanceMethod:(Ljava/lang/Class;Ljava/lang/reflect/Method;Ljava/lang/String;)V
        end local 6 // java.lang.reflect.Method method
         8: .line 531
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ -1
            iload 5 /* i */
            ifge 2
        end local 5 // int i
         9: .line 541
            return
        end local 4 // java.util.List methods
        end local 3 // java.lang.String name
        end local 0 // org.jruby.javasupport.binding.MethodGatherer this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   10     0     this  Lorg/jruby/javasupport/binding/MethodGatherer;
            0   10     3     name  Ljava/lang/String;
            0   10     4  methods  Ljava/util/List<Ljava/lang/reflect/Method;>;
            1    9     5        i  I
            3    8     6   method  Ljava/lang/reflect/Method;

  private void lambda$7(java.lang.String, org.jruby.javasupport.binding.NamedInstaller);
    descriptor: (Ljava/lang/String;Lorg/jruby/javasupport/binding/NamedInstaller;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // org.jruby.javasupport.binding.MethodGatherer this
        start local 1 // java.lang.String name
        start local 2 // org.jruby.javasupport.binding.NamedInstaller installer
         0: .line 555
            aload 2 /* installer */
            getfield org.jruby.javasupport.binding.NamedInstaller.type:I
            iconst_2
            if_icmpne 4
            aload 2 /* installer */
            invokevirtual org.jruby.javasupport.binding.NamedInstaller.hasLocalMethod:()Z
            ifeq 4
         1: .line 557
            aload 1 /* name */
            ldc "__method"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 2
            return
         2: .line 559
      StackMap locals:
      StackMap stack:
            aload 2 /* installer */
            checkcast org.jruby.javasupport.binding.MethodInstaller
            astore 3 /* methodInstaller */
        start local 3 // org.jruby.javasupport.binding.MethodInstaller methodInstaller
         3: .line 561
            aload 3 /* methodInstaller */
            aload 0 /* this */
            getfield org.jruby.javasupport.binding.MethodGatherer.staticNames:Ljava/util/Map;
            invokevirtual org.jruby.javasupport.binding.MethodInstaller.assignAliases:(Ljava/util/Map;)V
        end local 3 // org.jruby.javasupport.binding.MethodInstaller methodInstaller
         4: .line 563
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.jruby.javasupport.binding.NamedInstaller installer
        end local 1 // java.lang.String name
        end local 0 // org.jruby.javasupport.binding.MethodGatherer this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    5     0             this  Lorg/jruby/javasupport/binding/MethodGatherer;
            0    5     1             name  Ljava/lang/String;
            0    5     2        installer  Lorg/jruby/javasupport/binding/NamedInstaller;
            3    4     3  methodInstaller  Lorg/jruby/javasupport/binding/MethodInstaller;

  private void lambda$8(java.lang.String, org.jruby.javasupport.binding.NamedInstaller);
    descriptor: (Ljava/lang/String;Lorg/jruby/javasupport/binding/NamedInstaller;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // org.jruby.javasupport.binding.MethodGatherer this
        start local 1 // java.lang.String name
        start local 2 // org.jruby.javasupport.binding.NamedInstaller installer
         0: .line 568
            aload 2 /* installer */
            getfield org.jruby.javasupport.binding.NamedInstaller.type:I
            iconst_4
            if_icmpne 8
         1: .line 570
            aload 1 /* name */
            ldc "__method"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 2
            return
         2: .line 572
      StackMap locals:
      StackMap stack:
            aload 2 /* installer */
            checkcast org.jruby.javasupport.binding.MethodInstaller
            astore 3 /* methodInstaller */
        start local 3 // org.jruby.javasupport.binding.MethodInstaller methodInstaller
         3: .line 574
            aload 2 /* installer */
            invokevirtual org.jruby.javasupport.binding.NamedInstaller.hasLocalMethod:()Z
            ifeq 5
         4: .line 575
            aload 3 /* methodInstaller */
            aload 0 /* this */
            getfield org.jruby.javasupport.binding.MethodGatherer.instanceNames:Ljava/util/Map;
            invokevirtual org.jruby.javasupport.binding.MethodInstaller.assignAliases:(Ljava/util/Map;)V
         5: .line 580
      StackMap locals: org.jruby.javasupport.binding.MethodInstaller
      StackMap stack:
            aload 1 /* name */
            ldc "equals"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 8
         6: .line 582
            aload 3 /* methodInstaller */
            iconst_1
            invokevirtual org.jruby.javasupport.binding.MethodInstaller.setLocalMethod:(Z)V
         7: .line 583
            aload 3 /* methodInstaller */
            ldc "=="
            invokevirtual org.jruby.javasupport.binding.MethodInstaller.addAlias:(Ljava/lang/String;)V
        end local 3 // org.jruby.javasupport.binding.MethodInstaller methodInstaller
         8: .line 586
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.jruby.javasupport.binding.NamedInstaller installer
        end local 1 // java.lang.String name
        end local 0 // org.jruby.javasupport.binding.MethodGatherer this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    9     0             this  Lorg/jruby/javasupport/binding/MethodGatherer;
            0    9     1             name  Ljava/lang/String;
            0    9     2        installer  Lorg/jruby/javasupport/binding/NamedInstaller;
            3    8     3  methodInstaller  Lorg/jruby/javasupport/binding/MethodInstaller;

  private static void lambda$9(org.jruby.RubyModule, java.lang.String, org.jruby.javasupport.binding.NamedInstaller);
    descriptor: (Lorg/jruby/RubyModule;Ljava/lang/String;Lorg/jruby/javasupport/binding/NamedInstaller;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=3, args_size=3
        start local 1 // java.lang.String $
        start local 2 // org.jruby.javasupport.binding.NamedInstaller value
         0: .line 613
            aload 2 /* value */
            aload 0
            invokevirtual org.jruby.javasupport.binding.NamedInstaller.install:(Lorg/jruby/RubyModule;)V
            return
        end local 2 // org.jruby.javasupport.binding.NamedInstaller value
        end local 1 // java.lang.String $
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     1      $  Ljava/lang/String;
            0    1     2  value  Lorg/jruby/javasupport/binding/NamedInstaller;
}
SourceFile: "MethodGatherer.java"
NestMembers:
  org.jruby.javasupport.binding.MethodGatherer$1  org.jruby.javasupport.binding.MethodGatherer$2  org.jruby.javasupport.binding.MethodGatherer$3  org.jruby.javasupport.binding.MethodGatherer$4  org.jruby.javasupport.binding.MethodGatherer$5  org.jruby.javasupport.binding.MethodGatherer$6  org.jruby.javasupport.binding.MethodGatherer$7  org.jruby.javasupport.binding.MethodGatherer$NoConstructorMethod  org.jruby.javasupport.binding.MethodGatherer$PartitionedMethods
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
  org.jruby.javasupport.binding.MethodGatherer$1
  org.jruby.javasupport.binding.MethodGatherer$2
  org.jruby.javasupport.binding.MethodGatherer$3
  org.jruby.javasupport.binding.MethodGatherer$4
  org.jruby.javasupport.binding.MethodGatherer$5
  org.jruby.javasupport.binding.MethodGatherer$6
  org.jruby.javasupport.binding.MethodGatherer$7
  NoConstructorMethod = org.jruby.javasupport.binding.MethodGatherer$NoConstructorMethod of org.jruby.javasupport.binding.MethodGatherer
  private PartitionedMethods = org.jruby.javasupport.binding.MethodGatherer$PartitionedMethods of org.jruby.javasupport.binding.MethodGatherer