final class com.oracle.truffle.tck.tests.TestUtil
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.oracle.truffle.tck.tests.TestUtil
  super_class: java.lang.Object
{
  private static final int MAX_FAILURES;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

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

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 67
            ldc "tck.maxFailures"
            bipush 100
            invokestatic java.lang.Integer.getInteger:(Ljava/lang/String;I)Ljava/lang/Integer;
            invokevirtual java.lang.Integer.intValue:()I
            putstatic com.oracle.truffle.tck.tests.TestUtil.MAX_FAILURES:I
         1: .line 68
            ldc "tck.language"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            putstatic com.oracle.truffle.tck.tests.TestUtil.LANGUAGE:Ljava/lang/String;
         2: .line 69
            ldc "tck.values"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            putstatic com.oracle.truffle.tck.tests.TestUtil.VALUES:Ljava/lang/String;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.truffle.tck.tests.TestUtil this
         0: .line 71
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 72
            new java.lang.IllegalStateException
            dup
            ldc "No instance allowed."
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // com.oracle.truffle.tck.tests.TestUtil this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/tck/tests/TestUtil;

  static java.util.Set<? extends java.lang.String> getRequiredLanguages(com.oracle.truffle.tck.tests.TestContext);
    descriptor: (Lcom/oracle/truffle/tck/tests/TestContext;)Ljava/util/Set;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // com.oracle.truffle.tck.tests.TestContext context
         0: .line 76
            aload 0 /* context */
            invokevirtual com.oracle.truffle.tck.tests.TestContext.getInstalledProviders:()Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            astore 1 /* installedProviders */
        start local 1 // java.util.Set installedProviders
         1: .line 77
            getstatic com.oracle.truffle.tck.tests.TestUtil.LANGUAGE:Ljava/lang/String;
            ifnull 3
            aload 1 /* installedProviders */
            getstatic com.oracle.truffle.tck.tests.TestUtil.LANGUAGE:Ljava/lang/String;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 3
         2: .line 78
            ldc "tck.language"
            getstatic com.oracle.truffle.tck.tests.TestUtil.LANGUAGE:Ljava/lang/String;
            invokestatic java.util.Collections.singleton:(Ljava/lang/Object;)Ljava/util/Set;
            aload 1 /* installedProviders */
            invokestatic com.oracle.truffle.tck.tests.TestUtil.providerNotFound:(Ljava/lang/String;Ljava/util/Set;Ljava/util/Set;)Ljava/lang/IllegalStateException;
            athrow
         3: .line 81
      StackMap locals: java.util.Set
      StackMap stack:
            aload 0 /* context */
         4: .line 82
            getstatic com.oracle.truffle.tck.tests.TestUtil.LANGUAGE:Ljava/lang/String;
            ifnonnull 5
            aconst_null
            goto 6
      StackMap locals:
      StackMap stack: com.oracle.truffle.tck.tests.TestContext
         5: new com.oracle.truffle.tck.tests.TestUtil$1
            dup
            invokespecial com.oracle.truffle.tck.tests.TestUtil$1.<init>:()V
         6: .line 80
      StackMap locals: com.oracle.truffle.tck.tests.TestContext java.util.Set
      StackMap stack: com.oracle.truffle.tck.tests.TestContext com.oracle.truffle.tck.tests.TestUtil$1
            invokestatic com.oracle.truffle.tck.tests.TestUtil.filterLanguages:(Lcom/oracle/truffle/tck/tests/TestContext;Ljava/util/function/Predicate;)Ljava/util/Set;
            areturn
        end local 1 // java.util.Set installedProviders
        end local 0 // com.oracle.truffle.tck.tests.TestContext context
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    7     0             context  Lcom/oracle/truffle/tck/tests/TestContext;
            1    7     1  installedProviders  Ljava/util/Set<Ljava/lang/String;>;
    Signature: (Lcom/oracle/truffle/tck/tests/TestContext;)Ljava/util/Set<+Ljava/lang/String;>;
    MethodParameters:
         Name  Flags
      context  final

  static java.util.Set<? extends java.lang.String> getRequiredValueLanguages(com.oracle.truffle.tck.tests.TestContext);
    descriptor: (Lcom/oracle/truffle/tck/tests/TestContext;)Ljava/util/Set;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // com.oracle.truffle.tck.tests.TestContext context
         0: .line 92
            getstatic com.oracle.truffle.tck.tests.TestUtil.VALUES:Ljava/lang/String;
            ifnull 9
         1: .line 93
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 2 /* requiredValues */
        start local 2 // java.util.Set requiredValues
         2: .line 94
            aload 2 /* requiredValues */
            getstatic com.oracle.truffle.tck.tests.TestUtil.VALUES:Ljava/lang/String;
            ldc ","
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            invokestatic java.util.Collections.addAll:(Ljava/util/Collection;[Ljava/lang/Object;)Z
            pop
         3: .line 95
            aload 0 /* context */
            invokevirtual com.oracle.truffle.tck.tests.TestContext.getInstalledProviders:()Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            astore 3 /* installedProviders */
        start local 3 // java.util.Set installedProviders
         4: .line 96
            aload 3 /* installedProviders */
            aload 2 /* requiredValues */
            invokeinterface java.util.Set.containsAll:(Ljava/util/Collection;)Z
            ifne 7
         5: .line 97
            aload 2 /* requiredValues */
            aload 3 /* installedProviders */
            invokeinterface java.util.Set.removeAll:(Ljava/util/Collection;)Z
            pop
         6: .line 98
            ldc "tck.values"
            aload 2 /* requiredValues */
            aload 3 /* installedProviders */
            invokestatic com.oracle.truffle.tck.tests.TestUtil.providerNotFound:(Ljava/lang/String;Ljava/util/Set;Ljava/util/Set;)Ljava/lang/IllegalStateException;
            athrow
         7: .line 100
      StackMap locals: com.oracle.truffle.tck.tests.TestContext top java.util.Set java.util.Set
      StackMap stack:
            new com.oracle.truffle.tck.tests.TestUtil$2
            dup
            aload 2 /* requiredValues */
            invokespecial com.oracle.truffle.tck.tests.TestUtil$2.<init>:(Ljava/util/Set;)V
            astore 1 /* predicate */
        end local 3 // java.util.Set installedProviders
        end local 2 // java.util.Set requiredValues
        start local 1 // java.util.function.Predicate predicate
         8: .line 106
            goto 10
        end local 1 // java.util.function.Predicate predicate
         9: .line 107
      StackMap locals: com.oracle.truffle.tck.tests.TestContext
      StackMap stack:
            aconst_null
            astore 1 /* predicate */
        start local 1 // java.util.function.Predicate predicate
        10: .line 109
      StackMap locals: java.util.function.Predicate
      StackMap stack:
            aload 0 /* context */
            aload 1 /* predicate */
            invokestatic com.oracle.truffle.tck.tests.TestUtil.filterLanguages:(Lcom/oracle/truffle/tck/tests/TestContext;Ljava/util/function/Predicate;)Ljava/util/Set;
            areturn
        end local 1 // java.util.function.Predicate predicate
        end local 0 // com.oracle.truffle.tck.tests.TestContext context
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   11     0             context  Lcom/oracle/truffle/tck/tests/TestContext;
            8    9     1           predicate  Ljava/util/function/Predicate<Ljava/lang/String;>;
           10   11     1           predicate  Ljava/util/function/Predicate<Ljava/lang/String;>;
            2    8     2      requiredValues  Ljava/util/Set<Ljava/lang/String;>;
            4    8     3  installedProviders  Ljava/util/Set<Ljava/lang/String;>;
    Signature: (Lcom/oracle/truffle/tck/tests/TestContext;)Ljava/util/Set<+Ljava/lang/String;>;
    MethodParameters:
         Name  Flags
      context  final

  static <T> com.oracle.truffle.tck.tests.TestUtil$CollectingMatcher<T> createTooManyFailuresMatcher();
    descriptor: ()Lcom/oracle/truffle/tck/tests/TestUtil$CollectingMatcher;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 113
            new com.oracle.truffle.tck.tests.TestUtil$TooManyFailuresMatcher
            dup
            invokespecial com.oracle.truffle.tck.tests.TestUtil$TooManyFailuresMatcher.<init>:()V
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Signature: <T:Ljava/lang/Object;>()Lcom/oracle/truffle/tck/tests/TestUtil$CollectingMatcher<TT;>;

  static java.util.Collection<? extends com.oracle.truffle.tck.tests.TestRun> createTestRuns(java.util.Set<? extends java.lang.String>, java.util.Set<? extends java.lang.String>, java.util.function.Function<java.lang.String, ? extends java.util.Collection<? extends org.graalvm.polyglot.tck.Snippet>>, java.util.function.Function<java.lang.String, ? extends java.util.Collection<? extends org.graalvm.polyglot.tck.Snippet>>);
    descriptor: (Ljava/util/Set;Ljava/util/Set;Ljava/util/function/Function;Ljava/util/function/Function;)Ljava/util/Collection;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=16, args_size=4
        start local 0 // java.util.Set requiredLanguages
        start local 1 // java.util.Set requiredValueLanguages
        start local 2 // java.util.function.Function snippetsProvider
        start local 3 // java.util.function.Function valuesProvider
         0: .line 121
            new java.util.TreeSet
            dup
            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
                  com/oracle/truffle/tck/tests/TestUtil.lambda$0(Lcom/oracle/truffle/tck/tests/TestRun;Lcom/oracle/truffle/tck/tests/TestRun;)I (6)
                  (Lcom/oracle/truffle/tck/tests/TestRun;Lcom/oracle/truffle/tck/tests/TestRun;)I
            invokespecial java.util.TreeSet.<init>:(Ljava/util/Comparator;)V
            astore 4 /* testRuns */
        start local 4 // java.util.Collection testRuns
         1: .line 122
            aload 0 /* requiredLanguages */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 6
            goto 26
      StackMap locals: java.util.Set java.util.Set java.util.function.Function java.util.function.Function java.util.Collection top java.util.Iterator
      StackMap stack:
         2: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 5 /* opLanguage */
        start local 5 // java.lang.String opLanguage
         3: .line 123
            aload 2 /* snippetsProvider */
            aload 5 /* opLanguage */
            invokeinterface java.util.function.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Collection
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 8
            goto 25
      StackMap locals: java.util.Set java.util.Set java.util.function.Function java.util.function.Function java.util.Collection java.lang.String java.util.Iterator top java.util.Iterator
      StackMap stack:
         4: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.polyglot.tck.Snippet
            astore 7 /* operator */
        start local 7 // org.graalvm.polyglot.tck.Snippet operator
         5: .line 124
            aload 1 /* requiredValueLanguages */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 10
            goto 24
      StackMap locals: java.util.Set java.util.Set java.util.function.Function java.util.function.Function java.util.Collection java.lang.String java.util.Iterator org.graalvm.polyglot.tck.Snippet java.util.Iterator top java.util.Iterator
      StackMap stack:
         6: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 9 /* parLanguage */
        start local 9 // java.lang.String parLanguage
         7: .line 125
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 11 /* valueConstructors */
        start local 11 // java.util.Collection valueConstructors
         8: .line 126
            aload 3 /* valuesProvider */
            aload 9 /* parLanguage */
            invokeinterface java.util.function.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Collection
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 13
            goto 11
      StackMap locals: java.util.Set java.util.Set java.util.function.Function java.util.function.Function java.util.Collection java.lang.String java.util.Iterator org.graalvm.polyglot.tck.Snippet java.util.Iterator java.lang.String java.util.Iterator java.util.Collection top java.util.Iterator
      StackMap stack:
         9: aload 13
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.polyglot.tck.Snippet
            astore 12 /* snippet */
        start local 12 // org.graalvm.polyglot.tck.Snippet snippet
        10: .line 127
            aload 11 /* valueConstructors */
            new java.util.AbstractMap$SimpleImmutableEntry
            dup
            aload 9 /* parLanguage */
            aload 12 /* snippet */
            invokespecial java.util.AbstractMap$SimpleImmutableEntry.<init>:(Ljava/lang/Object;Ljava/lang/Object;)V
            invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
            pop
        end local 12 // org.graalvm.polyglot.tck.Snippet snippet
        11: .line 126
      StackMap locals:
      StackMap stack:
            aload 13
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 9
        12: .line 129
            aload 7 /* operator */
            aload 11 /* valueConstructors */
            invokestatic com.oracle.truffle.tck.tests.TestUtil.findApplicableParameters:(Lorg/graalvm/polyglot/tck/Snippet;Ljava/util/Collection;)Ljava/util/List;
            astore 12 /* applicableParams */
        start local 12 // java.util.List applicableParams
        13: .line 130
            iconst_1
            istore 13 /* canBeInvoked */
        start local 13 // boolean canBeInvoked
        14: .line 131
            aload 12 /* applicableParams */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 15
            goto 21
      StackMap locals: java.util.Set java.util.Set java.util.function.Function java.util.function.Function java.util.Collection java.lang.String java.util.Iterator org.graalvm.polyglot.tck.Snippet java.util.Iterator java.lang.String java.util.Iterator java.util.Collection java.util.List int top java.util.Iterator
      StackMap stack:
        15: aload 15
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.List
            astore 14 /* param */
        start local 14 // java.util.List param
        16: .line 132
            iload 13 /* canBeInvoked */
            aload 14 /* param */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 17
            iconst_0
            goto 18
      StackMap locals: java.util.Set java.util.Set java.util.function.Function java.util.function.Function java.util.Collection java.lang.String java.util.Iterator org.graalvm.polyglot.tck.Snippet java.util.Iterator java.lang.String java.util.Iterator java.util.Collection java.util.List int java.util.List java.util.Iterator
      StackMap stack: int
        17: iconst_1
      StackMap locals: java.util.Set java.util.Set java.util.function.Function java.util.function.Function java.util.Collection java.lang.String java.util.Iterator org.graalvm.polyglot.tck.Snippet java.util.Iterator java.lang.String java.util.Iterator java.util.Collection java.util.List int java.util.List java.util.Iterator
      StackMap stack: int int
        18: iand
            istore 13 /* canBeInvoked */
        19: .line 133
            iload 13 /* canBeInvoked */
            ifne 21
        20: .line 134
            goto 22
        end local 14 // java.util.List param
        21: .line 131
      StackMap locals: java.util.Set java.util.Set java.util.function.Function java.util.function.Function java.util.Collection java.lang.String java.util.Iterator org.graalvm.polyglot.tck.Snippet java.util.Iterator java.lang.String java.util.Iterator java.util.Collection java.util.List int top java.util.Iterator
      StackMap stack:
            aload 15
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 15
        22: .line 137
      StackMap locals: java.util.Set java.util.Set java.util.function.Function java.util.function.Function java.util.Collection java.lang.String java.util.Iterator org.graalvm.polyglot.tck.Snippet java.util.Iterator java.lang.String java.util.Iterator java.util.Collection java.util.List int
      StackMap stack:
            iload 13 /* canBeInvoked */
            ifeq 24
        23: .line 138
            new java.util.AbstractMap$SimpleImmutableEntry
            dup
            aload 5 /* opLanguage */
            aload 7 /* operator */
            invokespecial java.util.AbstractMap$SimpleImmutableEntry.<init>:(Ljava/lang/Object;Ljava/lang/Object;)V
            aload 12 /* applicableParams */
            aload 4 /* testRuns */
            invokestatic com.oracle.truffle.tck.tests.TestUtil.computeAllPermutations:(Ljava/util/Map$Entry;Ljava/util/List;Ljava/util/Collection;)V
        end local 13 // boolean canBeInvoked
        end local 12 // java.util.List applicableParams
        end local 11 // java.util.Collection valueConstructors
        end local 9 // java.lang.String parLanguage
        24: .line 124
      StackMap locals: java.util.Set java.util.Set java.util.function.Function java.util.function.Function java.util.Collection java.lang.String java.util.Iterator org.graalvm.polyglot.tck.Snippet java.util.Iterator top java.util.Iterator
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        end local 7 // org.graalvm.polyglot.tck.Snippet operator
        25: .line 123
      StackMap locals: java.util.Set java.util.Set java.util.function.Function java.util.function.Function java.util.Collection java.lang.String java.util.Iterator top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        end local 5 // java.lang.String opLanguage
        26: .line 122
      StackMap locals: java.util.Set java.util.Set java.util.function.Function java.util.function.Function java.util.Collection top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        27: .line 143
            aload 4 /* testRuns */
            areturn
        end local 4 // java.util.Collection testRuns
        end local 3 // java.util.function.Function valuesProvider
        end local 2 // java.util.function.Function snippetsProvider
        end local 1 // java.util.Set requiredValueLanguages
        end local 0 // java.util.Set requiredLanguages
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   28     0       requiredLanguages  Ljava/util/Set<+Ljava/lang/String;>;
            0   28     1  requiredValueLanguages  Ljava/util/Set<+Ljava/lang/String;>;
            0   28     2        snippetsProvider  Ljava/util/function/Function<Ljava/lang/String;+Ljava/util/Collection<+Lorg/graalvm/polyglot/tck/Snippet;>;>;
            0   28     3          valuesProvider  Ljava/util/function/Function<Ljava/lang/String;+Ljava/util/Collection<+Lorg/graalvm/polyglot/tck/Snippet;>;>;
            1   28     4                testRuns  Ljava/util/Collection<Lcom/oracle/truffle/tck/tests/TestRun;>;
            3   26     5              opLanguage  Ljava/lang/String;
            5   25     7                operator  Lorg/graalvm/polyglot/tck/Snippet;
            7   24     9             parLanguage  Ljava/lang/String;
            8   24    11       valueConstructors  Ljava/util/Collection<Ljava/util/Map$Entry<Ljava/lang/String;+Lorg/graalvm/polyglot/tck/Snippet;>;>;
           10   11    12                 snippet  Lorg/graalvm/polyglot/tck/Snippet;
           13   24    12        applicableParams  Ljava/util/List<Ljava/util/List<Ljava/util/Map$Entry<Ljava/lang/String;+Lorg/graalvm/polyglot/tck/Snippet;>;>;>;
           14   24    13            canBeInvoked  Z
           16   21    14                   param  Ljava/util/List<Ljava/util/Map$Entry<Ljava/lang/String;+Lorg/graalvm/polyglot/tck/Snippet;>;>;
    Signature: (Ljava/util/Set<+Ljava/lang/String;>;Ljava/util/Set<+Ljava/lang/String;>;Ljava/util/function/Function<Ljava/lang/String;+Ljava/util/Collection<+Lorg/graalvm/polyglot/tck/Snippet;>;>;Ljava/util/function/Function<Ljava/lang/String;+Ljava/util/Collection<+Lorg/graalvm/polyglot/tck/Snippet;>;>;)Ljava/util/Collection<+Lcom/oracle/truffle/tck/tests/TestRun;>;
    MethodParameters:
                        Name  Flags
      requiredLanguages       final
      requiredValueLanguages  final
      snippetsProvider        final
      valuesProvider          final

  static void validateResult(com.oracle.truffle.tck.tests.TestRun, org.graalvm.polyglot.Value, org.graalvm.polyglot.PolyglotException, boolean);
    descriptor: (Lcom/oracle/truffle/tck/tests/TestRun;Lorg/graalvm/polyglot/Value;Lorg/graalvm/polyglot/PolyglotException;Z)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // com.oracle.truffle.tck.tests.TestRun testRun
        start local 1 // org.graalvm.polyglot.Value result
        start local 2 // org.graalvm.polyglot.PolyglotException exception
        start local 3 // boolean fastAssertions
         0: .line 151
            aload 0 /* testRun */
            invokevirtual com.oracle.truffle.tck.tests.TestRun.getSnippet:()Lorg/graalvm/polyglot/tck/Snippet;
            invokevirtual org.graalvm.polyglot.tck.Snippet.getResultVerifier:()Lorg/graalvm/polyglot/tck/ResultVerifier;
            astore 4 /* verifier */
        start local 4 // org.graalvm.polyglot.tck.ResultVerifier verifier
         1: .line 152
            aload 4 /* verifier */
            aload 0 /* testRun */
            aload 1 /* result */
            aload 2 /* exception */
            iload 3 /* fastAssertions */
            invokestatic com.oracle.truffle.tck.tests.TestUtil.validateResult:(Lorg/graalvm/polyglot/tck/ResultVerifier;Lcom/oracle/truffle/tck/tests/TestRun;Lorg/graalvm/polyglot/Value;Lorg/graalvm/polyglot/PolyglotException;Z)V
         2: .line 153
            return
        end local 4 // org.graalvm.polyglot.tck.ResultVerifier verifier
        end local 3 // boolean fastAssertions
        end local 2 // org.graalvm.polyglot.PolyglotException exception
        end local 1 // org.graalvm.polyglot.Value result
        end local 0 // com.oracle.truffle.tck.tests.TestRun testRun
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0         testRun  Lcom/oracle/truffle/tck/tests/TestRun;
            0    3     1          result  Lorg/graalvm/polyglot/Value;
            0    3     2       exception  Lorg/graalvm/polyglot/PolyglotException;
            0    3     3  fastAssertions  Z
            1    3     4        verifier  Lorg/graalvm/polyglot/tck/ResultVerifier;
    MethodParameters:
                Name  Flags
      testRun         final
      result          final
      exception       final
      fastAssertions  

  static void validateResult(org.graalvm.polyglot.tck.ResultVerifier, com.oracle.truffle.tck.tests.TestRun, org.graalvm.polyglot.Value, org.graalvm.polyglot.PolyglotException, boolean);
    descriptor: (Lorg/graalvm/polyglot/tck/ResultVerifier;Lcom/oracle/truffle/tck/tests/TestRun;Lorg/graalvm/polyglot/Value;Lorg/graalvm/polyglot/PolyglotException;Z)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=6, args_size=5
        start local 0 // org.graalvm.polyglot.tck.ResultVerifier verifier
        start local 1 // com.oracle.truffle.tck.tests.TestRun testRun
        start local 2 // org.graalvm.polyglot.Value result
        start local 3 // org.graalvm.polyglot.PolyglotException exception
        start local 4 // boolean fastAssertions
         0: .line 161
            aload 3 /* exception */
            ifnonnull 4
         1: .line 162
            aload 0 /* verifier */
            aload 1 /* testRun */
            invokevirtual com.oracle.truffle.tck.tests.TestRun.getSnippet:()Lorg/graalvm/polyglot/tck/Snippet;
            aload 1 /* testRun */
            invokevirtual com.oracle.truffle.tck.tests.TestRun.getActualParameters:()Ljava/util/List;
            aload 2 /* result */
            invokestatic org.graalvm.polyglot.tck.ResultVerifier$SnippetRun.create:(Lorg/graalvm/polyglot/tck/Snippet;Ljava/util/List;Lorg/graalvm/polyglot/Value;)Lorg/graalvm/polyglot/tck/ResultVerifier$SnippetRun;
            invokeinterface org.graalvm.polyglot.tck.ResultVerifier.accept:(Lorg/graalvm/polyglot/tck/ResultVerifier$SnippetRun;)V
         2: .line 163
            aload 2 /* result */
            iload 4 /* fastAssertions */
            invokestatic com.oracle.truffle.tck.tests.TestUtil.assertValue:(Lorg/graalvm/polyglot/Value;Z)V
         3: .line 164
            goto 8
         4: .line 165
      StackMap locals:
      StackMap stack:
            aload 0 /* verifier */
            aload 1 /* testRun */
            invokevirtual com.oracle.truffle.tck.tests.TestRun.getSnippet:()Lorg/graalvm/polyglot/tck/Snippet;
            aload 1 /* testRun */
            invokevirtual com.oracle.truffle.tck.tests.TestRun.getActualParameters:()Ljava/util/List;
            aload 3 /* exception */
            invokestatic org.graalvm.polyglot.tck.ResultVerifier$SnippetRun.create:(Lorg/graalvm/polyglot/tck/Snippet;Ljava/util/List;Lorg/graalvm/polyglot/PolyglotException;)Lorg/graalvm/polyglot/tck/ResultVerifier$SnippetRun;
            invokeinterface org.graalvm.polyglot.tck.ResultVerifier.accept:(Lorg/graalvm/polyglot/tck/ResultVerifier$SnippetRun;)V
         5: .line 166
            aload 3 /* exception */
            invokevirtual org.graalvm.polyglot.PolyglotException.getGuestObject:()Lorg/graalvm/polyglot/Value;
            astore 5 /* exceptionObject */
        start local 5 // org.graalvm.polyglot.Value exceptionObject
         6: .line 167
            aload 5 /* exceptionObject */
            ifnull 8
         7: .line 168
            aload 5 /* exceptionObject */
            iload 4 /* fastAssertions */
            invokestatic com.oracle.truffle.tck.tests.TestUtil.assertValue:(Lorg/graalvm/polyglot/Value;Z)V
        end local 5 // org.graalvm.polyglot.Value exceptionObject
         8: .line 171
      StackMap locals:
      StackMap stack:
            return
        end local 4 // boolean fastAssertions
        end local 3 // org.graalvm.polyglot.PolyglotException exception
        end local 2 // org.graalvm.polyglot.Value result
        end local 1 // com.oracle.truffle.tck.tests.TestRun testRun
        end local 0 // org.graalvm.polyglot.tck.ResultVerifier verifier
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    9     0         verifier  Lorg/graalvm/polyglot/tck/ResultVerifier;
            0    9     1          testRun  Lcom/oracle/truffle/tck/tests/TestRun;
            0    9     2           result  Lorg/graalvm/polyglot/Value;
            0    9     3        exception  Lorg/graalvm/polyglot/PolyglotException;
            0    9     4   fastAssertions  Z
            6    8     5  exceptionObject  Lorg/graalvm/polyglot/Value;
    MethodParameters:
                Name  Flags
      verifier        final
      testRun         final
      result          final
      exception       final
      fastAssertions  

  private static void assertValue(org.graalvm.polyglot.Value, boolean);
    descriptor: (Lorg/graalvm/polyglot/Value;Z)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.graalvm.polyglot.Value result
        start local 1 // boolean fastAssertions
         0: .line 174
            iload 1 /* fastAssertions */
            ifeq 3
         1: .line 175
            aload 0 /* result */
            invokestatic com.oracle.truffle.tck.tests.ValueAssert.assertValueFast:(Lorg/graalvm/polyglot/Value;)V
         2: .line 176
            goto 4
         3: .line 177
      StackMap locals:
      StackMap stack:
            aload 0 /* result */
            invokestatic com.oracle.truffle.tck.tests.ValueAssert.assertValue:(Lorg/graalvm/polyglot/Value;)V
         4: .line 179
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean fastAssertions
        end local 0 // org.graalvm.polyglot.Value result
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0          result  Lorg/graalvm/polyglot/Value;
            0    5     1  fastAssertions  Z
    MethodParameters:
                Name  Flags
      result          final
      fastAssertions  

  static java.util.List<java.util.List<java.util.Map$Entry<java.lang.String, ? extends org.graalvm.polyglot.tck.Snippet>>> findApplicableParameters(org.graalvm.polyglot.tck.Snippet, java.util.Collection<java.util.Map$Entry<java.lang.String, ? extends org.graalvm.polyglot.tck.Snippet>>);
    descriptor: (Lorg/graalvm/polyglot/tck/Snippet;Ljava/util/Collection;)Ljava/util/List;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=8, args_size=2
        start local 0 // org.graalvm.polyglot.tck.Snippet operator
        start local 1 // java.util.Collection valueConstructors
         0: .line 184
            aload 0 /* operator */
            invokevirtual org.graalvm.polyglot.tck.Snippet.getParameterTypes:()Ljava/util/List;
            astore 2 /* opParameterTypes */
        start local 2 // java.util.List opParameterTypes
         1: .line 185
            new java.util.ArrayList
            dup
            aload 2 /* opParameterTypes */
            invokeinterface java.util.List.size:()I
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 3 /* params */
        start local 3 // java.util.List params
         2: .line 186
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         3: goto 12
         4: .line 187
      StackMap locals: java.util.List java.util.List int
      StackMap stack:
            aload 3 /* params */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         5: .line 188
            aload 2 /* opParameterTypes */
            iload 4 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.graalvm.polyglot.tck.TypeDescriptor
            astore 5 /* paramTypeDesc */
        start local 5 // org.graalvm.polyglot.tck.TypeDescriptor paramTypeDesc
         6: .line 189
            aload 1 /* valueConstructors */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 7
            goto 10
      StackMap locals: org.graalvm.polyglot.tck.Snippet java.util.Collection java.util.List java.util.List int org.graalvm.polyglot.tck.TypeDescriptor top java.util.Iterator
      StackMap stack:
         7: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 6 /* constructor */
        start local 6 // java.util.Map$Entry constructor
         8: .line 190
            aload 5 /* paramTypeDesc */
            aload 6 /* constructor */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast org.graalvm.polyglot.tck.Snippet
            invokevirtual org.graalvm.polyglot.tck.Snippet.getReturnType:()Lorg/graalvm/polyglot/tck/TypeDescriptor;
            invokevirtual org.graalvm.polyglot.tck.TypeDescriptor.isAssignable:(Lorg/graalvm/polyglot/tck/TypeDescriptor;)Z
            ifeq 10
         9: .line 191
            aload 3 /* params */
            iload 4 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.util.List
            aload 6 /* constructor */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 6 // java.util.Map$Entry constructor
        10: .line 189
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        end local 5 // org.graalvm.polyglot.tck.TypeDescriptor paramTypeDesc
        11: .line 186
            iinc 4 /* i */ 1
      StackMap locals: org.graalvm.polyglot.tck.Snippet java.util.Collection java.util.List java.util.List int
      StackMap stack:
        12: iload 4 /* i */
            aload 2 /* opParameterTypes */
            invokeinterface java.util.List.size:()I
            if_icmplt 4
        end local 4 // int i
        13: .line 195
            aload 3 /* params */
            areturn
        end local 3 // java.util.List params
        end local 2 // java.util.List opParameterTypes
        end local 1 // java.util.Collection valueConstructors
        end local 0 // org.graalvm.polyglot.tck.Snippet operator
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   14     0           operator  Lorg/graalvm/polyglot/tck/Snippet;
            0   14     1  valueConstructors  Ljava/util/Collection<Ljava/util/Map$Entry<Ljava/lang/String;+Lorg/graalvm/polyglot/tck/Snippet;>;>;
            1   14     2   opParameterTypes  Ljava/util/List<+Lorg/graalvm/polyglot/tck/TypeDescriptor;>;
            2   14     3             params  Ljava/util/List<Ljava/util/List<Ljava/util/Map$Entry<Ljava/lang/String;+Lorg/graalvm/polyglot/tck/Snippet;>;>;>;
            3   13     4                  i  I
            6   11     5      paramTypeDesc  Lorg/graalvm/polyglot/tck/TypeDescriptor;
            8   10     6        constructor  Ljava/util/Map$Entry<Ljava/lang/String;+Lorg/graalvm/polyglot/tck/Snippet;>;
    Signature: (Lorg/graalvm/polyglot/tck/Snippet;Ljava/util/Collection<Ljava/util/Map$Entry<Ljava/lang/String;+Lorg/graalvm/polyglot/tck/Snippet;>;>;)Ljava/util/List<Ljava/util/List<Ljava/util/Map$Entry<Ljava/lang/String;+Lorg/graalvm/polyglot/tck/Snippet;>;>;>;
    MethodParameters:
                   Name  Flags
      operator           final
      valueConstructors  final

  static void computeAllPermutations(java.util.Map$Entry<java.lang.String, ? extends org.graalvm.polyglot.tck.Snippet>, java.util.List<java.util.List<java.util.Map$Entry<java.lang.String, ? extends org.graalvm.polyglot.tck.Snippet>>>, java.util.Collection<? super com.oracle.truffle.tck.tests.TestRun>);
    descriptor: (Ljava/util/Map$Entry;Ljava/util/List;Ljava/util/Collection;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // java.util.Map$Entry operator
        start local 1 // java.util.List applicableParameters
        start local 2 // java.util.Collection collector
         0: .line 202
            aload 0 /* operator */
            aload 1 /* applicableParameters */
            aload 2 /* collector */
            iconst_0
            aload 1 /* applicableParameters */
            invokeinterface java.util.List.size:()I
            newarray 10
            invokestatic com.oracle.truffle.tck.tests.TestUtil.computeAllPermutationsImpl:(Ljava/util/Map$Entry;Ljava/util/List;Ljava/util/Collection;I[I)V
         1: .line 203
            return
        end local 2 // java.util.Collection collector
        end local 1 // java.util.List applicableParameters
        end local 0 // java.util.Map$Entry operator
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    2     0              operator  Ljava/util/Map$Entry<Ljava/lang/String;+Lorg/graalvm/polyglot/tck/Snippet;>;
            0    2     1  applicableParameters  Ljava/util/List<Ljava/util/List<Ljava/util/Map$Entry<Ljava/lang/String;+Lorg/graalvm/polyglot/tck/Snippet;>;>;>;
            0    2     2             collector  Ljava/util/Collection<-Lcom/oracle/truffle/tck/tests/TestRun;>;
    Signature: (Ljava/util/Map$Entry<Ljava/lang/String;+Lorg/graalvm/polyglot/tck/Snippet;>;Ljava/util/List<Ljava/util/List<Ljava/util/Map$Entry<Ljava/lang/String;+Lorg/graalvm/polyglot/tck/Snippet;>;>;>;Ljava/util/Collection<-Lcom/oracle/truffle/tck/tests/TestRun;>;)V
    MethodParameters:
                      Name  Flags
      operator              final
      applicableParameters  final
      collector             final

  static java.lang.String formatErrorMessage(java.lang.String, com.oracle.truffle.tck.tests.TestRun, com.oracle.truffle.tck.tests.TestContext);
    descriptor: (Ljava/lang/String;Lcom/oracle/truffle/tck/tests/TestRun;Lcom/oracle/truffle/tck/tests/TestContext;)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=7, locals=13, args_size=3
        start local 0 // java.lang.String errorMessage
        start local 1 // com.oracle.truffle.tck.tests.TestRun testRun
        start local 2 // com.oracle.truffle.tck.tests.TestContext testContext
         0: .line 209
            aload 1 /* testRun */
            invokevirtual com.oracle.truffle.tck.tests.TestRun.getID:()Ljava/lang/String;
            astore 3 /* language */
        start local 3 // java.lang.String language
         1: .line 210
            aload 1 /* testRun */
            invokevirtual com.oracle.truffle.tck.tests.TestRun.getSnippet:()Lorg/graalvm/polyglot/tck/Snippet;
            astore 4 /* snippet */
        start local 4 // org.graalvm.polyglot.tck.Snippet snippet
         2: .line 211
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 5 /* message */
        start local 5 // java.lang.StringBuilder message
         3: .line 212
            aload 5 /* message */
            ldc "Running snippet '%s' retrieved from '%s' provider (java class %s) with parameters:\n"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
         4: .line 213
            aload 4 /* snippet */
            invokevirtual org.graalvm.polyglot.tck.Snippet.getId:()Ljava/lang/String;
            aastore
            dup
            iconst_1
         5: .line 214
            aload 3 /* language */
            aastore
            dup
            iconst_2
         6: .line 215
            aload 2 /* testContext */
            invokevirtual com.oracle.truffle.tck.tests.TestContext.getInstalledProviders:()Ljava/util/Map;
            aload 3 /* language */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.polyglot.tck.LanguageProvider
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
         7: .line 212
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         8: .line 216
            aload 1 /* testRun */
            invokevirtual com.oracle.truffle.tck.tests.TestRun.getActualParameterSnippets:()Ljava/util/List;
            astore 6 /* actualParameterSnippets */
        start local 6 // java.util.List actualParameterSnippets
         9: .line 217
            aload 1 /* testRun */
            invokevirtual com.oracle.truffle.tck.tests.TestRun.getActualParameters:()Ljava/util/List;
            astore 7 /* actualParameters */
        start local 7 // java.util.List actualParameters
        10: .line 218
            iconst_0
            istore 8 /* i */
        start local 8 // int i
        11: goto 23
        12: .line 219
      StackMap locals: java.lang.String com.oracle.truffle.tck.tests.TestRun com.oracle.truffle.tck.tests.TestContext java.lang.String org.graalvm.polyglot.tck.Snippet java.lang.StringBuilder java.util.List java.util.List int
      StackMap stack:
            aload 6 /* actualParameterSnippets */
            iload 8 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 9 /* actualParameterSnippet */
        start local 9 // java.util.Map$Entry actualParameterSnippet
        13: .line 220
            aload 9 /* actualParameterSnippet */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 10 /* paramLanguage */
        start local 10 // java.lang.String paramLanguage
        14: .line 221
            aload 9 /* actualParameterSnippet */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast org.graalvm.polyglot.tck.Snippet
            astore 11 /* paramSnippet */
        start local 11 // org.graalvm.polyglot.tck.Snippet paramSnippet
        15: .line 222
            aload 7 /* actualParameters */
            iload 8 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.graalvm.polyglot.Value
            astore 12 /* actualParameter */
        start local 12 // org.graalvm.polyglot.Value actualParameter
        16: .line 223
            aload 5 /* message */
            ldc "'%s' from '%s' provider, value: %s (Meta Object: %s)\n"
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
        17: .line 224
            aload 11 /* paramSnippet */
            invokevirtual org.graalvm.polyglot.tck.Snippet.getId:()Ljava/lang/String;
            aastore
            dup
            iconst_1
        18: .line 225
            aload 10 /* paramLanguage */
            aastore
            dup
            iconst_2
        19: .line 226
            aload 12 /* actualParameter */
            aastore
            dup
            iconst_3
        20: .line 227
            aload 12 /* actualParameter */
            invokevirtual org.graalvm.polyglot.Value.getMetaObject:()Lorg/graalvm/polyglot/Value;
            aastore
        21: .line 223
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 12 // org.graalvm.polyglot.Value actualParameter
        end local 11 // org.graalvm.polyglot.tck.Snippet paramSnippet
        end local 10 // java.lang.String paramLanguage
        end local 9 // java.util.Map$Entry actualParameterSnippet
        22: .line 218
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        23: iload 8 /* i */
            aload 6 /* actualParameterSnippets */
            invokeinterface java.util.List.size:()I
            if_icmplt 12
        end local 8 // int i
        24: .line 229
            aload 5 /* message */
            ldc "failed:\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        25: .line 230
            aload 5 /* message */
            aload 0 /* errorMessage */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        26: .line 231
            aload 5 /* message */
            bipush 10
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        27: .line 232
            aload 5 /* message */
            ldc "Snippet: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* snippet */
            invokevirtual org.graalvm.polyglot.tck.Snippet.getExecutableValue:()Lorg/graalvm/polyglot/Value;
            invokestatic com.oracle.truffle.tck.tests.TestUtil.getSource:(Lorg/graalvm/polyglot/Value;)Ljava/lang/CharSequence;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/CharSequence;)Ljava/lang/StringBuilder;
            bipush 10
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        28: .line 233
            iconst_0
            istore 8 /* i */
        start local 8 // int i
        29: .line 234
            aload 1 /* testRun */
            invokevirtual com.oracle.truffle.tck.tests.TestRun.getActualParameterSnippets:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 10
            goto 33
      StackMap locals: java.lang.String com.oracle.truffle.tck.tests.TestRun com.oracle.truffle.tck.tests.TestContext java.lang.String org.graalvm.polyglot.tck.Snippet java.lang.StringBuilder java.util.List java.util.List int top java.util.Iterator
      StackMap stack:
        30: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 9 /* langAndparamSnippet */
        start local 9 // java.util.Map$Entry langAndparamSnippet
        31: .line 235
            aload 9 /* langAndparamSnippet */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast org.graalvm.polyglot.tck.Snippet
            astore 11 /* paramSnippet */
        start local 11 // org.graalvm.polyglot.tck.Snippet paramSnippet
        32: .line 236
            aload 5 /* message */
            ldc "Parameter %d Snippet: "
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            iload 8 /* i */
            iinc 8 /* i */ 1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 11 /* paramSnippet */
            invokevirtual org.graalvm.polyglot.tck.Snippet.getExecutableValue:()Lorg/graalvm/polyglot/Value;
            invokestatic com.oracle.truffle.tck.tests.TestUtil.getSource:(Lorg/graalvm/polyglot/Value;)Ljava/lang/CharSequence;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/CharSequence;)Ljava/lang/StringBuilder;
            bipush 10
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        end local 11 // org.graalvm.polyglot.tck.Snippet paramSnippet
        end local 9 // java.util.Map$Entry langAndparamSnippet
        33: .line 234
      StackMap locals:
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 30
        34: .line 238
            aload 5 /* message */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 8 // int i
        end local 7 // java.util.List actualParameters
        end local 6 // java.util.List actualParameterSnippets
        end local 5 // java.lang.StringBuilder message
        end local 4 // org.graalvm.polyglot.tck.Snippet snippet
        end local 3 // java.lang.String language
        end local 2 // com.oracle.truffle.tck.tests.TestContext testContext
        end local 1 // com.oracle.truffle.tck.tests.TestRun testRun
        end local 0 // java.lang.String errorMessage
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0   35     0             errorMessage  Ljava/lang/String;
            0   35     1                  testRun  Lcom/oracle/truffle/tck/tests/TestRun;
            0   35     2              testContext  Lcom/oracle/truffle/tck/tests/TestContext;
            1   35     3                 language  Ljava/lang/String;
            2   35     4                  snippet  Lorg/graalvm/polyglot/tck/Snippet;
            3   35     5                  message  Ljava/lang/StringBuilder;
            9   35     6  actualParameterSnippets  Ljava/util/List<+Ljava/util/Map$Entry<Ljava/lang/String;+Lorg/graalvm/polyglot/tck/Snippet;>;>;
           10   35     7         actualParameters  Ljava/util/List<+Lorg/graalvm/polyglot/Value;>;
           11   24     8                        i  I
           13   22     9   actualParameterSnippet  Ljava/util/Map$Entry<Ljava/lang/String;+Lorg/graalvm/polyglot/tck/Snippet;>;
           14   22    10            paramLanguage  Ljava/lang/String;
           15   22    11             paramSnippet  Lorg/graalvm/polyglot/tck/Snippet;
           16   22    12          actualParameter  Lorg/graalvm/polyglot/Value;
           29   35     8                        i  I
           31   33     9      langAndparamSnippet  Ljava/util/Map$Entry<Ljava/lang/String;+Lorg/graalvm/polyglot/tck/Snippet;>;
           32   33    11             paramSnippet  Lorg/graalvm/polyglot/tck/Snippet;
    MethodParameters:
              Name  Flags
      errorMessage  final
      testRun       final
      testContext   final

  private static java.lang.CharSequence getSource(org.graalvm.polyglot.Value);
    descriptor: (Lorg/graalvm/polyglot/Value;)Ljava/lang/CharSequence;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // org.graalvm.polyglot.Value value
         0: .line 242
            aload 0 /* value */
            invokevirtual org.graalvm.polyglot.Value.getSourceLocation:()Lorg/graalvm/polyglot/SourceSection;
            astore 1 /* section */
        start local 1 // org.graalvm.polyglot.SourceSection section
         1: .line 243
            aload 1 /* section */
            ifnonnull 2
            aconst_null
            goto 3
      StackMap locals: org.graalvm.polyglot.SourceSection
      StackMap stack:
         2: aload 1 /* section */
            invokevirtual org.graalvm.polyglot.SourceSection.getCharacters:()Ljava/lang/CharSequence;
      StackMap locals:
      StackMap stack: java.lang.CharSequence
         3: areturn
        end local 1 // org.graalvm.polyglot.SourceSection section
        end local 0 // org.graalvm.polyglot.Value value
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0    value  Lorg/graalvm/polyglot/Value;
            1    4     1  section  Lorg/graalvm/polyglot/SourceSection;
    MethodParameters:
       Name  Flags
      value  final

  private static void computeAllPermutationsImpl(java.util.Map$Entry<java.lang.String, ? extends org.graalvm.polyglot.tck.Snippet>, java.util.List<java.util.List<java.util.Map$Entry<java.lang.String, ? extends org.graalvm.polyglot.tck.Snippet>>>, java.util.Collection<? super com.oracle.truffle.tck.tests.TestRun>, int, );
    descriptor: (Ljava/util/Map$Entry;Ljava/util/List;Ljava/util/Collection;I[I)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=7, args_size=5
        start local 0 // java.util.Map$Entry operator
        start local 1 // java.util.List applicableArgs
        start local 2 // java.util.Collection collector
        start local 3 // int index
        start local 4 // int[] selected
         0: .line 252
            iload 3 /* index */
            aload 1 /* applicableArgs */
            invokeinterface java.util.List.size:()I
            if_icmpne 9
         1: .line 253
            new java.util.ArrayList
            dup
            aload 1 /* applicableArgs */
            invokeinterface java.util.List.size:()I
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 5 /* args */
        start local 5 // java.util.List args
         2: .line 254
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         3: goto 6
         4: .line 255
      StackMap locals: java.util.List int
      StackMap stack:
            aload 5 /* args */
            aload 1 /* applicableArgs */
            iload 6 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.util.List
            aload 4 /* selected */
            iload 6 /* i */
            iaload
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.util.Map$Entry
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         5: .line 254
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 6 /* i */
            iload 3 /* index */
            if_icmplt 4
        end local 6 // int i
         7: .line 257
            aload 2 /* collector */
            new com.oracle.truffle.tck.tests.TestRun
            dup
            aload 0 /* operator */
            aload 5 /* args */
            invokespecial com.oracle.truffle.tck.tests.TestRun.<init>:(Ljava/util/Map$Entry;Ljava/util/List;)V
            invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
            pop
        end local 5 // java.util.List args
         8: .line 258
            goto 16
         9: .line 259
      StackMap locals:
      StackMap stack:
            aload 1 /* applicableArgs */
            iload 3 /* index */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.util.List
            astore 5 /* applicableForArg */
        start local 5 // java.util.List applicableForArg
        10: .line 260
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        11: goto 15
        12: .line 261
      StackMap locals: java.util.List int
      StackMap stack:
            aload 4 /* selected */
            iload 3 /* index */
            iload 6 /* i */
            iastore
        13: .line 262
            aload 0 /* operator */
            aload 1 /* applicableArgs */
            aload 2 /* collector */
            iload 3 /* index */
            iconst_1
            iadd
            aload 4 /* selected */
            invokestatic com.oracle.truffle.tck.tests.TestUtil.computeAllPermutationsImpl:(Ljava/util/Map$Entry;Ljava/util/List;Ljava/util/Collection;I[I)V
        14: .line 260
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        15: iload 6 /* i */
            aload 5 /* applicableForArg */
            invokeinterface java.util.List.size:()I
            if_icmplt 12
        end local 6 // int i
        end local 5 // java.util.List applicableForArg
        16: .line 265
      StackMap locals:
      StackMap stack:
            return
        end local 4 // int[] selected
        end local 3 // int index
        end local 2 // java.util.Collection collector
        end local 1 // java.util.List applicableArgs
        end local 0 // java.util.Map$Entry operator
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   17     0          operator  Ljava/util/Map$Entry<Ljava/lang/String;+Lorg/graalvm/polyglot/tck/Snippet;>;
            0   17     1    applicableArgs  Ljava/util/List<Ljava/util/List<Ljava/util/Map$Entry<Ljava/lang/String;+Lorg/graalvm/polyglot/tck/Snippet;>;>;>;
            0   17     2         collector  Ljava/util/Collection<-Lcom/oracle/truffle/tck/tests/TestRun;>;
            0   17     3             index  I
            0   17     4          selected  [I
            2    8     5              args  Ljava/util/List<Ljava/util/Map$Entry<Ljava/lang/String;+Lorg/graalvm/polyglot/tck/Snippet;>;>;
            3    7     6                 i  I
           10   16     5  applicableForArg  Ljava/util/List<Ljava/util/Map$Entry<Ljava/lang/String;+Lorg/graalvm/polyglot/tck/Snippet;>;>;
           11   16     6                 i  I
    Signature: (Ljava/util/Map$Entry<Ljava/lang/String;+Lorg/graalvm/polyglot/tck/Snippet;>;Ljava/util/List<Ljava/util/List<Ljava/util/Map$Entry<Ljava/lang/String;+Lorg/graalvm/polyglot/tck/Snippet;>;>;>;Ljava/util/Collection<-Lcom/oracle/truffle/tck/tests/TestRun;>;I[I)V
    MethodParameters:
                Name  Flags
      operator        final
      applicableArgs  final
      collector       final
      index           final
      selected        final

  private static java.util.Set<? extends java.lang.String> filterLanguages(com.oracle.truffle.tck.tests.TestContext, java.util.function.Predicate<java.lang.String>);
    descriptor: (Lcom/oracle/truffle/tck/tests/TestContext;Ljava/util/function/Predicate;)Ljava/util/Set;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.tck.tests.TestContext context
        start local 1 // java.util.function.Predicate predicte
         0: .line 270
            aload 0 /* context */
            invokevirtual com.oracle.truffle.tck.tests.TestContext.getInstalledProviders:()Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            astore 2 /* installedLangs */
        start local 2 // java.util.Set installedLangs
         1: .line 271
            aload 1 /* predicte */
            ifnonnull 2
            aload 2 /* installedLangs */
            goto 3
      StackMap locals: java.util.Set
      StackMap stack:
         2: aload 2 /* installedLangs */
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
            aload 1 /* predicte */
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)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
      StackMap locals:
      StackMap stack: java.util.Set
         3: areturn
        end local 2 // java.util.Set installedLangs
        end local 1 // java.util.function.Predicate predicte
        end local 0 // com.oracle.truffle.tck.tests.TestContext context
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0         context  Lcom/oracle/truffle/tck/tests/TestContext;
            0    4     1        predicte  Ljava/util/function/Predicate<Ljava/lang/String;>;
            1    4     2  installedLangs  Ljava/util/Set<+Ljava/lang/String;>;
    Signature: (Lcom/oracle/truffle/tck/tests/TestContext;Ljava/util/function/Predicate<Ljava/lang/String;>;)Ljava/util/Set<+Ljava/lang/String;>;
    MethodParameters:
          Name  Flags
      context   final
      predicte  final

  private static java.lang.IllegalStateException providerNotFound(java.lang.String, java.util.Set<java.lang.String>, java.util.Set<java.lang.String>);
    descriptor: (Ljava/lang/String;Ljava/util/Set;Ljava/util/Set;)Ljava/lang/IllegalStateException;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=8, locals=3, args_size=3
        start local 0 // java.lang.String property
        start local 1 // java.util.Set providerIds
        start local 2 // java.util.Set installedProviders
         0: .line 275
            new java.lang.IllegalStateException
            dup
         1: .line 276
            ldc "Following providers %s required by the '%s' property are not installed.%nInstalled providers are %s"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
         2: .line 278
            ldc ", "
            aload 1 /* providerIds */
            invokestatic java.lang.String.join:(Ljava/lang/CharSequence;Ljava/lang/Iterable;)Ljava/lang/String;
            aastore
            dup
            iconst_1
         3: .line 279
            aload 0 /* property */
            aastore
            dup
            iconst_2
         4: .line 280
            ldc ", "
            aload 2 /* installedProviders */
            invokestatic java.lang.String.join:(Ljava/lang/CharSequence;Ljava/lang/Iterable;)Ljava/lang/String;
            aastore
         5: .line 275
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.util.Set installedProviders
        end local 1 // java.util.Set providerIds
        end local 0 // java.lang.String property
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    6     0            property  Ljava/lang/String;
            0    6     1         providerIds  Ljava/util/Set<Ljava/lang/String;>;
            0    6     2  installedProviders  Ljava/util/Set<Ljava/lang/String;>;
    Signature: (Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;Ljava/util/Set<Ljava/lang/String;>;)Ljava/lang/IllegalStateException;
    MethodParameters:
                    Name  Flags
      property            
      providerIds         
      installedProviders  

  private static int lambda$0(com.oracle.truffle.tck.tests.TestRun, com.oracle.truffle.tck.tests.TestRun);
    descriptor: (Lcom/oracle/truffle/tck/tests/TestRun;Lcom/oracle/truffle/tck/tests/TestRun;)I
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.tck.tests.TestRun a
        start local 1 // com.oracle.truffle.tck.tests.TestRun b
         0: .line 121
            aload 0 /* a */
            invokevirtual com.oracle.truffle.tck.tests.TestRun.toString:()Ljava/lang/String;
            aload 1 /* b */
            invokevirtual com.oracle.truffle.tck.tests.TestRun.toString:()Ljava/lang/String;
            invokevirtual java.lang.String.compareTo:(Ljava/lang/String;)I
            ireturn
        end local 1 // com.oracle.truffle.tck.tests.TestRun b
        end local 0 // com.oracle.truffle.tck.tests.TestRun a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     a  Lcom/oracle/truffle/tck/tests/TestRun;
            0    1     1     b  Lcom/oracle/truffle/tck/tests/TestRun;
}
SourceFile: "TestUtil.java"
NestMembers:
  com.oracle.truffle.tck.tests.TestUtil$1  com.oracle.truffle.tck.tests.TestUtil$2  com.oracle.truffle.tck.tests.TestUtil$CollectingMatcher  com.oracle.truffle.tck.tests.TestUtil$TooManyFailuresMatcher
InnerClasses:
  com.oracle.truffle.tck.tests.TestUtil$1
  com.oracle.truffle.tck.tests.TestUtil$2
  abstract CollectingMatcher = com.oracle.truffle.tck.tests.TestUtil$CollectingMatcher of com.oracle.truffle.tck.tests.TestUtil
  private final TooManyFailuresMatcher = com.oracle.truffle.tck.tests.TestUtil$TooManyFailuresMatcher of com.oracle.truffle.tck.tests.TestUtil
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public SimpleImmutableEntry = java.util.AbstractMap$SimpleImmutableEntry of java.util.AbstractMap
  public abstract Entry = java.util.Map$Entry of java.util.Map
  public final SnippetRun = org.graalvm.polyglot.tck.ResultVerifier$SnippetRun of org.graalvm.polyglot.tck.ResultVerifier