public class org.graalvm.compiler.jtt.optimize.SwitchHashTableTest$TestGenerator
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.graalvm.compiler.jtt.optimize.SwitchHashTableTest$TestGenerator
  super_class: java.lang.Object
{
  private static int nextId;
    descriptor: I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

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

  private static double minDensity;
    descriptor: D
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 549
            iconst_0
            putstatic org.graalvm.compiler.jtt.optimize.SwitchHashTableTest$TestGenerator.nextId:I
         1: .line 551
            ldc 0.5
            putstatic org.graalvm.compiler.jtt.optimize.SwitchHashTableTest$TestGenerator.minDensity:D
            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.graalvm.compiler.jtt.optimize.SwitchHashTableTest$TestGenerator this
         0: .line 547
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.graalvm.compiler.jtt.optimize.SwitchHashTableTest$TestGenerator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/jtt/optimize/SwitchHashTableTest$TestGenerator;

  public static void main(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=8, args_size=1
        start local 0 // java.lang.String[] args
         0: .line 556
            new java.util.Random
            dup
            lconst_0
            invokespecial java.util.Random.<init>:(J)V
            astore 1 /* r */
        start local 1 // java.util.Random r
         1: .line 557
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 2 /* seen */
        start local 2 // java.util.Set seen
         2: .line 558
            invokestatic org.graalvm.compiler.lir.hashing.HashFunction.instances:()Ljava/util/List;
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/lang/Object.toString()Ljava/lang/String; (5)
                  (Lorg/graalvm/compiler/lir/hashing/HashFunction;)Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
            invokestatic java.util.stream.Collectors.toSet:()Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.util.Set
            astore 3 /* all */
        start local 3 // java.util.Set all
         3: .line 560
            ldc "@Test"
            invokestatic org.graalvm.compiler.jtt.optimize.SwitchHashTableTest$TestGenerator.println:(Ljava/lang/String;)V
         4: .line 561
            ldc "public void checkHashFunctionInstances() {"
            invokestatic org.graalvm.compiler.jtt.optimize.SwitchHashTableTest$TestGenerator.println:(Ljava/lang/String;)V
         5: .line 562
            new java.lang.StringBuilder
            dup
            ldc "    List<String> coveredByTestCases = Arrays.asList("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ", "
            aload 3 /* all */
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  org/graalvm/compiler/jtt/optimize/SwitchHashTableTest$TestGenerator.lambda$1(Ljava/lang/String;)Ljava/lang/String; (6)
                  (Ljava/lang/String;)Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
            invokestatic java.util.stream.Collectors.toSet:()Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.lang.Iterable
            invokestatic java.lang.String.join:(Ljava/lang/CharSequence;Ljava/lang/Iterable;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ");"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.graalvm.compiler.jtt.optimize.SwitchHashTableTest$TestGenerator.println:(Ljava/lang/String;)V
         6: .line 563
            ldc "    Set<String> functions = HashFunction.instances().stream().map(Object::toString).collect(Collectors.toSet());"
            invokestatic org.graalvm.compiler.jtt.optimize.SwitchHashTableTest$TestGenerator.println:(Ljava/lang/String;)V
         7: .line 564
            ldc "    functions.removeAll(coveredByTestCases);"
            invokestatic org.graalvm.compiler.jtt.optimize.SwitchHashTableTest$TestGenerator.println:(Ljava/lang/String;)V
         8: .line 565
            ldc "    assertTrue(\"The following hash functions are not covered by the `Switch03` test: \" + functions +"
            invokestatic org.graalvm.compiler.jtt.optimize.SwitchHashTableTest$TestGenerator.println:(Ljava/lang/String;)V
         9: .line 566
            ldc "            \". Re-run the `Switch03.TestGenerator.main` and update the test class.\", functions.isEmpty());"
            invokestatic org.graalvm.compiler.jtt.optimize.SwitchHashTableTest$TestGenerator.println:(Ljava/lang/String;)V
        10: .line 567
            ldc "}"
            invokestatic org.graalvm.compiler.jtt.optimize.SwitchHashTableTest$TestGenerator.println:(Ljava/lang/String;)V
        11: .line 569
            goto 22
        12: .line 570
      StackMap locals: java.util.Random java.util.Set java.util.Set
      StackMap stack:
            aload 1 /* r */
            ldc 1073741823
            invokevirtual java.util.Random.nextInt:(I)I
            istore 4 /* v */
        start local 4 // int v
        13: .line 571
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 5 /* keys */
        start local 5 // java.util.List keys
        14: .line 572
            goto 17
        15: .line 573
      StackMap locals: int java.util.List
      StackMap stack:
            aload 5 /* keys */
            iload 4 /* v */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        16: .line 574
            iload 4 /* v */
            aload 1 /* r */
            bipush 15
            invokevirtual java.util.Random.nextInt:(I)I
            iadd
            istore 4 /* v */
        17: .line 572
      StackMap locals:
      StackMap stack:
            aload 5 /* keys */
            invokeinterface java.util.List.size:()I
            bipush 15
            if_icmplt 15
        18: .line 576
            aload 5 /* keys */
            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
                  java/lang/Integer.compare(II)I (6)
                  (Ljava/lang/Integer;Ljava/lang/Integer;)I
            invokeinterface java.util.List.sort:(Ljava/util/Comparator;)V
        19: .line 577
            aload 5 /* keys */
            invokeinterface java.util.List.size:()I
            i2d
            dconst_1
            dadd
            aload 5 /* keys */
            aload 5 /* keys */
            invokeinterface java.util.List.size:()I
            iconst_1
            isub
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            aload 5 /* keys */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            isub
            i2d
            ddiv
            dstore 6 /* density */
        start local 6 // double density
        20: .line 578
            dload 6 /* density */
            getstatic org.graalvm.compiler.jtt.optimize.SwitchHashTableTest$TestGenerator.minDensity:D
            dcmpg
            ifge 22
        21: .line 579
            aload 5 /* keys */
            invokestatic org.graalvm.compiler.jtt.optimize.SwitchHashTableTest$TestGenerator.toConstants:(Ljava/util/List;)[Ljdk/vm/ci/meta/JavaConstant;
            getstatic org.graalvm.compiler.jtt.optimize.SwitchHashTableTest$TestGenerator.minDensity:D
            invokestatic org.graalvm.compiler.lir.hashing.Hasher.forKeys:([Ljdk/vm/ci/meta/JavaConstant;D)Ljava/util/Optional;
            aload 2 /* seen */
            aload 5 /* keys */
            invokedynamic accept(Ljava/util/Set;Ljava/util/List;)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/graalvm/compiler/jtt/optimize/SwitchHashTableTest$TestGenerator.lambda$3(Ljava/util/Set;Ljava/util/List;Lorg/graalvm/compiler/lir/hashing/Hasher;)V (6)
                  (Lorg/graalvm/compiler/lir/hashing/Hasher;)V
            invokevirtual java.util.Optional.ifPresent:(Ljava/util/function/Consumer;)V
        end local 6 // double density
        end local 5 // java.util.List keys
        end local 4 // int v
        22: .line 569
      StackMap locals:
      StackMap stack:
            aload 2 /* seen */
            invokeinterface java.util.Set.size:()I
            aload 3 /* all */
            invokeinterface java.util.Set.size:()I
            if_icmplt 12
        23: .line 588
            return
        end local 3 // java.util.Set all
        end local 2 // java.util.Set seen
        end local 1 // java.util.Random r
        end local 0 // java.lang.String[] args
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   24     0     args  [Ljava/lang/String;
            1   24     1        r  Ljava/util/Random;
            2   24     2     seen  Ljava/util/Set<Ljava/lang/String;>;
            3   24     3      all  Ljava/util/Set<Ljava/lang/String;>;
           13   22     4        v  I
           14   22     5     keys  Ljava/util/List<Ljava/lang/Integer;>;
           20   22     6  density  D
    MethodParameters:
      Name  Flags
      args  

  private static void gen(java.util.List<java.lang.Integer>, org.graalvm.compiler.lir.hashing.Hasher);
    descriptor: (Ljava/util/List;Lorg/graalvm/compiler/lir/hashing/Hasher;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // java.util.List keys
        start local 1 // org.graalvm.compiler.lir.hashing.Hasher hasher
         0: .line 591
            getstatic org.graalvm.compiler.jtt.optimize.SwitchHashTableTest$TestGenerator.nextId:I
            iconst_1
            iadd
            dup
            putstatic org.graalvm.compiler.jtt.optimize.SwitchHashTableTest$TestGenerator.nextId:I
            istore 2 /* id */
        start local 2 // int id
         1: .line 593
            new java.lang.StringBuilder
            dup
            ldc "// "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* hasher */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.graalvm.compiler.jtt.optimize.SwitchHashTableTest$TestGenerator.println:(Ljava/lang/String;)V
         2: .line 594
            new java.lang.StringBuilder
            dup
            ldc "public static int test"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 2 /* id */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "(int arg) {"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.graalvm.compiler.jtt.optimize.SwitchHashTableTest$TestGenerator.println:(Ljava/lang/String;)V
         3: .line 595
            ldc "    switch (arg) {"
            invokestatic org.graalvm.compiler.jtt.optimize.SwitchHashTableTest$TestGenerator.println:(Ljava/lang/String;)V
         4: .line 597
            aload 0 /* keys */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 7
      StackMap locals: java.util.List org.graalvm.compiler.lir.hashing.Hasher int top java.util.Iterator
      StackMap stack:
         5: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.Integer
            astore 3 /* key */
        start local 3 // java.lang.Integer key
         6: .line 598
            new java.lang.StringBuilder
            dup
            ldc "        case "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* key */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ": return "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* key */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ";"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.graalvm.compiler.jtt.optimize.SwitchHashTableTest$TestGenerator.println:(Ljava/lang/String;)V
        end local 3 // java.lang.Integer key
         7: .line 597
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
         8: .line 601
            ldc "        default: return -1;"
            invokestatic org.graalvm.compiler.jtt.optimize.SwitchHashTableTest$TestGenerator.println:(Ljava/lang/String;)V
         9: .line 602
            ldc "    }"
            invokestatic org.graalvm.compiler.jtt.optimize.SwitchHashTableTest$TestGenerator.println:(Ljava/lang/String;)V
        10: .line 603
            ldc "}"
            invokestatic org.graalvm.compiler.jtt.optimize.SwitchHashTableTest$TestGenerator.println:(Ljava/lang/String;)V
        11: .line 605
            aload 0 /* keys */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            iconst_1
            iadd
            istore 3 /* miss */
        start local 3 // int miss
        12: .line 606
            goto 14
        13: .line 607
      StackMap locals: java.util.List org.graalvm.compiler.lir.hashing.Hasher int int
      StackMap stack:
            iinc 3 /* miss */ 1
        14: .line 606
      StackMap locals:
      StackMap stack:
            aload 0 /* keys */
            iload 3 /* miss */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
            ifne 13
        15: .line 610
            ldc "@Test"
            invokestatic org.graalvm.compiler.jtt.optimize.SwitchHashTableTest$TestGenerator.println:(Ljava/lang/String;)V
        16: .line 611
            new java.lang.StringBuilder
            dup
            ldc "public void run"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 2 /* id */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "() throws Throwable {"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.graalvm.compiler.jtt.optimize.SwitchHashTableTest$TestGenerator.println:(Ljava/lang/String;)V
        17: .line 612
            new java.lang.StringBuilder
            dup
            ldc "    runTest(\"test"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 2 /* id */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "\", 0); // zero "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.graalvm.compiler.jtt.optimize.SwitchHashTableTest$TestGenerator.println:(Ljava/lang/String;)V
        18: .line 613
            new java.lang.StringBuilder
            dup
            ldc "    runTest(\"test"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 2 /* id */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "\", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* keys */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            iconst_1
            isub
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "); // bellow "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.graalvm.compiler.jtt.optimize.SwitchHashTableTest$TestGenerator.println:(Ljava/lang/String;)V
        19: .line 614
            new java.lang.StringBuilder
            dup
            ldc "    runTest(\"test"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 2 /* id */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "\", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* keys */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "); // first "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.graalvm.compiler.jtt.optimize.SwitchHashTableTest$TestGenerator.println:(Ljava/lang/String;)V
        20: .line 615
            new java.lang.StringBuilder
            dup
            ldc "    runTest(\"test"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 2 /* id */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "\", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* keys */
            bipush 7
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "); // middle "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.graalvm.compiler.jtt.optimize.SwitchHashTableTest$TestGenerator.println:(Ljava/lang/String;)V
        21: .line 616
            new java.lang.StringBuilder
            dup
            ldc "    runTest(\"test"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 2 /* id */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "\", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* keys */
            bipush 14
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "); // last "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.graalvm.compiler.jtt.optimize.SwitchHashTableTest$TestGenerator.println:(Ljava/lang/String;)V
        22: .line 617
            new java.lang.StringBuilder
            dup
            ldc "    runTest(\"test"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 2 /* id */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "\", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* keys */
            bipush 14
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            iconst_1
            iadd
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "); // above "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.graalvm.compiler.jtt.optimize.SwitchHashTableTest$TestGenerator.println:(Ljava/lang/String;)V
        23: .line 618
            new java.lang.StringBuilder
            dup
            ldc "    runTest(\"test"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 2 /* id */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "\", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 3 /* miss */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "); // miss "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.graalvm.compiler.jtt.optimize.SwitchHashTableTest$TestGenerator.println:(Ljava/lang/String;)V
        24: .line 619
            ldc "}"
            invokestatic org.graalvm.compiler.jtt.optimize.SwitchHashTableTest$TestGenerator.println:(Ljava/lang/String;)V
        25: .line 620
            return
        end local 3 // int miss
        end local 2 // int id
        end local 1 // org.graalvm.compiler.lir.hashing.Hasher hasher
        end local 0 // java.util.List keys
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   26     0    keys  Ljava/util/List<Ljava/lang/Integer;>;
            0   26     1  hasher  Lorg/graalvm/compiler/lir/hashing/Hasher;
            1   26     2      id  I
            6    7     3     key  Ljava/lang/Integer;
           12   26     3    miss  I
    Signature: (Ljava/util/List<Ljava/lang/Integer;>;Lorg/graalvm/compiler/lir/hashing/Hasher;)V
    MethodParameters:
        Name  Flags
      keys    
      hasher  

  private static void println(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String s
         0: .line 623
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            aload 0 /* s */
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         1: .line 624
            return
        end local 0 // java.lang.String s
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     s  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      s     

  private static jdk.vm.ci.meta.JavaConstant[] toConstants(java.util.List<java.lang.Integer>);
    descriptor: (Ljava/util/List;)[Ljdk/vm/ci/meta/JavaConstant;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // java.util.List keys
         0: .line 627
            aload 0 /* keys */
            invokeinterface java.util.List.size:()I
            anewarray jdk.vm.ci.meta.JavaConstant
            astore 1 /* ckeys */
        start local 1 // jdk.vm.ci.meta.JavaConstant[] ckeys
         1: .line 629
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 5
         3: .line 630
      StackMap locals: jdk.vm.ci.meta.JavaConstant[] int
      StackMap stack:
            aload 1 /* ckeys */
            iload 2 /* i */
            aload 0 /* keys */
            iload 2 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            invokestatic jdk.vm.ci.meta.JavaConstant.forInt:(I)Ljdk/vm/ci/meta/PrimitiveConstant;
            aastore
         4: .line 629
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 2 /* i */
            aload 0 /* keys */
            invokeinterface java.util.List.size:()I
            if_icmplt 3
        end local 2 // int i
         6: .line 632
            aload 1 /* ckeys */
            areturn
        end local 1 // jdk.vm.ci.meta.JavaConstant[] ckeys
        end local 0 // java.util.List keys
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   keys  Ljava/util/List<Ljava/lang/Integer;>;
            1    7     1  ckeys  [Ljdk/vm/ci/meta/JavaConstant;
            2    6     2      i  I
    Signature: (Ljava/util/List<Ljava/lang/Integer;>;)[Ljdk/vm/ci/meta/JavaConstant;
    MethodParameters:
      Name  Flags
      keys  

  private static java.lang.String lambda$1(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.String s
         0: .line 562
            new java.lang.StringBuilder
            dup
            ldc "\""
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* s */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // java.lang.String s
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     s  Ljava/lang/String;

  private static void lambda$3(java.util.Set, java.util.List, org.graalvm.compiler.lir.hashing.Hasher);
    descriptor: (Ljava/util/Set;Ljava/util/List;Lorg/graalvm/compiler/lir/hashing/Hasher;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=4, args_size=3
        start local 2 // org.graalvm.compiler.lir.hashing.Hasher h
         0: .line 580
            aload 2 /* h */
            invokevirtual org.graalvm.compiler.lir.hashing.Hasher.function:()Lorg/graalvm/compiler/lir/hashing/HashFunction;
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            astore 3 /* f */
        start local 3 // java.lang.String f
         1: .line 581
            aload 0
            aload 3 /* f */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 4
         2: .line 582
            aload 1
            aload 2 /* h */
            invokestatic org.graalvm.compiler.jtt.optimize.SwitchHashTableTest$TestGenerator.gen:(Ljava/util/List;Lorg/graalvm/compiler/lir/hashing/Hasher;)V
         3: .line 583
            aload 0
            aload 3 /* f */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 3 // java.lang.String f
         4: .line 585
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.graalvm.compiler.lir.hashing.Hasher h
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     2     h  Lorg/graalvm/compiler/lir/hashing/Hasher;
            1    4     3     f  Ljava/lang/String;
}
SourceFile: "SwitchHashTableTest.java"
NestHost: org.graalvm.compiler.jtt.optimize.SwitchHashTableTest
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public TestGenerator = org.graalvm.compiler.jtt.optimize.SwitchHashTableTest$TestGenerator of org.graalvm.compiler.jtt.optimize.SwitchHashTableTest