public class org.junit.jupiter.engine.descriptor.TestTemplateTestDescriptor extends org.junit.jupiter.engine.descriptor.MethodBasedTestDescriptor implements org.junit.jupiter.engine.descriptor.Filterable
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.junit.jupiter.engine.descriptor.TestTemplateTestDescriptor
  super_class: org.junit.jupiter.engine.descriptor.MethodBasedTestDescriptor
{
  private final org.junit.jupiter.engine.descriptor.DynamicDescendantFilter dynamicDescendantFilter;
    descriptor: Lorg/junit/jupiter/engine/descriptor/DynamicDescendantFilter;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(org.junit.platform.engine.UniqueId, java.lang.Class<?>, java.lang.reflect.Method, org.junit.jupiter.engine.config.JupiterConfiguration);
    descriptor: (Lorg/junit/platform/engine/UniqueId;Ljava/lang/Class;Ljava/lang/reflect/Method;Lorg/junit/jupiter/engine/config/JupiterConfiguration;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // org.junit.jupiter.engine.descriptor.TestTemplateTestDescriptor this
        start local 1 // org.junit.platform.engine.UniqueId uniqueId
        start local 2 // java.lang.Class testClass
        start local 3 // java.lang.reflect.Method templateMethod
        start local 4 // org.junit.jupiter.engine.config.JupiterConfiguration configuration
         0: .line 47
            aload 0 /* this */
            aload 1 /* uniqueId */
            aload 2 /* testClass */
            aload 3 /* templateMethod */
            aload 4 /* configuration */
            invokespecial org.junit.jupiter.engine.descriptor.MethodBasedTestDescriptor.<init>:(Lorg/junit/platform/engine/UniqueId;Ljava/lang/Class;Ljava/lang/reflect/Method;Lorg/junit/jupiter/engine/config/JupiterConfiguration;)V
         1: .line 43
            aload 0 /* this */
            new org.junit.jupiter.engine.descriptor.DynamicDescendantFilter
            dup
            invokespecial org.junit.jupiter.engine.descriptor.DynamicDescendantFilter.<init>:()V
            putfield org.junit.jupiter.engine.descriptor.TestTemplateTestDescriptor.dynamicDescendantFilter:Lorg/junit/jupiter/engine/descriptor/DynamicDescendantFilter;
         2: .line 48
            return
        end local 4 // org.junit.jupiter.engine.config.JupiterConfiguration configuration
        end local 3 // java.lang.reflect.Method templateMethod
        end local 2 // java.lang.Class testClass
        end local 1 // org.junit.platform.engine.UniqueId uniqueId
        end local 0 // org.junit.jupiter.engine.descriptor.TestTemplateTestDescriptor this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0            this  Lorg/junit/jupiter/engine/descriptor/TestTemplateTestDescriptor;
            0    3     1        uniqueId  Lorg/junit/platform/engine/UniqueId;
            0    3     2       testClass  Ljava/lang/Class<*>;
            0    3     3  templateMethod  Ljava/lang/reflect/Method;
            0    3     4   configuration  Lorg/junit/jupiter/engine/config/JupiterConfiguration;
    Signature: (Lorg/junit/platform/engine/UniqueId;Ljava/lang/Class<*>;Ljava/lang/reflect/Method;Lorg/junit/jupiter/engine/config/JupiterConfiguration;)V
    MethodParameters:
                Name  Flags
      uniqueId        
      testClass       
      templateMethod  
      configuration   

  public org.junit.jupiter.engine.descriptor.DynamicDescendantFilter getDynamicDescendantFilter();
    descriptor: ()Lorg/junit/jupiter/engine/descriptor/DynamicDescendantFilter;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.junit.jupiter.engine.descriptor.TestTemplateTestDescriptor this
         0: .line 54
            aload 0 /* this */
            getfield org.junit.jupiter.engine.descriptor.TestTemplateTestDescriptor.dynamicDescendantFilter:Lorg/junit/jupiter/engine/descriptor/DynamicDescendantFilter;
            areturn
        end local 0 // org.junit.jupiter.engine.descriptor.TestTemplateTestDescriptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/junit/jupiter/engine/descriptor/TestTemplateTestDescriptor;

  public org.junit.platform.engine.TestDescriptor$Type getType();
    descriptor: ()Lorg/junit/platform/engine/TestDescriptor$Type;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.junit.jupiter.engine.descriptor.TestTemplateTestDescriptor this
         0: .line 61
            getstatic org.junit.platform.engine.TestDescriptor$Type.CONTAINER:Lorg/junit/platform/engine/TestDescriptor$Type;
            areturn
        end local 0 // org.junit.jupiter.engine.descriptor.TestTemplateTestDescriptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/junit/jupiter/engine/descriptor/TestTemplateTestDescriptor;

  public boolean mayRegisterTests();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.junit.jupiter.engine.descriptor.TestTemplateTestDescriptor this
         0: .line 66
            iconst_1
            ireturn
        end local 0 // org.junit.jupiter.engine.descriptor.TestTemplateTestDescriptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/junit/jupiter/engine/descriptor/TestTemplateTestDescriptor;

  public org.junit.jupiter.engine.execution.JupiterEngineExecutionContext prepare(org.junit.jupiter.engine.execution.JupiterEngineExecutionContext);
    descriptor: (Lorg/junit/jupiter/engine/execution/JupiterEngineExecutionContext;)Lorg/junit/jupiter/engine/execution/JupiterEngineExecutionContext;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=5, args_size=2
        start local 0 // org.junit.jupiter.engine.descriptor.TestTemplateTestDescriptor this
        start local 1 // org.junit.jupiter.engine.execution.JupiterEngineExecutionContext context
         0: .line 74
            aload 1 /* context */
            invokevirtual org.junit.jupiter.engine.execution.JupiterEngineExecutionContext.getExtensionRegistry:()Lorg/junit/jupiter/engine/extension/ExtensionRegistry;
            aload 0 /* this */
            invokevirtual org.junit.jupiter.engine.descriptor.TestTemplateTestDescriptor.getTestMethod:()Ljava/lang/reflect/Method;
         1: .line 73
            invokestatic org.junit.jupiter.engine.descriptor.ExtensionUtils.populateNewExtensionRegistryFromExtendWithAnnotation:(Lorg/junit/jupiter/engine/extension/ExtensionRegistry;Ljava/lang/reflect/AnnotatedElement;)Lorg/junit/jupiter/engine/extension/ExtensionRegistry;
            astore 2 /* registry */
        start local 2 // org.junit.jupiter.engine.extension.ExtensionRegistry registry
         2: .line 77
            aload 1 /* context */
            invokevirtual org.junit.jupiter.engine.execution.JupiterEngineExecutionContext.getExtensionContext:()Lorg/junit/jupiter/api/extension/ExtensionContext;
            invokeinterface org.junit.jupiter.api.extension.ExtensionContext.getTestInstances:()Ljava/util/Optional;
            aconst_null
            invokevirtual java.util.Optional.orElse:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.junit.jupiter.api.extension.TestInstances
            astore 3 /* testInstances */
        start local 3 // org.junit.jupiter.api.extension.TestInstances testInstances
         3: .line 79
            new org.junit.jupiter.engine.descriptor.TestTemplateExtensionContext
            dup
            aload 1 /* context */
            invokevirtual org.junit.jupiter.engine.execution.JupiterEngineExecutionContext.getExtensionContext:()Lorg/junit/jupiter/api/extension/ExtensionContext;
         4: .line 80
            aload 1 /* context */
            invokevirtual org.junit.jupiter.engine.execution.JupiterEngineExecutionContext.getExecutionListener:()Lorg/junit/platform/engine/EngineExecutionListener;
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.junit.jupiter.engine.execution.JupiterEngineExecutionContext.getConfiguration:()Lorg/junit/jupiter/engine/config/JupiterConfiguration;
            aload 3 /* testInstances */
         5: .line 79
            invokespecial org.junit.jupiter.engine.descriptor.TestTemplateExtensionContext.<init>:(Lorg/junit/jupiter/api/extension/ExtensionContext;Lorg/junit/platform/engine/EngineExecutionListener;Lorg/junit/jupiter/engine/descriptor/TestTemplateTestDescriptor;Lorg/junit/jupiter/engine/config/JupiterConfiguration;Lorg/junit/jupiter/api/extension/TestInstances;)V
            astore 4 /* extensionContext */
        start local 4 // org.junit.jupiter.api.extension.ExtensionContext extensionContext
         6: .line 83
            aload 1 /* context */
            invokevirtual org.junit.jupiter.engine.execution.JupiterEngineExecutionContext.extend:()Lorg/junit/jupiter/engine/execution/JupiterEngineExecutionContext$Builder;
         7: .line 84
            aload 2 /* registry */
            invokevirtual org.junit.jupiter.engine.execution.JupiterEngineExecutionContext$Builder.withExtensionRegistry:(Lorg/junit/jupiter/engine/extension/ExtensionRegistry;)Lorg/junit/jupiter/engine/execution/JupiterEngineExecutionContext$Builder;
         8: .line 85
            aload 4 /* extensionContext */
            invokevirtual org.junit.jupiter.engine.execution.JupiterEngineExecutionContext$Builder.withExtensionContext:(Lorg/junit/jupiter/api/extension/ExtensionContext;)Lorg/junit/jupiter/engine/execution/JupiterEngineExecutionContext$Builder;
         9: .line 86
            invokevirtual org.junit.jupiter.engine.execution.JupiterEngineExecutionContext$Builder.build:()Lorg/junit/jupiter/engine/execution/JupiterEngineExecutionContext;
        10: .line 83
            areturn
        end local 4 // org.junit.jupiter.api.extension.ExtensionContext extensionContext
        end local 3 // org.junit.jupiter.api.extension.TestInstances testInstances
        end local 2 // org.junit.jupiter.engine.extension.ExtensionRegistry registry
        end local 1 // org.junit.jupiter.engine.execution.JupiterEngineExecutionContext context
        end local 0 // org.junit.jupiter.engine.descriptor.TestTemplateTestDescriptor this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   11     0              this  Lorg/junit/jupiter/engine/descriptor/TestTemplateTestDescriptor;
            0   11     1           context  Lorg/junit/jupiter/engine/execution/JupiterEngineExecutionContext;
            2   11     2          registry  Lorg/junit/jupiter/engine/extension/ExtensionRegistry;
            3   11     3     testInstances  Lorg/junit/jupiter/api/extension/TestInstances;
            6   11     4  extensionContext  Lorg/junit/jupiter/api/extension/ExtensionContext;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
         Name  Flags
      context  

  public org.junit.jupiter.engine.execution.JupiterEngineExecutionContext execute(org.junit.jupiter.engine.execution.JupiterEngineExecutionContext, org.junit.platform.engine.support.hierarchical.Node$DynamicTestExecutor);
    descriptor: (Lorg/junit/jupiter/engine/execution/JupiterEngineExecutionContext;Lorg/junit/platform/engine/support/hierarchical/Node$DynamicTestExecutor;)Lorg/junit/jupiter/engine/execution/JupiterEngineExecutionContext;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // org.junit.jupiter.engine.descriptor.TestTemplateTestDescriptor this
        start local 1 // org.junit.jupiter.engine.execution.JupiterEngineExecutionContext context
        start local 2 // org.junit.platform.engine.support.hierarchical.Node$DynamicTestExecutor dynamicTestExecutor
         0: .line 94
            aload 1 /* context */
            invokevirtual org.junit.jupiter.engine.execution.JupiterEngineExecutionContext.getExtensionContext:()Lorg/junit/jupiter/api/extension/ExtensionContext;
            astore 3 /* extensionContext */
        start local 3 // org.junit.jupiter.api.extension.ExtensionContext extensionContext
         1: .line 95
            aload 0 /* this */
            aload 3 /* extensionContext */
         2: .line 96
            aload 1 /* context */
            invokevirtual org.junit.jupiter.engine.execution.JupiterEngineExecutionContext.getExtensionRegistry:()Lorg/junit/jupiter/engine/extension/ExtensionRegistry;
         3: .line 95
            invokevirtual org.junit.jupiter.engine.descriptor.TestTemplateTestDescriptor.validateProviders:(Lorg/junit/jupiter/api/extension/ExtensionContext;Lorg/junit/jupiter/engine/extension/ExtensionRegistry;)Ljava/util/List;
            astore 4 /* providers */
        start local 4 // java.util.List providers
         4: .line 97
            new java.util.concurrent.atomic.AtomicInteger
            dup
            invokespecial java.util.concurrent.atomic.AtomicInteger.<init>:()V
            astore 5 /* invocationIndex */
        start local 5 // java.util.concurrent.atomic.AtomicInteger invocationIndex
         5: .line 99
            aload 4 /* providers */
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
         6: .line 100
            aload 3 /* extensionContext */
            invokedynamic apply(Lorg/junit/jupiter/api/extension/ExtensionContext;)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/junit/jupiter/engine/descriptor/TestTemplateTestDescriptor.lambda$0(Lorg/junit/jupiter/api/extension/ExtensionContext;Lorg/junit/jupiter/api/extension/TestTemplateInvocationContextProvider;)Ljava/util/stream/Stream; (6)
                  (Lorg/junit/jupiter/api/extension/TestTemplateInvocationContextProvider;)Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.flatMap:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         7: .line 101
            aload 0 /* this */
            aload 5 /* invocationIndex */
            invokedynamic apply(Lorg/junit/jupiter/engine/descriptor/TestTemplateTestDescriptor;Ljava/util/concurrent/atomic/AtomicInteger;)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/junit/jupiter/engine/descriptor/TestTemplateTestDescriptor.lambda$1(Ljava/util/concurrent/atomic/AtomicInteger;Lorg/junit/jupiter/api/extension/TestTemplateInvocationContext;)Ljava/util/Optional; (7)
                  (Lorg/junit/jupiter/api/extension/TestTemplateInvocationContext;)Ljava/util/Optional;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         8: .line 102
            invokedynamic test()Ljava/util/function/Predicate;
              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;)Z
                  java/util/Optional.isPresent()Z (5)
                  (Ljava/util/Optional;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
         9: .line 103
            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/util/Optional.get()Ljava/lang/Object; (5)
                  (Ljava/util/Optional;)Lorg/junit/platform/engine/TestDescriptor;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
        10: .line 104
            aload 0 /* this */
            aload 2 /* dynamicTestExecutor */
            invokedynamic accept(Lorg/junit/jupiter/engine/descriptor/TestTemplateTestDescriptor;Lorg/junit/platform/engine/support/hierarchical/Node$DynamicTestExecutor;)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/junit/jupiter/engine/descriptor/TestTemplateTestDescriptor.lambda$4(Lorg/junit/platform/engine/support/hierarchical/Node$DynamicTestExecutor;Lorg/junit/platform/engine/TestDescriptor;)V (7)
                  (Lorg/junit/platform/engine/TestDescriptor;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        11: .line 106
            aload 0 /* this */
            aload 5 /* invocationIndex */
            invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
            invokevirtual org.junit.jupiter.engine.descriptor.TestTemplateTestDescriptor.validateWasAtLeastInvokedOnce:(I)V
        12: .line 107
            aload 1 /* context */
            areturn
        end local 5 // java.util.concurrent.atomic.AtomicInteger invocationIndex
        end local 4 // java.util.List providers
        end local 3 // org.junit.jupiter.api.extension.ExtensionContext extensionContext
        end local 2 // org.junit.platform.engine.support.hierarchical.Node$DynamicTestExecutor dynamicTestExecutor
        end local 1 // org.junit.jupiter.engine.execution.JupiterEngineExecutionContext context
        end local 0 // org.junit.jupiter.engine.descriptor.TestTemplateTestDescriptor this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   13     0                 this  Lorg/junit/jupiter/engine/descriptor/TestTemplateTestDescriptor;
            0   13     1              context  Lorg/junit/jupiter/engine/execution/JupiterEngineExecutionContext;
            0   13     2  dynamicTestExecutor  Lorg/junit/platform/engine/support/hierarchical/Node$DynamicTestExecutor;
            1   13     3     extensionContext  Lorg/junit/jupiter/api/extension/ExtensionContext;
            4   13     4            providers  Ljava/util/List<Lorg/junit/jupiter/api/extension/TestTemplateInvocationContextProvider;>;
            5   13     5      invocationIndex  Ljava/util/concurrent/atomic/AtomicInteger;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
                     Name  Flags
      context              
      dynamicTestExecutor  

  private java.util.List<org.junit.jupiter.api.extension.TestTemplateInvocationContextProvider> validateProviders(org.junit.jupiter.api.extension.ExtensionContext, org.junit.jupiter.engine.extension.ExtensionRegistry);
    descriptor: (Lorg/junit/jupiter/api/extension/ExtensionContext;Lorg/junit/jupiter/engine/extension/ExtensionRegistry;)Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // org.junit.jupiter.engine.descriptor.TestTemplateTestDescriptor this
        start local 1 // org.junit.jupiter.api.extension.ExtensionContext extensionContext
        start local 2 // org.junit.jupiter.engine.extension.ExtensionRegistry extensionRegistry
         0: .line 114
            aload 2 /* extensionRegistry */
            ldc Lorg/junit/jupiter/api/extension/TestTemplateInvocationContextProvider;
            invokevirtual org.junit.jupiter.engine.extension.ExtensionRegistry.stream:(Ljava/lang/Class;)Ljava/util/stream/Stream;
         1: .line 115
            aload 1 /* extensionContext */
            invokedynamic test(Lorg/junit/jupiter/api/extension/ExtensionContext;)Ljava/util/function/Predicate;
              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;)Z
                  org/junit/jupiter/engine/descriptor/TestTemplateTestDescriptor.lambda$5(Lorg/junit/jupiter/api/extension/ExtensionContext;Lorg/junit/jupiter/api/extension/TestTemplateInvocationContextProvider;)Z (6)
                  (Lorg/junit/jupiter/api/extension/TestTemplateInvocationContextProvider;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
         2: .line 116
            invokestatic java.util.stream.Collectors.toList:()Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.util.List
         3: .line 114
            astore 3 /* providers */
        start local 3 // java.util.List providers
         4: .line 119
            aload 3 /* providers */
         5: .line 120
            aload 0 /* this */
            invokedynamic get(Lorg/junit/jupiter/engine/descriptor/TestTemplateTestDescriptor;)Ljava/util/function/Supplier;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  org/junit/jupiter/engine/descriptor/TestTemplateTestDescriptor.lambda$6()Ljava/lang/String; (7)
                  ()Ljava/lang/String;
         6: .line 119
            invokestatic org.junit.platform.commons.util.Preconditions.notEmpty:(Ljava/util/Collection;Ljava/util/function/Supplier;)Ljava/util/Collection;
            checkcast java.util.List
            areturn
        end local 3 // java.util.List providers
        end local 2 // org.junit.jupiter.engine.extension.ExtensionRegistry extensionRegistry
        end local 1 // org.junit.jupiter.api.extension.ExtensionContext extensionContext
        end local 0 // org.junit.jupiter.engine.descriptor.TestTemplateTestDescriptor this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    7     0               this  Lorg/junit/jupiter/engine/descriptor/TestTemplateTestDescriptor;
            0    7     1   extensionContext  Lorg/junit/jupiter/api/extension/ExtensionContext;
            0    7     2  extensionRegistry  Lorg/junit/jupiter/engine/extension/ExtensionRegistry;
            4    7     3          providers  Ljava/util/List<Lorg/junit/jupiter/api/extension/TestTemplateInvocationContextProvider;>;
    Signature: (Lorg/junit/jupiter/api/extension/ExtensionContext;Lorg/junit/jupiter/engine/extension/ExtensionRegistry;)Ljava/util/List<Lorg/junit/jupiter/api/extension/TestTemplateInvocationContextProvider;>;
    MethodParameters:
                   Name  Flags
      extensionContext   
      extensionRegistry  

  private java.util.Optional<org.junit.platform.engine.TestDescriptor> createInvocationTestDescriptor(org.junit.jupiter.api.extension.TestTemplateInvocationContext, int);
    descriptor: (Lorg/junit/jupiter/api/extension/TestTemplateInvocationContext;I)Ljava/util/Optional;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=4, args_size=3
        start local 0 // org.junit.jupiter.engine.descriptor.TestTemplateTestDescriptor this
        start local 1 // org.junit.jupiter.api.extension.TestTemplateInvocationContext invocationContext
        start local 2 // int index
         0: .line 126
            aload 0 /* this */
            invokevirtual org.junit.jupiter.engine.descriptor.TestTemplateTestDescriptor.getUniqueId:()Lorg/junit/platform/engine/UniqueId;
            ldc "test-template-invocation"
            new java.lang.StringBuilder
            dup
            ldc "#"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 2 /* index */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.junit.platform.engine.UniqueId.append:(Ljava/lang/String;Ljava/lang/String;)Lorg/junit/platform/engine/UniqueId;
            astore 3 /* uniqueId */
        start local 3 // org.junit.platform.engine.UniqueId uniqueId
         1: .line 127
            aload 0 /* this */
            invokevirtual org.junit.jupiter.engine.descriptor.TestTemplateTestDescriptor.getDynamicDescendantFilter:()Lorg/junit/jupiter/engine/descriptor/DynamicDescendantFilter;
            aload 3 /* uniqueId */
            invokevirtual org.junit.jupiter.engine.descriptor.DynamicDescendantFilter.test:(Lorg/junit/platform/engine/UniqueId;)Z
            ifeq 5
         2: .line 128
            new org.junit.jupiter.engine.descriptor.TestTemplateInvocationTestDescriptor
            dup
            aload 3 /* uniqueId */
            aload 0 /* this */
            invokevirtual org.junit.jupiter.engine.descriptor.TestTemplateTestDescriptor.getTestClass:()Ljava/lang/Class;
            aload 0 /* this */
            invokevirtual org.junit.jupiter.engine.descriptor.TestTemplateTestDescriptor.getTestMethod:()Ljava/lang/reflect/Method;
         3: .line 129
            aload 1 /* invocationContext */
            iload 2 /* index */
            aload 0 /* this */
            getfield org.junit.jupiter.engine.descriptor.TestTemplateTestDescriptor.configuration:Lorg/junit/jupiter/engine/config/JupiterConfiguration;
         4: .line 128
            invokespecial org.junit.jupiter.engine.descriptor.TestTemplateInvocationTestDescriptor.<init>:(Lorg/junit/platform/engine/UniqueId;Ljava/lang/Class;Ljava/lang/reflect/Method;Lorg/junit/jupiter/api/extension/TestTemplateInvocationContext;ILorg/junit/jupiter/engine/config/JupiterConfiguration;)V
            invokestatic java.util.Optional.of:(Ljava/lang/Object;)Ljava/util/Optional;
            areturn
         5: .line 131
      StackMap locals: org.junit.platform.engine.UniqueId
      StackMap stack:
            invokestatic java.util.Optional.empty:()Ljava/util/Optional;
            areturn
        end local 3 // org.junit.platform.engine.UniqueId uniqueId
        end local 2 // int index
        end local 1 // org.junit.jupiter.api.extension.TestTemplateInvocationContext invocationContext
        end local 0 // org.junit.jupiter.engine.descriptor.TestTemplateTestDescriptor this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    6     0               this  Lorg/junit/jupiter/engine/descriptor/TestTemplateTestDescriptor;
            0    6     1  invocationContext  Lorg/junit/jupiter/api/extension/TestTemplateInvocationContext;
            0    6     2              index  I
            1    6     3           uniqueId  Lorg/junit/platform/engine/UniqueId;
    Signature: (Lorg/junit/jupiter/api/extension/TestTemplateInvocationContext;I)Ljava/util/Optional<Lorg/junit/platform/engine/TestDescriptor;>;
    MethodParameters:
                   Name  Flags
      invocationContext  
      index              

  private void execute(org.junit.platform.engine.support.hierarchical.Node$DynamicTestExecutor, org.junit.platform.engine.TestDescriptor);
    descriptor: (Lorg/junit/platform/engine/support/hierarchical/Node$DynamicTestExecutor;Lorg/junit/platform/engine/TestDescriptor;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.junit.jupiter.engine.descriptor.TestTemplateTestDescriptor this
        start local 1 // org.junit.platform.engine.support.hierarchical.Node$DynamicTestExecutor dynamicTestExecutor
        start local 2 // org.junit.platform.engine.TestDescriptor testDescriptor
         0: .line 135
            aload 0 /* this */
            aload 2 /* testDescriptor */
            invokevirtual org.junit.jupiter.engine.descriptor.TestTemplateTestDescriptor.addChild:(Lorg/junit/platform/engine/TestDescriptor;)V
         1: .line 136
            aload 1 /* dynamicTestExecutor */
            aload 2 /* testDescriptor */
            invokeinterface org.junit.platform.engine.support.hierarchical.Node$DynamicTestExecutor.execute:(Lorg/junit/platform/engine/TestDescriptor;)V
         2: .line 137
            return
        end local 2 // org.junit.platform.engine.TestDescriptor testDescriptor
        end local 1 // org.junit.platform.engine.support.hierarchical.Node$DynamicTestExecutor dynamicTestExecutor
        end local 0 // org.junit.jupiter.engine.descriptor.TestTemplateTestDescriptor this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    3     0                 this  Lorg/junit/jupiter/engine/descriptor/TestTemplateTestDescriptor;
            0    3     1  dynamicTestExecutor  Lorg/junit/platform/engine/support/hierarchical/Node$DynamicTestExecutor;
            0    3     2       testDescriptor  Lorg/junit/platform/engine/TestDescriptor;
    MethodParameters:
                     Name  Flags
      dynamicTestExecutor  
      testDescriptor       

  private void validateWasAtLeastInvokedOnce(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.junit.jupiter.engine.descriptor.TestTemplateTestDescriptor this
        start local 1 // int invocationIndex
         0: .line 140
            iload 1 /* invocationIndex */
            ifle 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: invokedynamic get()Ljava/util/function/Supplier;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  org/junit/jupiter/engine/descriptor/TestTemplateTestDescriptor.lambda$7()Ljava/lang/String; (6)
                  ()Ljava/lang/String;
            invokestatic org.junit.platform.commons.util.Preconditions.condition:(ZLjava/util/function/Supplier;)V
         3: .line 142
            return
        end local 1 // int invocationIndex
        end local 0 // org.junit.jupiter.engine.descriptor.TestTemplateTestDescriptor this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    4     0             this  Lorg/junit/jupiter/engine/descriptor/TestTemplateTestDescriptor;
            0    4     1  invocationIndex  I
    MethodParameters:
                 Name  Flags
      invocationIndex  

  public org.junit.platform.engine.support.hierarchical.EngineExecutionContext execute(org.junit.platform.engine.support.hierarchical.EngineExecutionContext, org.junit.platform.engine.support.hierarchical.Node$DynamicTestExecutor);
    descriptor: (Lorg/junit/platform/engine/support/hierarchical/EngineExecutionContext;Lorg/junit/platform/engine/support/hierarchical/Node$DynamicTestExecutor;)Lorg/junit/platform/engine/support/hierarchical/EngineExecutionContext;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
         0: .line 1
            aload 0
            aload 1
            checkcast org.junit.jupiter.engine.execution.JupiterEngineExecutionContext
            aload 2
            invokevirtual org.junit.jupiter.engine.descriptor.TestTemplateTestDescriptor.execute:(Lorg/junit/jupiter/engine/execution/JupiterEngineExecutionContext;Lorg/junit/platform/engine/support/hierarchical/Node$DynamicTestExecutor;)Lorg/junit/jupiter/engine/execution/JupiterEngineExecutionContext;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws java.lang.Exception

  private static java.util.stream.Stream lambda$0(org.junit.jupiter.api.extension.ExtensionContext, org.junit.jupiter.api.extension.TestTemplateInvocationContextProvider);
    descriptor: (Lorg/junit/jupiter/api/extension/ExtensionContext;Lorg/junit/jupiter/api/extension/TestTemplateInvocationContextProvider;)Ljava/util/stream/Stream;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // org.junit.jupiter.api.extension.TestTemplateInvocationContextProvider provider
         0: .line 100
            aload 1 /* provider */
            aload 0
            invokeinterface org.junit.jupiter.api.extension.TestTemplateInvocationContextProvider.provideTestTemplateInvocationContexts:(Lorg/junit/jupiter/api/extension/ExtensionContext;)Ljava/util/stream/Stream;
            areturn
        end local 1 // org.junit.jupiter.api.extension.TestTemplateInvocationContextProvider provider
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     1  provider  Lorg/junit/jupiter/api/extension/TestTemplateInvocationContextProvider;

  private java.util.Optional lambda$1(java.util.concurrent.atomic.AtomicInteger, org.junit.jupiter.api.extension.TestTemplateInvocationContext);
    descriptor: (Ljava/util/concurrent/atomic/AtomicInteger;Lorg/junit/jupiter/api/extension/TestTemplateInvocationContext;)Ljava/util/Optional;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.junit.jupiter.engine.descriptor.TestTemplateTestDescriptor this
        start local 2 // org.junit.jupiter.api.extension.TestTemplateInvocationContext invocationContext
         0: .line 101
            aload 0 /* this */
            aload 2 /* invocationContext */
            aload 1
            invokevirtual java.util.concurrent.atomic.AtomicInteger.incrementAndGet:()I
            invokevirtual org.junit.jupiter.engine.descriptor.TestTemplateTestDescriptor.createInvocationTestDescriptor:(Lorg/junit/jupiter/api/extension/TestTemplateInvocationContext;I)Ljava/util/Optional;
            areturn
        end local 2 // org.junit.jupiter.api.extension.TestTemplateInvocationContext invocationContext
        end local 0 // org.junit.jupiter.engine.descriptor.TestTemplateTestDescriptor this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    1     0               this  Lorg/junit/jupiter/engine/descriptor/TestTemplateTestDescriptor;
            0    1     2  invocationContext  Lorg/junit/jupiter/api/extension/TestTemplateInvocationContext;

  private void lambda$4(org.junit.platform.engine.support.hierarchical.Node$DynamicTestExecutor, org.junit.platform.engine.TestDescriptor);
    descriptor: (Lorg/junit/platform/engine/support/hierarchical/Node$DynamicTestExecutor;Lorg/junit/platform/engine/TestDescriptor;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.junit.jupiter.engine.descriptor.TestTemplateTestDescriptor this
        start local 2 // org.junit.platform.engine.TestDescriptor invocationTestDescriptor
         0: .line 104
            aload 0 /* this */
            aload 1
            aload 2 /* invocationTestDescriptor */
            invokevirtual org.junit.jupiter.engine.descriptor.TestTemplateTestDescriptor.execute:(Lorg/junit/platform/engine/support/hierarchical/Node$DynamicTestExecutor;Lorg/junit/platform/engine/TestDescriptor;)V
            return
        end local 2 // org.junit.platform.engine.TestDescriptor invocationTestDescriptor
        end local 0 // org.junit.jupiter.engine.descriptor.TestTemplateTestDescriptor this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0    1     0                      this  Lorg/junit/jupiter/engine/descriptor/TestTemplateTestDescriptor;
            0    1     2  invocationTestDescriptor  Lorg/junit/platform/engine/TestDescriptor;

  private static boolean lambda$5(org.junit.jupiter.api.extension.ExtensionContext, org.junit.jupiter.api.extension.TestTemplateInvocationContextProvider);
    descriptor: (Lorg/junit/jupiter/api/extension/ExtensionContext;Lorg/junit/jupiter/api/extension/TestTemplateInvocationContextProvider;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // org.junit.jupiter.api.extension.TestTemplateInvocationContextProvider provider
         0: .line 115
            aload 1 /* provider */
            aload 0
            invokeinterface org.junit.jupiter.api.extension.TestTemplateInvocationContextProvider.supportsTestTemplate:(Lorg/junit/jupiter/api/extension/ExtensionContext;)Z
            ireturn
        end local 1 // org.junit.jupiter.api.extension.TestTemplateInvocationContextProvider provider
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     1  provider  Lorg/junit/jupiter/api/extension/TestTemplateInvocationContextProvider;

  private java.lang.String lambda$6();
    descriptor: ()Ljava/lang/String;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // org.junit.jupiter.engine.descriptor.TestTemplateTestDescriptor this
         0: .line 120
            ldc "You must register at least one %s that supports @TestTemplate method [%s]"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
         1: .line 121
            ldc Lorg/junit/jupiter/api/extension/TestTemplateInvocationContextProvider;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            invokevirtual org.junit.jupiter.engine.descriptor.TestTemplateTestDescriptor.getTestMethod:()Ljava/lang/reflect/Method;
            aastore
         2: .line 120
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
         3: .line 121
            areturn
        end local 0 // org.junit.jupiter.engine.descriptor.TestTemplateTestDescriptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/junit/jupiter/engine/descriptor/TestTemplateTestDescriptor;

  private static java.lang.String lambda$7();
    descriptor: ()Ljava/lang/String;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 140
            new java.lang.StringBuilder
            dup
            ldc "No supporting "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         1: .line 141
            ldc Lorg/junit/jupiter/api/extension/TestTemplateInvocationContextProvider;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " provided an invocation context"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         2: .line 140
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         3: .line 141
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "TestTemplateTestDescriptor.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public final Status = org.apiguardian.api.API$Status of org.apiguardian.api.API
  public Builder = org.junit.jupiter.engine.execution.JupiterEngineExecutionContext$Builder of org.junit.jupiter.engine.execution.JupiterEngineExecutionContext
  public final Type = org.junit.platform.engine.TestDescriptor$Type of org.junit.platform.engine.TestDescriptor
  public abstract DynamicTestExecutor = org.junit.platform.engine.support.hierarchical.Node$DynamicTestExecutor of org.junit.platform.engine.support.hierarchical.Node
    RuntimeVisibleAnnotations: 
      org.apiguardian.api.API(status = org.apiguardian.api.API$Status.INTERNAL:Lorg/apiguardian/api/API$Status;, since = "5.0")