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

  public static org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding[] sortTypes(org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding[]);
    descriptor: ([Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;)[Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=6, args_size=1
        start local 0 // org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding[] types
         0: .line 36
            aload 0 /* types */
            arraylength
            istore 1 /* len */
        start local 1 // int len
         1: .line 38
            iload 1 /* len */
            anewarray org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding
            astore 2 /* unsorted */
        start local 2 // org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding[] unsorted
         2: .line 39
            iload 1 /* len */
            anewarray org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding
            astore 3 /* sorted */
        start local 3 // org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding[] sorted
         3: .line 40
            aload 0 /* types */
            iconst_0
            aload 2 /* unsorted */
            iconst_0
            iload 1 /* len */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         4: .line 42
            iconst_0
            istore 4 /* o */
        start local 4 // int o
         5: .line 43
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         6: goto 9
         7: .line 44
      StackMap locals: org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding[] int org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding[] org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding[] int int
      StackMap stack:
            aload 2 /* unsorted */
            iload 5 /* i */
            aload 3 /* sorted */
            iload 4 /* o */
            invokestatic org.eclipse.jdt.internal.compiler.util.Sorting.sort:([Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;I[Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;I)I
            istore 4 /* o */
         8: .line 43
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 5 /* i */
            iload 1 /* len */
            if_icmplt 7
        end local 5 // int i
        10: .line 46
            aload 3 /* sorted */
            areturn
        end local 4 // int o
        end local 3 // org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding[] sorted
        end local 2 // org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding[] unsorted
        end local 1 // int len
        end local 0 // org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding[] types
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     0     types  [Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;
            1   11     1       len  I
            2   11     2  unsorted  [Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;
            3   11     3    sorted  [Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;
            5   11     4         o  I
            6   10     5         i  I
    MethodParameters:
       Name  Flags
      types  

  private static int sort(org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding[], int, org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding[], int);
    descriptor: ([Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;I[Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;I)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=4
        start local 0 // org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding[] input
        start local 1 // int i
        start local 2 // org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding[] output
        start local 3 // int o
         0: .line 52
            aload 0 /* input */
            iload 1 /* i */
            aaload
            ifnonnull 2
         1: .line 53
            iload 3 /* o */
            ireturn
         2: .line 55
      StackMap locals:
      StackMap stack:
            aload 0 /* input */
            iload 1 /* i */
            aaload
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding.superclass:()Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;
            astore 4 /* superclass */
        start local 4 // org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding superclass
         3: .line 56
            aload 4 /* superclass */
            aload 0 /* input */
            aload 2 /* output */
            iload 3 /* o */
            invokestatic org.eclipse.jdt.internal.compiler.util.Sorting.sortSuper:(Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;[Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;[Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;I)I
            istore 3 /* o */
         4: .line 58
            aload 0 /* input */
            iload 1 /* i */
            aaload
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding.superInterfaces:()[Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;
            astore 5 /* superInterfaces */
        start local 5 // org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding[] superInterfaces
         5: .line 59
            iconst_0
            istore 6 /* j */
        start local 6 // int j
         6: goto 9
         7: .line 60
      StackMap locals: org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding[] int
      StackMap stack:
            aload 5 /* superInterfaces */
            iload 6 /* j */
            aaload
            aload 0 /* input */
            aload 2 /* output */
            iload 3 /* o */
            invokestatic org.eclipse.jdt.internal.compiler.util.Sorting.sortSuper:(Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;[Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;[Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;I)I
            istore 3 /* o */
         8: .line 59
            iinc 6 /* j */ 1
      StackMap locals:
      StackMap stack:
         9: iload 6 /* j */
            aload 5 /* superInterfaces */
            arraylength
            if_icmplt 7
        end local 6 // int j
        10: .line 64
            aload 2 /* output */
            iload 3 /* o */
            iinc 3 /* o */ 1
            aload 0 /* input */
            iload 1 /* i */
            aaload
            aastore
        11: .line 65
            aload 0 /* input */
            iload 1 /* i */
            aconst_null
            aastore
        12: .line 67
            iload 3 /* o */
            ireturn
        end local 5 // org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding[] superInterfaces
        end local 4 // org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding superclass
        end local 3 // int o
        end local 2 // org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding[] output
        end local 1 // int i
        end local 0 // org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding[] input
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   13     0            input  [Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;
            0   13     1                i  I
            0   13     2           output  [Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;
            0   13     3                o  I
            3   13     4       superclass  Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;
            5   13     5  superInterfaces  [Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;
            6   10     6                j  I
    MethodParameters:
        Name  Flags
      input   
      i       
      output  
      o       

  private static int sortSuper(org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding, org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding[], org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding[], int);
    descriptor: (Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;[Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;[Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;I)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding superclass
        start local 1 // org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding[] input
        start local 2 // org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding[] output
        start local 3 // int o
         0: .line 75
            aload 0 /* superclass */
            getfield org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding.id:I
            iconst_1
            if_icmpeq 9
         1: .line 77
            iconst_0
            istore 4 /* j */
        start local 4 // int j
         2: .line 78
            iconst_0
            istore 4 /* j */
            goto 6
         3: .line 79
      StackMap locals: int
      StackMap stack:
            aload 1 /* input */
            iload 4 /* j */
            aaload
            aload 0 /* superclass */
            invokestatic org.eclipse.jdt.internal.compiler.lookup.TypeBinding.equalsEquals:(Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;)Z
            ifeq 5
         4: .line 80
            goto 7
         5: .line 78
      StackMap locals:
      StackMap stack:
            iinc 4 /* j */ 1
      StackMap locals:
      StackMap stack:
         6: iload 4 /* j */
            aload 1 /* input */
            arraylength
            if_icmplt 3
         7: .line 81
      StackMap locals:
      StackMap stack:
            iload 4 /* j */
            aload 1 /* input */
            arraylength
            if_icmpge 9
         8: .line 83
            aload 1 /* input */
            iload 4 /* j */
            aload 2 /* output */
            iload 3 /* o */
            invokestatic org.eclipse.jdt.internal.compiler.util.Sorting.sort:([Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;I[Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;I)I
            istore 3 /* o */
        end local 4 // int j
         9: .line 86
      StackMap locals:
      StackMap stack:
            iload 3 /* o */
            ireturn
        end local 3 // int o
        end local 2 // org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding[] output
        end local 1 // org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding[] input
        end local 0 // org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding superclass
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   10     0  superclass  Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;
            0   10     1       input  [Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;
            0   10     2      output  [Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;
            0   10     3           o  I
            2    9     4           j  I
    MethodParameters:
            Name  Flags
      superclass  
      input       
      output      
      o           

  public static org.eclipse.jdt.internal.compiler.lookup.MethodBinding[] concreteFirst(org.eclipse.jdt.internal.compiler.lookup.MethodBinding[], int);
    descriptor: ([Lorg/eclipse/jdt/internal/compiler/lookup/MethodBinding;I)[Lorg/eclipse/jdt/internal/compiler/lookup/MethodBinding;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // org.eclipse.jdt.internal.compiler.lookup.MethodBinding[] methods
        start local 1 // int length
         0: .line 89
            iload 1 /* length */
            ifeq 1
            iload 1 /* length */
            ifle 2
            aload 0 /* methods */
            iconst_0
            aaload
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.MethodBinding.isAbstract:()Z
            ifne 2
         1: .line 90
      StackMap locals:
      StackMap stack:
            aload 0 /* methods */
            areturn
         2: .line 91
      StackMap locals:
      StackMap stack:
            iload 1 /* length */
            anewarray org.eclipse.jdt.internal.compiler.lookup.MethodBinding
            astore 2 /* copy */
        start local 2 // org.eclipse.jdt.internal.compiler.lookup.MethodBinding[] copy
         3: .line 92
            iconst_0
            istore 3 /* idx */
        start local 3 // int idx
         4: .line 93
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         5: goto 9
         6: .line 94
      StackMap locals: org.eclipse.jdt.internal.compiler.lookup.MethodBinding[] int int
      StackMap stack:
            aload 0 /* methods */
            iload 4 /* i */
            aaload
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.MethodBinding.isAbstract:()Z
            ifne 8
         7: .line 95
            aload 2 /* copy */
            iload 3 /* idx */
            iinc 3 /* idx */ 1
            aload 0 /* methods */
            iload 4 /* i */
            aaload
            aastore
         8: .line 93
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 4 /* i */
            iload 1 /* length */
            if_icmplt 6
        end local 4 // int i
        10: .line 96
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        11: goto 15
        12: .line 97
      StackMap locals:
      StackMap stack:
            aload 0 /* methods */
            iload 4 /* i */
            aaload
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.MethodBinding.isAbstract:()Z
            ifeq 14
        13: .line 98
            aload 2 /* copy */
            iload 3 /* idx */
            iinc 3 /* idx */ 1
            aload 0 /* methods */
            iload 4 /* i */
            aaload
            aastore
        14: .line 96
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        15: iload 4 /* i */
            iload 1 /* length */
            if_icmplt 12
        end local 4 // int i
        16: .line 99
            aload 2 /* copy */
            areturn
        end local 3 // int idx
        end local 2 // org.eclipse.jdt.internal.compiler.lookup.MethodBinding[] copy
        end local 1 // int length
        end local 0 // org.eclipse.jdt.internal.compiler.lookup.MethodBinding[] methods
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   17     0  methods  [Lorg/eclipse/jdt/internal/compiler/lookup/MethodBinding;
            0   17     1   length  I
            3   17     2     copy  [Lorg/eclipse/jdt/internal/compiler/lookup/MethodBinding;
            4   17     3      idx  I
            5   10     4        i  I
           11   16     4        i  I
    MethodParameters:
         Name  Flags
      methods  
      length   

  public static org.eclipse.jdt.internal.compiler.lookup.MethodBinding[] abstractFirst(org.eclipse.jdt.internal.compiler.lookup.MethodBinding[], int);
    descriptor: ([Lorg/eclipse/jdt/internal/compiler/lookup/MethodBinding;I)[Lorg/eclipse/jdt/internal/compiler/lookup/MethodBinding;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // org.eclipse.jdt.internal.compiler.lookup.MethodBinding[] methods
        start local 1 // int length
         0: .line 102
            iload 1 /* length */
            ifeq 1
            iload 1 /* length */
            ifle 2
            aload 0 /* methods */
            iconst_0
            aaload
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.MethodBinding.isAbstract:()Z
            ifeq 2
         1: .line 103
      StackMap locals:
      StackMap stack:
            aload 0 /* methods */
            areturn
         2: .line 104
      StackMap locals:
      StackMap stack:
            iload 1 /* length */
            anewarray org.eclipse.jdt.internal.compiler.lookup.MethodBinding
            astore 2 /* copy */
        start local 2 // org.eclipse.jdt.internal.compiler.lookup.MethodBinding[] copy
         3: .line 105
            iconst_0
            istore 3 /* idx */
        start local 3 // int idx
         4: .line 106
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         5: goto 9
         6: .line 107
      StackMap locals: org.eclipse.jdt.internal.compiler.lookup.MethodBinding[] int int
      StackMap stack:
            aload 0 /* methods */
            iload 4 /* i */
            aaload
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.MethodBinding.isAbstract:()Z
            ifeq 8
         7: .line 108
            aload 2 /* copy */
            iload 3 /* idx */
            iinc 3 /* idx */ 1
            aload 0 /* methods */
            iload 4 /* i */
            aaload
            aastore
         8: .line 106
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 4 /* i */
            iload 1 /* length */
            if_icmplt 6
        end local 4 // int i
        10: .line 109
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        11: goto 15
        12: .line 110
      StackMap locals:
      StackMap stack:
            aload 0 /* methods */
            iload 4 /* i */
            aaload
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.MethodBinding.isAbstract:()Z
            ifne 14
        13: .line 111
            aload 2 /* copy */
            iload 3 /* idx */
            iinc 3 /* idx */ 1
            aload 0 /* methods */
            iload 4 /* i */
            aaload
            aastore
        14: .line 109
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        15: iload 4 /* i */
            iload 1 /* length */
            if_icmplt 12
        end local 4 // int i
        16: .line 112
            aload 2 /* copy */
            areturn
        end local 3 // int idx
        end local 2 // org.eclipse.jdt.internal.compiler.lookup.MethodBinding[] copy
        end local 1 // int length
        end local 0 // org.eclipse.jdt.internal.compiler.lookup.MethodBinding[] methods
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   17     0  methods  [Lorg/eclipse/jdt/internal/compiler/lookup/MethodBinding;
            0   17     1   length  I
            3   17     2     copy  [Lorg/eclipse/jdt/internal/compiler/lookup/MethodBinding;
            4   17     3      idx  I
            5   10     4        i  I
           11   16     4        i  I
    MethodParameters:
         Name  Flags
      methods  
      length   

  public static void sortInferenceVariables(org.eclipse.jdt.internal.compiler.lookup.InferenceVariable[]);
    descriptor: ([Lorg/eclipse/jdt/internal/compiler/lookup/InferenceVariable;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.compiler.lookup.InferenceVariable[] variables
         0: .line 117
            aload 0 /* variables */
            new org.eclipse.jdt.internal.compiler.util.Sorting$1
            dup
            invokespecial org.eclipse.jdt.internal.compiler.util.Sorting$1.<init>:()V
            invokestatic java.util.Arrays.sort:([Ljava/lang/Object;Ljava/util/Comparator;)V
         1: .line 123
            return
        end local 0 // org.eclipse.jdt.internal.compiler.lookup.InferenceVariable[] variables
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0  variables  [Lorg/eclipse/jdt/internal/compiler/lookup/InferenceVariable;
    MethodParameters:
           Name  Flags
      variables  
}
SourceFile: "Sorting.java"
NestMembers:
  org.eclipse.jdt.internal.compiler.util.Sorting$1
InnerClasses:
  org.eclipse.jdt.internal.compiler.util.Sorting$1