public class org.testng.internal.MethodInheritance
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.testng.internal.MethodInheritance
  super_class: java.lang.Object
{
  private static final java.util.Comparator<org.testng.ITestNGMethod> COMPARATOR;
    descriptor: Ljava/util/Comparator;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Comparator<Lorg/testng/ITestNGMethod;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 41
            invokedynamic compare()Ljava/util/Comparator;
              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;)I
                  org/testng/internal/MethodInheritance.lambda$0(Lorg/testng/ITestNGMethod;Lorg/testng/ITestNGMethod;)I (6)
                  (Lorg/testng/ITestNGMethod;Lorg/testng/ITestNGMethod;)I
         1: .line 40
            putstatic org.testng.internal.MethodInheritance.COMPARATOR:Ljava/util/Comparator;
         2: .line 53
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.testng.internal.MethodInheritance this
         0: .line 12
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.testng.internal.MethodInheritance this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/testng/internal/MethodInheritance;

  private static java.util.List<org.testng.ITestNGMethod> findMethodListSuperClass(java.util.Map<java.lang.Class, java.util.List<org.testng.ITestNGMethod>>, java.lang.Class<? extends org.testng.ITestNGMethod>);
    descriptor: (Ljava/util/Map;Ljava/lang/Class;)Ljava/util/List;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // java.util.Map map
        start local 1 // java.lang.Class methodClass
         0: .line 58
            aload 0 /* map */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 4
      StackMap locals: java.util.Map java.lang.Class top java.util.Iterator
      StackMap stack:
         1: 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
         2: .line 59
            aload 2 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.Class
            aload 1 /* methodClass */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 4
         3: .line 60
            aload 2 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.util.List
            areturn
        end local 2 // java.util.Map$Entry entry
         4: .line 58
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         5: .line 63
            aconst_null
            areturn
        end local 1 // java.lang.Class methodClass
        end local 0 // java.util.Map map
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0          map  Ljava/util/Map<Ljava/lang/Class;Ljava/util/List<Lorg/testng/ITestNGMethod;>;>;
            0    6     1  methodClass  Ljava/lang/Class<+Lorg/testng/ITestNGMethod;>;
            2    4     2        entry  Ljava/util/Map$Entry<Ljava/lang/Class;Ljava/util/List<Lorg/testng/ITestNGMethod;>;>;
    Signature: (Ljava/util/Map<Ljava/lang/Class;Ljava/util/List<Lorg/testng/ITestNGMethod;>;>;Ljava/lang/Class<+Lorg/testng/ITestNGMethod;>;)Ljava/util/List<Lorg/testng/ITestNGMethod;>;
    MethodParameters:
             Name  Flags
      map          
      methodClass  

  private static java.lang.Class findSubClass(java.util.Map<java.lang.Class, java.util.List<org.testng.ITestNGMethod>>, java.lang.Class<? extends org.testng.ITestNGMethod>);
    descriptor: (Ljava/util/Map;Ljava/lang/Class;)Ljava/lang/Class;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // java.util.Map map
        start local 1 // java.lang.Class methodClass
         0: .line 69
            aload 0 /* map */
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 4
      StackMap locals: java.util.Map java.lang.Class top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.Class
            astore 2 /* cls */
        start local 2 // java.lang.Class cls
         2: .line 70
            aload 1 /* methodClass */
            aload 2 /* cls */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 4
         3: .line 71
            aload 2 /* cls */
            areturn
        end local 2 // java.lang.Class cls
         4: .line 69
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         5: .line 75
            aconst_null
            areturn
        end local 1 // java.lang.Class methodClass
        end local 0 // java.util.Map map
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0          map  Ljava/util/Map<Ljava/lang/Class;Ljava/util/List<Lorg/testng/ITestNGMethod;>;>;
            0    6     1  methodClass  Ljava/lang/Class<+Lorg/testng/ITestNGMethod;>;
            2    4     2          cls  Ljava/lang/Class;
    Signature: (Ljava/util/Map<Ljava/lang/Class;Ljava/util/List<Lorg/testng/ITestNGMethod;>;>;Ljava/lang/Class<+Lorg/testng/ITestNGMethod;>;)Ljava/lang/Class;
    MethodParameters:
             Name  Flags
      map          
      methodClass  

  public static void fixMethodInheritance(org.testng.ITestNGMethod[], boolean);
    descriptor: ([Lorg/testng/ITestNGMethod;Z)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=10, args_size=2
        start local 0 // org.testng.ITestNGMethod[] methods
        start local 1 // boolean before
         0: .line 90
            invokestatic org.testng.collections.Maps.newHashMap:()Ljava/util/Map;
            astore 2 /* map */
        start local 2 // java.util.Map map
         1: .line 95
            aload 0 /* methods */
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 19
      StackMap locals: org.testng.ITestNGMethod[] int java.util.Map top int int org.testng.ITestNGMethod[]
      StackMap stack:
         2: aload 6
            iload 4
            aaload
            astore 3 /* method */
        start local 3 // org.testng.ITestNGMethod method
         3: .line 96
            aload 3 /* method */
            invokeinterface org.testng.ITestNGMethod.getRealClass:()Ljava/lang/Class;
            astore 7 /* methodClass */
        start local 7 // java.lang.Class methodClass
         4: .line 97
            aload 2 /* map */
            aload 7 /* methodClass */
            invokestatic org.testng.internal.MethodInheritance.findMethodListSuperClass:(Ljava/util/Map;Ljava/lang/Class;)Ljava/util/List;
            astore 8 /* l */
        start local 8 // java.util.List l
         5: .line 98
            aload 8 /* l */
            ifnull 8
         6: .line 99
            aload 8 /* l */
            aload 3 /* method */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         7: .line 100
            goto 18
         8: .line 101
      StackMap locals: org.testng.ITestNGMethod[] int java.util.Map org.testng.ITestNGMethod int int org.testng.ITestNGMethod[] java.lang.Class java.util.List
      StackMap stack:
            aload 2 /* map */
            aload 7 /* methodClass */
            invokestatic org.testng.internal.MethodInheritance.findSubClass:(Ljava/util/Map;Ljava/lang/Class;)Ljava/lang/Class;
            astore 9 /* subClass */
        start local 9 // java.lang.Class subClass
         9: .line 102
            aload 9 /* subClass */
            ifnull 15
        10: .line 103
            aload 2 /* map */
            aload 9 /* subClass */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.List
            astore 8 /* l */
        11: .line 104
            aload 8 /* l */
            aload 3 /* method */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        12: .line 105
            aload 2 /* map */
            aload 9 /* subClass */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        13: .line 106
            aload 2 /* map */
            aload 7 /* methodClass */
            aload 8 /* l */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        14: .line 107
            goto 18
        15: .line 108
      StackMap locals: java.lang.Class
      StackMap stack:
            invokestatic org.testng.collections.Lists.newArrayList:()Ljava/util/List;
            astore 8 /* l */
        16: .line 109
            aload 8 /* l */
            aload 3 /* method */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        17: .line 110
            aload 2 /* map */
            aload 7 /* methodClass */
            aload 8 /* l */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 9 // java.lang.Class subClass
        end local 8 // java.util.List l
        end local 7 // java.lang.Class methodClass
        end local 3 // org.testng.ITestNGMethod method
        18: .line 95
      StackMap locals: org.testng.ITestNGMethod[] int java.util.Map top int int org.testng.ITestNGMethod[]
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
        19: iload 4
            iload 5
            if_icmplt 2
        20: .line 118
            aload 2 /* map */
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 4
            goto 37
      StackMap locals: org.testng.ITestNGMethod[] int java.util.Map top java.util.Iterator
      StackMap stack:
        21: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.List
            astore 3 /* l */
        start local 3 // java.util.List l
        22: .line 119
            aload 3 /* l */
            invokeinterface java.util.List.size:()I
            iconst_1
            if_icmple 37
        23: .line 121
            aload 3 /* l */
            iload 1 /* before */
            invokestatic org.testng.internal.MethodInheritance.sortMethodsByInheritance:(Ljava/util/List;Z)V
        24: .line 129
            iconst_0
            istore 5 /* i */
        start local 5 // int i
        25: goto 36
        26: .line 130
      StackMap locals: org.testng.ITestNGMethod[] int java.util.Map java.util.List java.util.Iterator int
      StackMap stack:
            aload 3 /* l */
            iload 5 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.testng.ITestNGMethod
            astore 6 /* m1 */
        start local 6 // org.testng.ITestNGMethod m1
        27: .line 131
            iload 5 /* i */
            iconst_1
            iadd
            istore 7 /* j */
        start local 7 // int j
        28: goto 34
        29: .line 132
      StackMap locals: org.testng.ITestNGMethod int
      StackMap stack:
            aload 3 /* l */
            iload 7 /* j */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.testng.ITestNGMethod
            astore 8 /* m2 */
        start local 8 // org.testng.ITestNGMethod m2
        30: .line 133
            aload 6 /* m1 */
            aload 8 /* m2 */
            invokestatic org.testng.internal.MethodInheritance.equalsEffectiveClass:(Lorg/testng/ITestNGMethod;Lorg/testng/ITestNGMethod;)Z
            ifne 33
            aload 6 /* m1 */
            aload 8 /* m2 */
            aload 0 /* methods */
            invokestatic org.testng.internal.MethodInheritance.dependencyExists:(Lorg/testng/ITestNGMethod;Lorg/testng/ITestNGMethod;[Lorg/testng/ITestNGMethod;)Z
            ifne 33
        31: .line 134
            ldc "MethodInheritance"
            iconst_4
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 8 /* m2 */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " DEPENDS ON "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 6 /* m1 */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.testng.internal.Utils.log:(Ljava/lang/String;ILjava/lang/String;)V
        32: .line 135
            aload 8 /* m2 */
            aload 6 /* m1 */
            invokestatic org.testng.internal.MethodHelper.calculateMethodCanonicalName:(Lorg/testng/ITestNGMethod;)Ljava/lang/String;
            invokeinterface org.testng.ITestNGMethod.addMethodDependedUpon:(Ljava/lang/String;)V
        end local 8 // org.testng.ITestNGMethod m2
        33: .line 131
      StackMap locals:
      StackMap stack:
            iinc 7 /* j */ 1
      StackMap locals:
      StackMap stack:
        34: iload 7 /* j */
            aload 3 /* l */
            invokeinterface java.util.List.size:()I
            if_icmplt 29
        end local 7 // int j
        end local 6 // org.testng.ITestNGMethod m1
        35: .line 129
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        36: iload 5 /* i */
            aload 3 /* l */
            invokeinterface java.util.List.size:()I
            iconst_1
            isub
            if_icmplt 26
        end local 5 // int i
        end local 3 // java.util.List l
        37: .line 118
      StackMap locals: org.testng.ITestNGMethod[] int java.util.Map top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 21
        38: .line 141
            return
        end local 2 // java.util.Map map
        end local 1 // boolean before
        end local 0 // org.testng.ITestNGMethod[] methods
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   39     0      methods  [Lorg/testng/ITestNGMethod;
            0   39     1       before  Z
            1   39     2          map  Ljava/util/Map<Ljava/lang/Class;Ljava/util/List<Lorg/testng/ITestNGMethod;>;>;
            3   18     3       method  Lorg/testng/ITestNGMethod;
            4   18     7  methodClass  Ljava/lang/Class<+Lorg/testng/ITestNGMethod;>;
            5   18     8            l  Ljava/util/List<Lorg/testng/ITestNGMethod;>;
            9   18     9     subClass  Ljava/lang/Class;
           22   37     3            l  Ljava/util/List<Lorg/testng/ITestNGMethod;>;
           25   37     5            i  I
           27   35     6           m1  Lorg/testng/ITestNGMethod;
           28   35     7            j  I
           30   33     8           m2  Lorg/testng/ITestNGMethod;
    MethodParameters:
         Name  Flags
      methods  
      before   

  private static boolean dependencyExists(org.testng.ITestNGMethod, org.testng.ITestNGMethod, org.testng.ITestNGMethod[]);
    descriptor: (Lorg/testng/ITestNGMethod;Lorg/testng/ITestNGMethod;[Lorg/testng/ITestNGMethod;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.testng.ITestNGMethod m1
        start local 1 // org.testng.ITestNGMethod m2
        start local 2 // org.testng.ITestNGMethod[] methods
         0: .line 145
            aload 0 /* m1 */
            aload 1 /* m2 */
            aload 2 /* methods */
            invokestatic org.testng.internal.MethodInheritance.internalDependencyExists:(Lorg/testng/ITestNGMethod;Lorg/testng/ITestNGMethod;[Lorg/testng/ITestNGMethod;)Z
            ifne 1
            aload 1 /* m2 */
            aload 0 /* m1 */
            aload 2 /* methods */
            invokestatic org.testng.internal.MethodInheritance.internalDependencyExists:(Lorg/testng/ITestNGMethod;Lorg/testng/ITestNGMethod;[Lorg/testng/ITestNGMethod;)Z
            ifne 1
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
        end local 2 // org.testng.ITestNGMethod[] methods
        end local 1 // org.testng.ITestNGMethod m2
        end local 0 // org.testng.ITestNGMethod m1
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0       m1  Lorg/testng/ITestNGMethod;
            0    2     1       m2  Lorg/testng/ITestNGMethod;
            0    2     2  methods  [Lorg/testng/ITestNGMethod;
    MethodParameters:
         Name  Flags
      m1       
      m2       
      methods  

  private static boolean internalDependencyExists(org.testng.ITestNGMethod, org.testng.ITestNGMethod, org.testng.ITestNGMethod[]);
    descriptor: (Lorg/testng/ITestNGMethod;Lorg/testng/ITestNGMethod;[Lorg/testng/ITestNGMethod;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=13, args_size=3
        start local 0 // org.testng.ITestNGMethod m1
        start local 1 // org.testng.ITestNGMethod m2
        start local 2 // org.testng.ITestNGMethod[] methods
         0: .line 150
            aload 0 /* m1 */
            aload 2 /* methods */
            invokestatic org.testng.internal.MethodHelper.findDependedUponMethods:(Lorg/testng/ITestNGMethod;[Lorg/testng/ITestNGMethod;)[Lorg/testng/ITestNGMethod;
            astore 3 /* methodsNamed */
        start local 3 // org.testng.ITestNGMethod[] methodsNamed
         1: .line 152
            aload 3 /* methodsNamed */
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 6
      StackMap locals: org.testng.ITestNGMethod org.testng.ITestNGMethod org.testng.ITestNGMethod[] org.testng.ITestNGMethod[] top int int org.testng.ITestNGMethod[]
      StackMap stack:
         2: aload 7
            iload 5
            aaload
            astore 4 /* method */
        start local 4 // org.testng.ITestNGMethod method
         3: .line 153
            aload 4 /* method */
            aload 1 /* m2 */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 5
         4: .line 154
            iconst_1
            ireturn
        end local 4 // org.testng.ITestNGMethod method
         5: .line 152
      StackMap locals:
      StackMap stack:
            iinc 5 1
      StackMap locals:
      StackMap stack:
         6: iload 5
            iload 6
            if_icmplt 2
         7: .line 158
            aload 0 /* m1 */
            invokeinterface org.testng.ITestNGMethod.getGroupsDependedUpon:()[Ljava/lang/String;
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 18
      StackMap locals: org.testng.ITestNGMethod org.testng.ITestNGMethod org.testng.ITestNGMethod[] org.testng.ITestNGMethod[] top int int java.lang.String[]
      StackMap stack:
         8: aload 7
            iload 5
            aaload
            astore 4 /* group */
        start local 4 // java.lang.String group
         9: .line 160
            aload 0 /* m1 */
            aload 2 /* methods */
            aload 4 /* group */
            invokestatic org.testng.internal.MethodGroupsHelper.findMethodsThatBelongToGroup:(Lorg/testng/ITestNGMethod;[Lorg/testng/ITestNGMethod;Ljava/lang/String;)[Lorg/testng/ITestNGMethod;
        10: .line 159
            astore 8 /* methodsThatBelongToGroup */
        start local 8 // org.testng.ITestNGMethod[] methodsThatBelongToGroup
        11: .line 161
            aload 8 /* methodsThatBelongToGroup */
            dup
            astore 12
            arraylength
            istore 11
            iconst_0
            istore 10
            goto 16
      StackMap locals: org.testng.ITestNGMethod org.testng.ITestNGMethod org.testng.ITestNGMethod[] org.testng.ITestNGMethod[] java.lang.String int int java.lang.String[] org.testng.ITestNGMethod[] top int int org.testng.ITestNGMethod[]
      StackMap stack:
        12: aload 12
            iload 10
            aaload
            astore 9 /* method */
        start local 9 // org.testng.ITestNGMethod method
        13: .line 162
            aload 9 /* method */
            aload 1 /* m2 */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 15
        14: .line 163
            iconst_1
            ireturn
        end local 9 // org.testng.ITestNGMethod method
        15: .line 161
      StackMap locals:
      StackMap stack:
            iinc 10 1
      StackMap locals:
      StackMap stack:
        16: iload 10
            iload 11
            if_icmplt 12
        end local 8 // org.testng.ITestNGMethod[] methodsThatBelongToGroup
        end local 4 // java.lang.String group
        17: .line 158
            iinc 5 1
      StackMap locals: org.testng.ITestNGMethod org.testng.ITestNGMethod org.testng.ITestNGMethod[] org.testng.ITestNGMethod[] top int int java.lang.String[]
      StackMap stack:
        18: iload 5
            iload 6
            if_icmplt 8
        19: .line 168
            iconst_0
            ireturn
        end local 3 // org.testng.ITestNGMethod[] methodsNamed
        end local 2 // org.testng.ITestNGMethod[] methods
        end local 1 // org.testng.ITestNGMethod m2
        end local 0 // org.testng.ITestNGMethod m1
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0   20     0                        m1  Lorg/testng/ITestNGMethod;
            0   20     1                        m2  Lorg/testng/ITestNGMethod;
            0   20     2                   methods  [Lorg/testng/ITestNGMethod;
            1   20     3              methodsNamed  [Lorg/testng/ITestNGMethod;
            3    5     4                    method  Lorg/testng/ITestNGMethod;
            9   17     4                     group  Ljava/lang/String;
           11   17     8  methodsThatBelongToGroup  [Lorg/testng/ITestNGMethod;
           13   15     9                    method  Lorg/testng/ITestNGMethod;
    MethodParameters:
         Name  Flags
      m1       
      m2       
      methods  

  private static boolean equalsEffectiveClass(org.testng.ITestNGMethod, org.testng.ITestNGMethod);
    descriptor: (Lorg/testng/ITestNGMethod;Lorg/testng/ITestNGMethod;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.testng.ITestNGMethod m1
        start local 1 // org.testng.ITestNGMethod m2
         0: .line 173
            aload 0 /* m1 */
            invokeinterface org.testng.ITestNGMethod.getRealClass:()Ljava/lang/Class;
            astore 2 /* c1 */
        start local 2 // java.lang.Class c1
         1: .line 174
            aload 1 /* m2 */
            invokeinterface org.testng.ITestNGMethod.getRealClass:()Ljava/lang/Class;
            astore 3 /* c2 */
        start local 3 // java.lang.Class c2
         2: .line 176
            aload 2 /* c1 */
            ifnonnull 4
            aload 3 /* c2 */
            ifnonnull 3
            iconst_1
            goto 5
      StackMap locals: java.lang.Class java.lang.Class
      StackMap stack:
         3: iconst_0
            goto 5
      StackMap locals:
      StackMap stack:
         4: aload 2 /* c1 */
            aload 3 /* c2 */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
      StackMap locals:
      StackMap stack: int
         5: ireturn
        end local 3 // java.lang.Class c2
        end local 2 // java.lang.Class c1
         6: .line 177
      StackMap locals: org.testng.ITestNGMethod org.testng.ITestNGMethod
      StackMap stack: java.lang.Exception
            pop
         7: .line 178
            iconst_0
            ireturn
        end local 1 // org.testng.ITestNGMethod m2
        end local 0 // org.testng.ITestNGMethod m1
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0    m1  Lorg/testng/ITestNGMethod;
            0    8     1    m2  Lorg/testng/ITestNGMethod;
            1    6     2    c1  Ljava/lang/Class;
            2    6     3    c2  Ljava/lang/Class;
      Exception table:
        from    to  target  type
           0     5       6  Class java.lang.Exception
    MethodParameters:
      Name  Flags
      m1    
      m2    

  private static void sortMethodsByInheritance(java.util.List<org.testng.ITestNGMethod>, );
    descriptor: (Ljava/util/List;Z)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.util.List methods
        start local 1 // boolean baseClassToChild
         0: .line 188
            aload 0 /* methods */
            getstatic org.testng.internal.MethodInheritance.COMPARATOR:Ljava/util/Comparator;
            invokeinterface java.util.List.sort:(Ljava/util/Comparator;)V
         1: .line 189
            iload 1 /* baseClassToChild */
            ifne 3
         2: .line 190
            aload 0 /* methods */
            invokestatic java.util.Collections.reverse:(Ljava/util/List;)V
         3: .line 192
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean baseClassToChild
        end local 0 // java.util.List methods
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    4     0           methods  Ljava/util/List<Lorg/testng/ITestNGMethod;>;
            0    4     1  baseClassToChild  Z
    Signature: (Ljava/util/List<Lorg/testng/ITestNGMethod;>;Z)V
    MethodParameters:
                  Name  Flags
      methods           
      baseClassToChild  

  private static int lambda$0(org.testng.ITestNGMethod, org.testng.ITestNGMethod);
    descriptor: (Lorg/testng/ITestNGMethod;Lorg/testng/ITestNGMethod;)I
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // org.testng.ITestNGMethod o1
        start local 1 // org.testng.ITestNGMethod o2
         0: .line 42
            bipush -2
            istore 2 /* result */
        start local 2 // int result
         1: .line 43
            aload 0 /* o1 */
            invokeinterface org.testng.ITestNGMethod.getRealClass:()Ljava/lang/Class;
            astore 3 /* thisClass */
        start local 3 // java.lang.Class thisClass
         2: .line 44
            aload 1 /* o2 */
            invokeinterface org.testng.ITestNGMethod.getRealClass:()Ljava/lang/Class;
            astore 4 /* otherClass */
        start local 4 // java.lang.Class otherClass
         3: .line 45
            aload 3 /* thisClass */
            aload 4 /* otherClass */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 6
         4: .line 46
            iconst_m1
            istore 2 /* result */
         5: .line 47
            goto 11
      StackMap locals: int java.lang.Class java.lang.Class
      StackMap stack:
         6: aload 4 /* otherClass */
            aload 3 /* thisClass */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 9
         7: .line 48
            iconst_1
            istore 2 /* result */
         8: .line 49
            goto 11
      StackMap locals:
      StackMap stack:
         9: aload 0 /* o1 */
            aload 1 /* o2 */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 11
        10: .line 50
            iconst_0
            istore 2 /* result */
        11: .line 52
      StackMap locals:
      StackMap stack:
            iload 2 /* result */
            ireturn
        end local 4 // java.lang.Class otherClass
        end local 3 // java.lang.Class thisClass
        end local 2 // int result
        end local 1 // org.testng.ITestNGMethod o2
        end local 0 // org.testng.ITestNGMethod o1
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   12     0          o1  Lorg/testng/ITestNGMethod;
            0   12     1          o2  Lorg/testng/ITestNGMethod;
            1   12     2      result  I
            2   12     3   thisClass  Ljava/lang/Class<*>;
            3   12     4  otherClass  Ljava/lang/Class<*>;
}
SourceFile: "MethodInheritance.java"
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