class org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor
  super_class: java.lang.Object
{
  private final org.glassfish.pfl.basic.contain.Display<java.lang.String, org.glassfish.gmbal.typelib.EvaluatedType> display;
    descriptor: Lorg/glassfish/pfl/basic/contain/Display;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lorg/glassfish/pfl/basic/contain/Display<Ljava/lang/String;Lorg/glassfish/gmbal/typelib/EvaluatedType;>;

  private final org.glassfish.gmbal.typelib.TypeEvaluator$PartialDefinitions partialDefinitions;
    descriptor: Lorg/glassfish/gmbal/typelib/TypeEvaluator$PartialDefinitions;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor this
         0: .line 376
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 377
            aload 0 /* this */
            new org.glassfish.pfl.basic.contain.Display
            dup
            invokespecial org.glassfish.pfl.basic.contain.Display.<init>:()V
            putfield org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor.display:Lorg/glassfish/pfl/basic/contain/Display;
         2: .line 379
            aload 0 /* this */
            new org.glassfish.gmbal.typelib.TypeEvaluator$PartialDefinitions
            dup
            invokespecial org.glassfish.gmbal.typelib.TypeEvaluator$PartialDefinitions.<init>:()V
            putfield org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor.partialDefinitions:Lorg/glassfish/gmbal/typelib/TypeEvaluator$PartialDefinitions;
         3: .line 380
            return
        end local 0 // org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/glassfish/gmbal/typelib/TypeEvaluator$TypeEvaluationVisitor;

  public org.glassfish.gmbal.typelib.EvaluatedType evaluateType(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lorg/glassfish/gmbal/typelib/EvaluatedType;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor this
        start local 1 // java.lang.Object type
         0: .line 385
            aconst_null
            astore 2 /* result */
        start local 2 // org.glassfish.gmbal.typelib.EvaluatedType result
         1: .line 387
            aload 1 /* type */
            ifnonnull 4
         2: .line 388
            aconst_null
            astore 2 /* result */
         3: .line 389
            goto 27
      StackMap locals: org.glassfish.gmbal.typelib.EvaluatedType
      StackMap stack:
         4: aload 1 /* type */
            instanceof java.lang.Class
            ifeq 8
         5: .line 390
            aload 1 /* type */
            checkcast java.lang.Class
            astore 3 /* cls */
        start local 3 // java.lang.Class cls
         6: .line 391
            aload 0 /* this */
            aload 3 /* cls */
            invokevirtual org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor.visitClassDeclaration:(Ljava/lang/Class;)Lorg/glassfish/gmbal/typelib/EvaluatedType;
            astore 2 /* result */
        end local 3 // java.lang.Class cls
         7: .line 392
            goto 27
      StackMap locals:
      StackMap stack:
         8: aload 1 /* type */
            instanceof java.lang.reflect.ParameterizedType
            ifeq 12
         9: .line 393
            aload 1 /* type */
            checkcast java.lang.reflect.ParameterizedType
            astore 3 /* pt */
        start local 3 // java.lang.reflect.ParameterizedType pt
        10: .line 394
            aload 0 /* this */
            aload 3 /* pt */
            invokevirtual org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor.visitParameterizedType:(Ljava/lang/reflect/ParameterizedType;)Lorg/glassfish/gmbal/typelib/EvaluatedType;
            astore 2 /* result */
        end local 3 // java.lang.reflect.ParameterizedType pt
        11: .line 395
            goto 27
      StackMap locals:
      StackMap stack:
        12: aload 1 /* type */
            instanceof java.lang.reflect.TypeVariable
            ifeq 16
        13: .line 396
            aload 1 /* type */
            checkcast java.lang.reflect.TypeVariable
            astore 3 /* tvar */
        start local 3 // java.lang.reflect.TypeVariable tvar
        14: .line 397
            aload 0 /* this */
            aload 3 /* tvar */
            invokevirtual org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor.visitTypeVariable:(Ljava/lang/reflect/TypeVariable;)Lorg/glassfish/gmbal/typelib/EvaluatedType;
            astore 2 /* result */
        end local 3 // java.lang.reflect.TypeVariable tvar
        15: .line 398
            goto 27
      StackMap locals:
      StackMap stack:
        16: aload 1 /* type */
            instanceof java.lang.reflect.GenericArrayType
            ifeq 20
        17: .line 399
            aload 1 /* type */
            checkcast java.lang.reflect.GenericArrayType
            astore 3 /* gat */
        start local 3 // java.lang.reflect.GenericArrayType gat
        18: .line 400
            aload 0 /* this */
            aload 3 /* gat */
            invokevirtual org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor.visitGenericArrayType:(Ljava/lang/reflect/GenericArrayType;)Lorg/glassfish/gmbal/typelib/EvaluatedType;
            astore 2 /* result */
        end local 3 // java.lang.reflect.GenericArrayType gat
        19: .line 401
            goto 27
      StackMap locals:
      StackMap stack:
        20: aload 1 /* type */
            instanceof java.lang.reflect.WildcardType
            ifeq 24
        21: .line 402
            aload 1 /* type */
            checkcast java.lang.reflect.WildcardType
            astore 3 /* wt */
        start local 3 // java.lang.reflect.WildcardType wt
        22: .line 403
            aload 0 /* this */
            aload 3 /* wt */
            invokevirtual org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor.visitWildcardType:(Ljava/lang/reflect/WildcardType;)Lorg/glassfish/gmbal/typelib/EvaluatedType;
            astore 2 /* result */
        end local 3 // java.lang.reflect.WildcardType wt
        23: .line 404
            goto 27
      StackMap locals:
      StackMap stack:
        24: aload 1 /* type */
            instanceof java.lang.reflect.Method
            ifeq 26
        25: .line 405
            getstatic org.glassfish.gmbal.typelib.Exceptions.self:Lorg/glassfish/gmbal/typelib/Exceptions;
            aload 1 /* type */
            invokeinterface org.glassfish.gmbal.typelib.Exceptions.evaluateTypeCalledWithMethod:(Ljava/lang/Object;)Ljava/lang/IllegalArgumentException;
            athrow
        26: .line 407
      StackMap locals:
      StackMap stack:
            getstatic org.glassfish.gmbal.typelib.Exceptions.self:Lorg/glassfish/gmbal/typelib/Exceptions;
            aload 1 /* type */
            invokeinterface org.glassfish.gmbal.typelib.Exceptions.evaluateTypeCalledWithUnknownType:(Ljava/lang/Object;)Ljava/lang/IllegalArgumentException;
            athrow
        27: .line 410
      StackMap locals:
      StackMap stack:
            aload 2 /* result */
            areturn
        end local 2 // org.glassfish.gmbal.typelib.EvaluatedType result
        end local 1 // java.lang.Object type
        end local 0 // org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   28     0    this  Lorg/glassfish/gmbal/typelib/TypeEvaluator$TypeEvaluationVisitor;
            0   28     1    type  Ljava/lang/Object;
            1   28     2  result  Lorg/glassfish/gmbal/typelib/EvaluatedType;
            6    7     3     cls  Ljava/lang/Class;
           10   11     3      pt  Ljava/lang/reflect/ParameterizedType;
           14   15     3    tvar  Ljava/lang/reflect/TypeVariable;
           18   19     3     gat  Ljava/lang/reflect/GenericArrayType;
           22   23     3      wt  Ljava/lang/reflect/WildcardType;
    RuntimeVisibleAnnotations: 
      org.glassfish.gmbal.impl.trace.TraceTypelibEval()
    MethodParameters:
      Name  Flags
      type  

  private void describe(java.lang.String, java.lang.Object);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=0, locals=3, args_size=3
        start local 0 // org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor this
        start local 1 // java.lang.String msg
        start local 2 // java.lang.Object data
         0: .line 414
            return
        end local 2 // java.lang.Object data
        end local 1 // java.lang.String msg
        end local 0 // org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/glassfish/gmbal/typelib/TypeEvaluator$TypeEvaluationVisitor;
            0    1     1   msg  Ljava/lang/String;
            0    1     2  data  Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      org.glassfish.pfl.tf.spi.annotation.InfoMethod()
    MethodParameters:
      Name  Flags
      msg   
      data  

  private void message(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor this
        start local 1 // java.lang.String msg
         0: .line 417
            return
        end local 1 // java.lang.String msg
        end local 0 // org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/glassfish/gmbal/typelib/TypeEvaluator$TypeEvaluationVisitor;
            0    1     1   msg  Ljava/lang/String;
    RuntimeVisibleAnnotations: 
      org.glassfish.pfl.tf.spi.annotation.InfoMethod()
    MethodParameters:
      Name  Flags
      msg   

  private org.glassfish.gmbal.typelib.EvaluatedType visitClassDeclaration(java.lang.Class);
    descriptor: (Ljava/lang/Class;)Lorg/glassfish/gmbal/typelib/EvaluatedType;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor this
        start local 1 // java.lang.Class decl
         0: .line 423
            aconst_null
            astore 2 /* result */
        start local 2 // org.glassfish.gmbal.typelib.EvaluatedType result
         1: .line 426
            aload 1 /* decl */
            invokevirtual java.lang.Class.isArray:()Z
            ifeq 7
         2: .line 427
            aload 0 /* this */
            ldc "decl is an array"
            invokevirtual org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor.message:(Ljava/lang/String;)V
         3: .line 429
            aload 0 /* this */
         4: .line 430
            aload 1 /* decl */
            invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
         5: .line 429
            invokevirtual org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor.evaluateType:(Ljava/lang/Object;)Lorg/glassfish/gmbal/typelib/EvaluatedType;
            invokestatic org.glassfish.gmbal.typelib.DeclarationFactory.egat:(Lorg/glassfish/gmbal/typelib/EvaluatedType;)Lorg/glassfish/gmbal/typelib/EvaluatedArrayType;
         6: areturn
         7: .line 432
      StackMap locals: org.glassfish.gmbal.typelib.EvaluatedType
      StackMap stack:
            aload 0 /* this */
            getfield org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor.partialDefinitions:Lorg/glassfish/gmbal/typelib/TypeEvaluator$PartialDefinitions;
            aload 1 /* decl */
            invokevirtual org.glassfish.gmbal.typelib.TypeEvaluator$PartialDefinitions.get:(Ljava/lang/Class;)Lorg/glassfish/gmbal/typelib/EvaluatedType;
            astore 2 /* result */
         8: .line 433
            aload 2 /* result */
            ifnonnull 20
         9: .line 437
            aload 1 /* decl */
            invokevirtual java.lang.Class.getModifiers:()I
            aload 1 /* decl */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aload 1 /* decl */
        10: .line 436
            invokestatic org.glassfish.gmbal.typelib.DeclarationFactory.ecdecl:(ILjava/lang/String;Ljava/lang/Class;)Lorg/glassfish/gmbal/typelib/EvaluatedClassDeclaration;
            astore 3 /* newDecl */
        start local 3 // org.glassfish.gmbal.typelib.EvaluatedClassDeclaration newDecl
        11: .line 439
            aload 0 /* this */
            getfield org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor.partialDefinitions:Lorg/glassfish/gmbal/typelib/TypeEvaluator$PartialDefinitions;
            aload 1 /* decl */
            aload 3 /* newDecl */
            invokevirtual org.glassfish.gmbal.typelib.TypeEvaluator$PartialDefinitions.put:(Ljava/lang/Class;Lorg/glassfish/gmbal/typelib/EvaluatedType;)V
        12: .line 443
            aload 0 /* this */
            aload 1 /* decl */
            invokevirtual org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor.getBindings:(Ljava/lang/Class;)Lorg/glassfish/gmbal/typelib/TypeEvaluator$TypeEvaluationVisitor$OrderedResult;
        13: .line 442
            astore 4 /* bindings */
        start local 4 // org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor$OrderedResult bindings
        14: .line 445
            aload 0 /* this */
            aload 4 /* bindings */
            aload 1 /* decl */
            aload 3 /* newDecl */
            invokevirtual org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor.getCorrectDeclaration:(Lorg/glassfish/gmbal/typelib/TypeEvaluator$TypeEvaluationVisitor$OrderedResult;Ljava/lang/Class;Lorg/glassfish/gmbal/typelib/EvaluatedClassDeclaration;)Lorg/glassfish/gmbal/typelib/EvaluatedType;
            astore 2 /* result */
        end local 4 // org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor$OrderedResult bindings
        15: .line 446
            goto 19
      StackMap locals: org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor java.lang.Class org.glassfish.gmbal.typelib.EvaluatedType org.glassfish.gmbal.typelib.EvaluatedClassDeclaration
      StackMap stack: java.lang.Throwable
        16: astore 5
        17: .line 447
            aload 0 /* this */
            getfield org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor.partialDefinitions:Lorg/glassfish/gmbal/typelib/TypeEvaluator$PartialDefinitions;
            aload 1 /* decl */
            invokevirtual org.glassfish.gmbal.typelib.TypeEvaluator$PartialDefinitions.remove:(Ljava/lang/Class;)V
        18: .line 448
            aload 5
            athrow
        19: .line 447
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor.partialDefinitions:Lorg/glassfish/gmbal/typelib/TypeEvaluator$PartialDefinitions;
            aload 1 /* decl */
            invokevirtual org.glassfish.gmbal.typelib.TypeEvaluator$PartialDefinitions.remove:(Ljava/lang/Class;)V
        end local 3 // org.glassfish.gmbal.typelib.EvaluatedClassDeclaration newDecl
        20: .line 451
      StackMap locals:
      StackMap stack:
            aload 1 /* decl */
            ldc Lorg/glassfish/gmbal/typelib/ForceTypelibError;
            invokevirtual java.lang.Class.isAnnotationPresent:(Ljava/lang/Class;)Z
            ifeq 27
        21: .line 452
            new java.lang.StackOverflowError
            dup
        22: .line 453
            ldc "Simulating stack overflow in test"
        23: .line 452
            invokespecial java.lang.StackOverflowError.<init>:(Ljava/lang/String;)V
            athrow
        24: .line 456
      StackMap locals:
      StackMap stack: java.lang.Error
            astore 3 /* err */
        start local 3 // java.lang.Error err
        25: .line 457
            invokestatic org.glassfish.pfl.basic.logex.OperationTracer.freeze:()V
        26: .line 458
            aload 3 /* err */
            athrow
        end local 3 // java.lang.Error err
        27: .line 461
      StackMap locals:
      StackMap stack:
            aload 2 /* result */
            areturn
        end local 2 // org.glassfish.gmbal.typelib.EvaluatedType result
        end local 1 // java.lang.Class decl
        end local 0 // org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   28     0      this  Lorg/glassfish/gmbal/typelib/TypeEvaluator$TypeEvaluationVisitor;
            0   28     1      decl  Ljava/lang/Class;
            1   28     2    result  Lorg/glassfish/gmbal/typelib/EvaluatedType;
           11   20     3   newDecl  Lorg/glassfish/gmbal/typelib/EvaluatedClassDeclaration;
           14   15     4  bindings  Lorg/glassfish/gmbal/typelib/TypeEvaluator$TypeEvaluationVisitor$OrderedResult<Ljava/lang/String;Lorg/glassfish/gmbal/typelib/EvaluatedType;>;
           25   27     3       err  Ljava/lang/Error;
      Exception table:
        from    to  target  type
          12    16      16  any
           1     6      24  Class java.lang.Error
           7    24      24  Class java.lang.Error
    RuntimeVisibleAnnotations: 
      org.glassfish.gmbal.impl.trace.TraceTypelib()
    MethodParameters:
      Name  Flags
      decl  

  private org.glassfish.gmbal.typelib.EvaluatedType visitParameterizedType(java.lang.reflect.ParameterizedType);
    descriptor: (Ljava/lang/reflect/ParameterizedType;)Lorg/glassfish/gmbal/typelib/EvaluatedType;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor this
        start local 1 // java.lang.reflect.ParameterizedType pt
         0: .line 466
            aload 1 /* pt */
            invokeinterface java.lang.reflect.ParameterizedType.getRawType:()Ljava/lang/reflect/Type;
            checkcast java.lang.Class
            astore 2 /* decl */
        start local 2 // java.lang.Class decl
         1: .line 468
            aconst_null
            astore 3 /* result */
        start local 3 // org.glassfish.gmbal.typelib.EvaluatedType result
         2: .line 469
            aload 0 /* this */
            getfield org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor.partialDefinitions:Lorg/glassfish/gmbal/typelib/TypeEvaluator$PartialDefinitions;
            aload 1 /* pt */
            invokevirtual org.glassfish.gmbal.typelib.TypeEvaluator$PartialDefinitions.get:(Ljava/lang/reflect/ParameterizedType;)Lorg/glassfish/gmbal/typelib/EvaluatedType;
            astore 3 /* result */
         3: .line 470
            aload 3 /* result */
            ifnonnull 15
         4: .line 474
            aload 2 /* decl */
            invokevirtual java.lang.Class.getModifiers:()I
            aload 2 /* decl */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aload 2 /* decl */
         5: .line 473
            invokestatic org.glassfish.gmbal.typelib.DeclarationFactory.ecdecl:(ILjava/lang/String;Ljava/lang/Class;)Lorg/glassfish/gmbal/typelib/EvaluatedClassDeclaration;
            astore 4 /* newDecl */
        start local 4 // org.glassfish.gmbal.typelib.EvaluatedClassDeclaration newDecl
         6: .line 476
            aload 0 /* this */
            getfield org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor.partialDefinitions:Lorg/glassfish/gmbal/typelib/TypeEvaluator$PartialDefinitions;
            aload 1 /* pt */
            aload 4 /* newDecl */
            invokevirtual org.glassfish.gmbal.typelib.TypeEvaluator$PartialDefinitions.put:(Ljava/lang/reflect/ParameterizedType;Lorg/glassfish/gmbal/typelib/EvaluatedType;)V
         7: .line 480
            aload 0 /* this */
            aload 1 /* pt */
            invokevirtual org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor.getBindings:(Ljava/lang/reflect/ParameterizedType;)Lorg/glassfish/gmbal/typelib/TypeEvaluator$TypeEvaluationVisitor$OrderedResult;
         8: .line 479
            astore 5 /* bindings */
        start local 5 // org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor$OrderedResult bindings
         9: .line 482
            aload 0 /* this */
            aload 5 /* bindings */
            aload 2 /* decl */
            aload 4 /* newDecl */
            invokevirtual org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor.getCorrectDeclaration:(Lorg/glassfish/gmbal/typelib/TypeEvaluator$TypeEvaluationVisitor$OrderedResult;Ljava/lang/Class;Lorg/glassfish/gmbal/typelib/EvaluatedClassDeclaration;)Lorg/glassfish/gmbal/typelib/EvaluatedType;
            astore 3 /* result */
        end local 5 // org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor$OrderedResult bindings
        10: .line 483
            goto 14
      StackMap locals: org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor java.lang.reflect.ParameterizedType java.lang.Class org.glassfish.gmbal.typelib.EvaluatedType org.glassfish.gmbal.typelib.EvaluatedClassDeclaration
      StackMap stack: java.lang.Throwable
        11: astore 6
        12: .line 484
            aload 0 /* this */
            getfield org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor.partialDefinitions:Lorg/glassfish/gmbal/typelib/TypeEvaluator$PartialDefinitions;
            aload 1 /* pt */
            invokevirtual org.glassfish.gmbal.typelib.TypeEvaluator$PartialDefinitions.remove:(Ljava/lang/reflect/ParameterizedType;)V
        13: .line 485
            aload 6
            athrow
        14: .line 484
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor.partialDefinitions:Lorg/glassfish/gmbal/typelib/TypeEvaluator$PartialDefinitions;
            aload 1 /* pt */
            invokevirtual org.glassfish.gmbal.typelib.TypeEvaluator$PartialDefinitions.remove:(Ljava/lang/reflect/ParameterizedType;)V
        end local 4 // org.glassfish.gmbal.typelib.EvaluatedClassDeclaration newDecl
        15: .line 488
      StackMap locals:
      StackMap stack:
            aload 3 /* result */
            areturn
        end local 3 // org.glassfish.gmbal.typelib.EvaluatedType result
        end local 2 // java.lang.Class decl
        end local 1 // java.lang.reflect.ParameterizedType pt
        end local 0 // org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   16     0      this  Lorg/glassfish/gmbal/typelib/TypeEvaluator$TypeEvaluationVisitor;
            0   16     1        pt  Ljava/lang/reflect/ParameterizedType;
            1   16     2      decl  Ljava/lang/Class<*>;
            2   16     3    result  Lorg/glassfish/gmbal/typelib/EvaluatedType;
            6   15     4   newDecl  Lorg/glassfish/gmbal/typelib/EvaluatedClassDeclaration;
            9   10     5  bindings  Lorg/glassfish/gmbal/typelib/TypeEvaluator$TypeEvaluationVisitor$OrderedResult<Ljava/lang/String;Lorg/glassfish/gmbal/typelib/EvaluatedType;>;
      Exception table:
        from    to  target  type
           7    11      11  any
    RuntimeVisibleAnnotations: 
      org.glassfish.gmbal.impl.trace.TraceTypelib()
    MethodParameters:
      Name  Flags
      pt    

  private void fieldException(java.lang.Exception, java.lang.reflect.Field);
    descriptor: (Ljava/lang/Exception;Ljava/lang/reflect/Field;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=0, locals=3, args_size=3
        start local 0 // org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor this
        start local 1 // java.lang.Exception exc
        start local 2 // java.lang.reflect.Field fld
         0: .line 493
            return
        end local 2 // java.lang.reflect.Field fld
        end local 1 // java.lang.Exception exc
        end local 0 // org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/glassfish/gmbal/typelib/TypeEvaluator$TypeEvaluationVisitor;
            0    1     1   exc  Ljava/lang/Exception;
            0    1     2   fld  Ljava/lang/reflect/Field;
    RuntimeVisibleAnnotations: 
      org.glassfish.pfl.tf.spi.annotation.InfoMethod()
    RuntimeVisibleParameterAnnotations: 
      0:
        org.glassfish.pfl.basic.logex.Chain()
      1:
    MethodParameters:
      Name  Flags
      exc   
      fld   

  private org.glassfish.gmbal.typelib.EvaluatedFieldDeclaration visitFieldDeclaration(org.glassfish.gmbal.typelib.EvaluatedClassDeclaration, java.lang.reflect.Field);
    descriptor: (Lorg/glassfish/gmbal/typelib/EvaluatedClassDeclaration;Ljava/lang/reflect/Field;)Lorg/glassfish/gmbal/typelib/EvaluatedFieldDeclaration;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor this
        start local 1 // org.glassfish.gmbal.typelib.EvaluatedClassDeclaration cdecl
        start local 2 // java.lang.reflect.Field fld
         0: .line 499
            aconst_null
            astore 3 /* result */
        start local 3 // org.glassfish.gmbal.typelib.EvaluatedFieldDeclaration result
         1: .line 503
            aload 2 /* fld */
            invokevirtual java.lang.reflect.Field.getModifiers:()I
            invokestatic java.lang.reflect.Modifier.isFinal:(I)Z
            ifne 3
         2: .line 504
            aconst_null
            areturn
         3: .line 511
      StackMap locals: org.glassfish.gmbal.typelib.EvaluatedFieldDeclaration
      StackMap stack:
            aload 2 /* fld */
            invokevirtual java.lang.reflect.Field.getType:()Ljava/lang/Class;
            astore 4 /* fieldType */
        start local 4 // java.lang.Class fieldType
         4: .line 512
            aload 4 /* fieldType */
            invokestatic org.glassfish.gmbal.typelib.TypeEvaluator.getImmutableEvaluatedType:(Ljava/lang/Class;)Lorg/glassfish/gmbal/typelib/EvaluatedType;
            astore 5 /* ftype */
        start local 5 // org.glassfish.gmbal.typelib.EvaluatedType ftype
         5: .line 513
            aload 5 /* ftype */
            ifnonnull 7
         6: .line 514
            aconst_null
            areturn
         7: .line 517
      StackMap locals: java.lang.Class org.glassfish.gmbal.typelib.EvaluatedType
      StackMap stack:
            aload 1 /* cdecl */
            aload 2 /* fld */
            invokevirtual java.lang.reflect.Field.getModifiers:()I
         8: .line 518
            aload 5 /* ftype */
            aload 2 /* fld */
            invokevirtual java.lang.reflect.Field.getName:()Ljava/lang/String;
            aload 2 /* fld */
         9: .line 517
            invokestatic org.glassfish.gmbal.typelib.DeclarationFactory.efdecl:(Lorg/glassfish/gmbal/typelib/EvaluatedClassDeclaration;ILorg/glassfish/gmbal/typelib/EvaluatedType;Ljava/lang/String;Ljava/lang/reflect/Field;)Lorg/glassfish/gmbal/typelib/EvaluatedFieldDeclaration;
            astore 3 /* result */
        end local 5 // org.glassfish.gmbal.typelib.EvaluatedType ftype
        end local 4 // java.lang.Class fieldType
        10: .line 519
            goto 17
      StackMap locals: org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor org.glassfish.gmbal.typelib.EvaluatedClassDeclaration java.lang.reflect.Field org.glassfish.gmbal.typelib.EvaluatedFieldDeclaration
      StackMap stack: java.lang.Exception
        11: astore 4 /* exc */
        start local 4 // java.lang.Exception exc
        12: .line 520
            aload 0 /* this */
            aload 4 /* exc */
            aload 2 /* fld */
            invokevirtual org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor.fieldException:(Ljava/lang/Exception;Ljava/lang/reflect/Field;)V
        end local 4 // java.lang.Exception exc
        13: goto 17
        14: .line 521
      StackMap locals:
      StackMap stack: java.lang.Error
            astore 4 /* err */
        start local 4 // java.lang.Error err
        15: .line 522
            invokestatic org.glassfish.pfl.basic.logex.OperationTracer.freeze:()V
        16: .line 523
            aload 4 /* err */
            athrow
        end local 4 // java.lang.Error err
        17: .line 526
      StackMap locals:
      StackMap stack:
            aload 3 /* result */
            areturn
        end local 3 // org.glassfish.gmbal.typelib.EvaluatedFieldDeclaration result
        end local 2 // java.lang.reflect.Field fld
        end local 1 // org.glassfish.gmbal.typelib.EvaluatedClassDeclaration cdecl
        end local 0 // org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   18     0       this  Lorg/glassfish/gmbal/typelib/TypeEvaluator$TypeEvaluationVisitor;
            0   18     1      cdecl  Lorg/glassfish/gmbal/typelib/EvaluatedClassDeclaration;
            0   18     2        fld  Ljava/lang/reflect/Field;
            1   18     3     result  Lorg/glassfish/gmbal/typelib/EvaluatedFieldDeclaration;
            4   10     4  fieldType  Ljava/lang/Class;
            5   10     5      ftype  Lorg/glassfish/gmbal/typelib/EvaluatedType;
           12   13     4        exc  Ljava/lang/Exception;
           15   17     4        err  Ljava/lang/Error;
      Exception table:
        from    to  target  type
           1     2      11  Class java.lang.Exception
           3     6      11  Class java.lang.Exception
           7    10      11  Class java.lang.Exception
           1     2      14  Class java.lang.Error
           3     6      14  Class java.lang.Error
           7    10      14  Class java.lang.Error
    RuntimeVisibleAnnotations: 
      org.glassfish.gmbal.impl.trace.TraceTypelib()
    MethodParameters:
       Name  Flags
      cdecl  final
      fld    final

  private org.glassfish.gmbal.typelib.EvaluatedMethodDeclaration visitMethodDeclaration(org.glassfish.gmbal.typelib.EvaluatedClassDeclaration, java.lang.reflect.Method);
    descriptor: (Lorg/glassfish/gmbal/typelib/EvaluatedClassDeclaration;Ljava/lang/reflect/Method;)Lorg/glassfish/gmbal/typelib/EvaluatedMethodDeclaration;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=6, args_size=3
        start local 0 // org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor this
        start local 1 // org.glassfish.gmbal.typelib.EvaluatedClassDeclaration cdecl
        start local 2 // java.lang.reflect.Method mdecl
         0: .line 534
            aload 2 /* mdecl */
            invokevirtual java.lang.reflect.Method.getGenericParameterTypes:()[Ljava/lang/reflect/Type;
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
         1: .line 535
            new org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor$1
            dup
            aload 0 /* this */
            invokespecial org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor$1.<init>:(Lorg/glassfish/gmbal/typelib/TypeEvaluator$TypeEvaluationVisitor;)V
         2: .line 534
            invokestatic org.glassfish.pfl.basic.algorithm.Algorithms.map:(Ljava/util/List;Lorg/glassfish/pfl/basic/func/UnaryFunction;)Ljava/util/List;
         3: .line 533
            astore 3 /* eptypes */
        start local 3 // java.util.List eptypes
         4: .line 540
            aload 0 /* this */
            ldc "eptypes"
            aload 3 /* eptypes */
            invokevirtual org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor.describe:(Ljava/lang/String;Ljava/lang/Object;)V
         5: .line 545
            aload 2 /* mdecl */
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            ldc "getThing"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 7
         6: .line 546
            aload 0 /* this */
            ldc "processing getThing method from test"
            invokevirtual org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor.message:(Ljava/lang/String;)V
         7: .line 549
      StackMap locals: java.util.List
      StackMap stack:
            aconst_null
            astore 4 /* result */
        start local 4 // org.glassfish.gmbal.typelib.EvaluatedMethodDeclaration result
         8: .line 553
            aload 1 /* cdecl */
            aload 2 /* mdecl */
            invokevirtual java.lang.reflect.Method.getModifiers:()I
         9: .line 554
            aload 0 /* this */
            aload 2 /* mdecl */
            invokevirtual java.lang.reflect.Method.getGenericReturnType:()Ljava/lang/reflect/Type;
            invokevirtual org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor.evaluateType:(Ljava/lang/Object;)Lorg/glassfish/gmbal/typelib/EvaluatedType;
        10: .line 555
            aload 2 /* mdecl */
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            aload 3 /* eptypes */
            aload 2 /* mdecl */
        11: .line 552
            invokestatic org.glassfish.gmbal.typelib.DeclarationFactory.emdecl:(Lorg/glassfish/gmbal/typelib/EvaluatedClassDeclaration;ILorg/glassfish/gmbal/typelib/EvaluatedType;Ljava/lang/String;Ljava/util/List;Ljava/lang/reflect/Method;)Lorg/glassfish/gmbal/typelib/EvaluatedMethodDeclaration;
            astore 4 /* result */
        12: .line 558
            aload 2 /* mdecl */
            ldc Lorg/glassfish/gmbal/typelib/ForceTypelibError;
            invokevirtual java.lang.reflect.Method.isAnnotationPresent:(Ljava/lang/Class;)Z
            ifeq 19
        13: .line 559
            new java.lang.StackOverflowError
            dup
        14: .line 560
            ldc "Simulating stack overflow in test"
        15: .line 559
            invokespecial java.lang.StackOverflowError.<init>:(Ljava/lang/String;)V
            athrow
        16: .line 562
      StackMap locals: org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor org.glassfish.gmbal.typelib.EvaluatedClassDeclaration java.lang.reflect.Method java.util.List org.glassfish.gmbal.typelib.EvaluatedMethodDeclaration
      StackMap stack: java.lang.Error
            astore 5 /* err */
        start local 5 // java.lang.Error err
        17: .line 563
            invokestatic org.glassfish.pfl.basic.logex.OperationTracer.freeze:()V
        18: .line 564
            aload 5 /* err */
            athrow
        end local 5 // java.lang.Error err
        19: .line 566
      StackMap locals:
      StackMap stack:
            aload 4 /* result */
            areturn
        end local 4 // org.glassfish.gmbal.typelib.EvaluatedMethodDeclaration result
        end local 3 // java.util.List eptypes
        end local 2 // java.lang.reflect.Method mdecl
        end local 1 // org.glassfish.gmbal.typelib.EvaluatedClassDeclaration cdecl
        end local 0 // org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   20     0     this  Lorg/glassfish/gmbal/typelib/TypeEvaluator$TypeEvaluationVisitor;
            0   20     1    cdecl  Lorg/glassfish/gmbal/typelib/EvaluatedClassDeclaration;
            0   20     2    mdecl  Ljava/lang/reflect/Method;
            4   20     3  eptypes  Ljava/util/List<Lorg/glassfish/gmbal/typelib/EvaluatedType;>;
            8   20     4   result  Lorg/glassfish/gmbal/typelib/EvaluatedMethodDeclaration;
           17   19     5      err  Ljava/lang/Error;
      Exception table:
        from    to  target  type
           8    16      16  Class java.lang.Error
    RuntimeVisibleAnnotations: 
      org.glassfish.gmbal.impl.trace.TraceTypelib()
    MethodParameters:
       Name  Flags
      cdecl  final
      mdecl  final

  private org.glassfish.gmbal.typelib.EvaluatedType visitTypeVariable(java.lang.reflect.TypeVariable);
    descriptor: (Ljava/lang/reflect/TypeVariable;)Lorg/glassfish/gmbal/typelib/EvaluatedType;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor this
        start local 1 // java.lang.reflect.TypeVariable tvar
         0: .line 571
            aconst_null
            astore 2 /* result */
        start local 2 // org.glassfish.gmbal.typelib.EvaluatedType result
         1: .line 573
            aload 0 /* this */
            aload 1 /* tvar */
            invokevirtual org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor.lookup:(Ljava/lang/reflect/TypeVariable;)Lorg/glassfish/gmbal/typelib/EvaluatedType;
            astore 2 /* result */
         2: .line 574
            goto 6
      StackMap locals: org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor java.lang.reflect.TypeVariable org.glassfish.gmbal.typelib.EvaluatedType
      StackMap stack: java.lang.Error
         3: astore 3 /* err */
        start local 3 // java.lang.Error err
         4: .line 575
            invokestatic org.glassfish.pfl.basic.logex.OperationTracer.freeze:()V
         5: .line 576
            aload 3 /* err */
            athrow
        end local 3 // java.lang.Error err
         6: .line 578
      StackMap locals:
      StackMap stack:
            aload 2 /* result */
            areturn
        end local 2 // org.glassfish.gmbal.typelib.EvaluatedType result
        end local 1 // java.lang.reflect.TypeVariable tvar
        end local 0 // org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lorg/glassfish/gmbal/typelib/TypeEvaluator$TypeEvaluationVisitor;
            0    7     1    tvar  Ljava/lang/reflect/TypeVariable;
            1    7     2  result  Lorg/glassfish/gmbal/typelib/EvaluatedType;
            4    6     3     err  Ljava/lang/Error;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.Error
    RuntimeVisibleAnnotations: 
      org.glassfish.gmbal.impl.trace.TraceTypelib()
    MethodParameters:
      Name  Flags
      tvar  

  private org.glassfish.gmbal.typelib.EvaluatedType visitGenericArrayType(java.lang.reflect.GenericArrayType);
    descriptor: (Ljava/lang/reflect/GenericArrayType;)Lorg/glassfish/gmbal/typelib/EvaluatedType;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor this
        start local 1 // java.lang.reflect.GenericArrayType at
         0: .line 583
            aconst_null
            astore 2 /* result */
        start local 2 // org.glassfish.gmbal.typelib.EvaluatedType result
         1: .line 586
            aload 0 /* this */
            aload 1 /* at */
            invokeinterface java.lang.reflect.GenericArrayType.getGenericComponentType:()Ljava/lang/reflect/Type;
            invokevirtual org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor.evaluateType:(Ljava/lang/Object;)Lorg/glassfish/gmbal/typelib/EvaluatedType;
         2: .line 585
            invokestatic org.glassfish.gmbal.typelib.DeclarationFactory.egat:(Lorg/glassfish/gmbal/typelib/EvaluatedType;)Lorg/glassfish/gmbal/typelib/EvaluatedArrayType;
            astore 2 /* result */
         3: .line 587
            goto 7
      StackMap locals: org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor java.lang.reflect.GenericArrayType org.glassfish.gmbal.typelib.EvaluatedType
      StackMap stack: java.lang.Error
         4: astore 3 /* err */
        start local 3 // java.lang.Error err
         5: .line 588
            invokestatic org.glassfish.pfl.basic.logex.OperationTracer.freeze:()V
         6: .line 589
            aload 3 /* err */
            athrow
        end local 3 // java.lang.Error err
         7: .line 591
      StackMap locals:
      StackMap stack:
            aload 2 /* result */
            areturn
        end local 2 // org.glassfish.gmbal.typelib.EvaluatedType result
        end local 1 // java.lang.reflect.GenericArrayType at
        end local 0 // org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lorg/glassfish/gmbal/typelib/TypeEvaluator$TypeEvaluationVisitor;
            0    8     1      at  Ljava/lang/reflect/GenericArrayType;
            1    8     2  result  Lorg/glassfish/gmbal/typelib/EvaluatedType;
            5    7     3     err  Ljava/lang/Error;
      Exception table:
        from    to  target  type
           1     3       4  Class java.lang.Error
    RuntimeVisibleAnnotations: 
      org.glassfish.gmbal.impl.trace.TraceTypelib()
    MethodParameters:
      Name  Flags
      at    

  private org.glassfish.gmbal.typelib.EvaluatedType visitWildcardType(java.lang.reflect.WildcardType);
    descriptor: (Ljava/lang/reflect/WildcardType;)Lorg/glassfish/gmbal/typelib/EvaluatedType;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor this
        start local 1 // java.lang.reflect.WildcardType wt
         0: .line 596
            aconst_null
            astore 2 /* result */
        start local 2 // org.glassfish.gmbal.typelib.EvaluatedType result
         1: .line 601
            aload 1 /* wt */
            invokeinterface java.lang.reflect.WildcardType.getUpperBounds:()[Ljava/lang/reflect/Type;
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            astore 3 /* ub */
        start local 3 // java.util.List ub
         2: .line 602
            aload 3 /* ub */
            invokeinterface java.util.List.size:()I
            ifle 9
         3: .line 603
            aload 3 /* ub */
            invokeinterface java.util.List.size:()I
            iconst_1
            if_icmple 7
         4: .line 604
            getstatic org.glassfish.gmbal.typelib.Exceptions.self:Lorg/glassfish/gmbal/typelib/Exceptions;
         5: .line 605
            aload 1 /* wt */
         6: .line 604
            invokeinterface org.glassfish.gmbal.typelib.Exceptions.multipleUpperBoundsNotSupported:(Ljava/lang/Object;)Ljava/lang/UnsupportedOperationException;
            athrow
         7: .line 608
      StackMap locals: org.glassfish.gmbal.typelib.EvaluatedType java.util.List
      StackMap stack:
            aload 0 /* this */
            aload 3 /* ub */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            invokevirtual org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor.evaluateType:(Ljava/lang/Object;)Lorg/glassfish/gmbal/typelib/EvaluatedType;
            astore 2 /* result */
         8: .line 609
            goto 14
         9: .line 610
      StackMap locals:
      StackMap stack:
            getstatic org.glassfish.gmbal.typelib.EvaluatedType.EOBJECT:Lorg/glassfish/gmbal/typelib/EvaluatedClassDeclaration;
            astore 2 /* result */
        end local 3 // java.util.List ub
        10: .line 612
            goto 14
      StackMap locals: org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor java.lang.reflect.WildcardType org.glassfish.gmbal.typelib.EvaluatedType
      StackMap stack: java.lang.Error
        11: astore 3 /* err */
        start local 3 // java.lang.Error err
        12: .line 613
            invokestatic org.glassfish.pfl.basic.logex.OperationTracer.freeze:()V
        13: .line 614
            aload 3 /* err */
            athrow
        end local 3 // java.lang.Error err
        14: .line 617
      StackMap locals:
      StackMap stack:
            aload 2 /* result */
            areturn
        end local 2 // org.glassfish.gmbal.typelib.EvaluatedType result
        end local 1 // java.lang.reflect.WildcardType wt
        end local 0 // org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   15     0    this  Lorg/glassfish/gmbal/typelib/TypeEvaluator$TypeEvaluationVisitor;
            0   15     1      wt  Ljava/lang/reflect/WildcardType;
            1   15     2  result  Lorg/glassfish/gmbal/typelib/EvaluatedType;
            2   10     3      ub  Ljava/util/List<Ljava/lang/reflect/Type;>;
           12   14     3     err  Ljava/lang/Error;
      Exception table:
        from    to  target  type
           1    10      11  Class java.lang.Error
    RuntimeVisibleAnnotations: 
      org.glassfish.gmbal.impl.trace.TraceTypelib()
    MethodParameters:
      Name  Flags
      wt    

  private org.glassfish.gmbal.typelib.EvaluatedType lookup(java.lang.reflect.TypeVariable);
    descriptor: (Ljava/lang/reflect/TypeVariable;)Lorg/glassfish/gmbal/typelib/EvaluatedType;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor this
        start local 1 // java.lang.reflect.TypeVariable tvar
         0: .line 622
            aconst_null
            astore 2 /* result */
        start local 2 // org.glassfish.gmbal.typelib.EvaluatedType result
         1: .line 625
            aload 0 /* this */
            getfield org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor.display:Lorg/glassfish/pfl/basic/contain/Display;
            aload 1 /* tvar */
            invokeinterface java.lang.reflect.TypeVariable.getName:()Ljava/lang/String;
            invokevirtual org.glassfish.pfl.basic.contain.Display.lookup:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.glassfish.gmbal.typelib.EvaluatedType
            astore 2 /* result */
         2: .line 627
            aload 2 /* result */
            ifnonnull 16
         3: .line 628
            aload 1 /* tvar */
            invokeinterface java.lang.reflect.TypeVariable.getBounds:()[Ljava/lang/reflect/Type;
            astore 3 /* bounds */
        start local 3 // java.lang.reflect.Type[] bounds
         4: .line 629
            aload 3 /* bounds */
            arraylength
            ifle 11
         5: .line 630
            aload 3 /* bounds */
            arraylength
            iconst_1
            if_icmple 9
         6: .line 631
            getstatic org.glassfish.gmbal.typelib.Exceptions.self:Lorg/glassfish/gmbal/typelib/Exceptions;
         7: .line 632
            aload 1 /* tvar */
            invokeinterface org.glassfish.gmbal.typelib.Exceptions.multipleUpperBoundsNotSupported:(Ljava/lang/Object;)Ljava/lang/UnsupportedOperationException;
         8: .line 631
            athrow
         9: .line 635
      StackMap locals: org.glassfish.gmbal.typelib.EvaluatedType java.lang.reflect.Type[]
      StackMap stack:
            aload 0 /* this */
            aload 3 /* bounds */
            iconst_0
            aaload
            invokevirtual org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor.evaluateType:(Ljava/lang/Object;)Lorg/glassfish/gmbal/typelib/EvaluatedType;
            astore 2 /* result */
        10: .line 636
            goto 16
        11: .line 637
      StackMap locals:
      StackMap stack:
            getstatic org.glassfish.gmbal.typelib.EvaluatedType.EOBJECT:Lorg/glassfish/gmbal/typelib/EvaluatedClassDeclaration;
            astore 2 /* result */
        end local 3 // java.lang.reflect.Type[] bounds
        12: .line 640
            goto 16
      StackMap locals: org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor java.lang.reflect.TypeVariable org.glassfish.gmbal.typelib.EvaluatedType
      StackMap stack: java.lang.Error
        13: astore 3 /* err */
        start local 3 // java.lang.Error err
        14: .line 641
            invokestatic org.glassfish.pfl.basic.logex.OperationTracer.freeze:()V
        15: .line 642
            aload 3 /* err */
            athrow
        end local 3 // java.lang.Error err
        16: .line 645
      StackMap locals:
      StackMap stack:
            aload 2 /* result */
            areturn
        end local 2 // org.glassfish.gmbal.typelib.EvaluatedType result
        end local 1 // java.lang.reflect.TypeVariable tvar
        end local 0 // org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   17     0    this  Lorg/glassfish/gmbal/typelib/TypeEvaluator$TypeEvaluationVisitor;
            0   17     1    tvar  Ljava/lang/reflect/TypeVariable;
            1   17     2  result  Lorg/glassfish/gmbal/typelib/EvaluatedType;
            4   12     3  bounds  [Ljava/lang/reflect/Type;
           14   16     3     err  Ljava/lang/Error;
      Exception table:
        from    to  target  type
           1    12      13  Class java.lang.Error
    RuntimeVisibleAnnotations: 
      org.glassfish.gmbal.impl.trace.TraceTypelib()
    MethodParameters:
      Name  Flags
      tvar  

  private org.glassfish.gmbal.typelib.EvaluatedType getCorrectDeclaration(org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor$OrderedResult<java.lang.String, org.glassfish.gmbal.typelib.EvaluatedType>, java.lang.Class, org.glassfish.gmbal.typelib.EvaluatedClassDeclaration);
    descriptor: (Lorg/glassfish/gmbal/typelib/TypeEvaluator$TypeEvaluationVisitor$OrderedResult;Ljava/lang/Class;Lorg/glassfish/gmbal/typelib/EvaluatedClassDeclaration;)Lorg/glassfish/gmbal/typelib/EvaluatedType;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=4
        start local 0 // org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor this
        start local 1 // org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor$OrderedResult bindings
        start local 2 // java.lang.Class decl
        start local 3 // org.glassfish.gmbal.typelib.EvaluatedClassDeclaration newDecl
         0: .line 653
            aconst_null
            astore 4 /* result */
        start local 4 // org.glassfish.gmbal.typelib.EvaluatedType result
         1: .line 656
            aload 1 /* bindings */
            invokevirtual org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor$OrderedResult.getList:()Ljava/util/List;
            astore 5 /* blist */
        start local 5 // java.util.List blist
         2: .line 657
            new org.glassfish.gmbal.typelib.TypeEvaluator$EvalMapKey
            dup
            aload 2 /* decl */
            aload 5 /* blist */
            invokespecial org.glassfish.gmbal.typelib.TypeEvaluator$EvalMapKey.<init>:(Ljava/lang/Class;Ljava/util/List;)V
            astore 6 /* key */
        start local 6 // org.glassfish.gmbal.typelib.TypeEvaluator$EvalMapKey key
         3: .line 658
            aload 5 /* blist */
            invokeinterface java.util.List.size:()I
            ifle 5
         4: .line 659
            aload 3 /* newDecl */
            aload 5 /* blist */
            invokeinterface org.glassfish.gmbal.typelib.EvaluatedClassDeclaration.instantiations:(Ljava/util/List;)V
         5: .line 662
      StackMap locals: org.glassfish.gmbal.typelib.EvaluatedType java.util.List org.glassfish.gmbal.typelib.TypeEvaluator$EvalMapKey
      StackMap stack:
            getstatic org.glassfish.gmbal.typelib.TypeEvaluator.evalClassMap:Ljava/util/Map;
            aload 6 /* key */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.glassfish.gmbal.typelib.EvaluatedType
            astore 4 /* result */
         6: .line 663
            aload 4 /* result */
            ifnonnull 12
         7: .line 664
            aload 0 /* this */
            ldc "No result in evalClassMap"
            invokevirtual org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor.message:(Ljava/lang/String;)V
         8: .line 666
            getstatic org.glassfish.gmbal.typelib.TypeEvaluator.evalClassMap:Ljava/util/Map;
            aload 6 /* key */
            aload 3 /* newDecl */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         9: .line 668
            aload 0 /* this */
            aload 3 /* newDecl */
            aload 1 /* bindings */
            invokevirtual org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor$OrderedResult.getMap:()Ljava/util/Map;
            aload 2 /* decl */
            invokevirtual org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor.processClass:(Lorg/glassfish/gmbal/typelib/EvaluatedClassDeclaration;Ljava/util/Map;Ljava/lang/Class;)V
        10: .line 670
            aload 3 /* newDecl */
            astore 4 /* result */
        11: .line 671
            goto 17
        12: .line 672
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "Found result in evalClassMap"
            invokevirtual org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor.message:(Ljava/lang/String;)V
        end local 6 // org.glassfish.gmbal.typelib.TypeEvaluator$EvalMapKey key
        end local 5 // java.util.List blist
        13: .line 674
            goto 17
      StackMap locals: org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor$OrderedResult java.lang.Class org.glassfish.gmbal.typelib.EvaluatedClassDeclaration org.glassfish.gmbal.typelib.EvaluatedType
      StackMap stack: java.lang.Error
        14: astore 5 /* err */
        start local 5 // java.lang.Error err
        15: .line 675
            invokestatic org.glassfish.pfl.basic.logex.OperationTracer.freeze:()V
        16: .line 676
            aload 5 /* err */
            athrow
        end local 5 // java.lang.Error err
        17: .line 679
      StackMap locals:
      StackMap stack:
            aload 4 /* result */
            areturn
        end local 4 // org.glassfish.gmbal.typelib.EvaluatedType result
        end local 3 // org.glassfish.gmbal.typelib.EvaluatedClassDeclaration newDecl
        end local 2 // java.lang.Class decl
        end local 1 // org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor$OrderedResult bindings
        end local 0 // org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   18     0      this  Lorg/glassfish/gmbal/typelib/TypeEvaluator$TypeEvaluationVisitor;
            0   18     1  bindings  Lorg/glassfish/gmbal/typelib/TypeEvaluator$TypeEvaluationVisitor$OrderedResult<Ljava/lang/String;Lorg/glassfish/gmbal/typelib/EvaluatedType;>;
            0   18     2      decl  Ljava/lang/Class;
            0   18     3   newDecl  Lorg/glassfish/gmbal/typelib/EvaluatedClassDeclaration;
            1   18     4    result  Lorg/glassfish/gmbal/typelib/EvaluatedType;
            2   13     5     blist  Ljava/util/List<Lorg/glassfish/gmbal/typelib/EvaluatedType;>;
            3   13     6       key  Lorg/glassfish/gmbal/typelib/TypeEvaluator$EvalMapKey;
           15   17     5       err  Ljava/lang/Error;
      Exception table:
        from    to  target  type
           1    13      14  Class java.lang.Error
    Signature: (Lorg/glassfish/gmbal/typelib/TypeEvaluator$TypeEvaluationVisitor$OrderedResult<Ljava/lang/String;Lorg/glassfish/gmbal/typelib/EvaluatedType;>;Ljava/lang/Class;Lorg/glassfish/gmbal/typelib/EvaluatedClassDeclaration;)Lorg/glassfish/gmbal/typelib/EvaluatedType;
    RuntimeVisibleAnnotations: 
      org.glassfish.gmbal.impl.trace.TraceTypelib()
    MethodParameters:
          Name  Flags
      bindings  
      decl      
      newDecl   

  private void processClass(org.glassfish.gmbal.typelib.EvaluatedClassDeclaration, java.util.Map<java.lang.String, org.glassfish.gmbal.typelib.EvaluatedType>, java.lang.Class);
    descriptor: (Lorg/glassfish/gmbal/typelib/EvaluatedClassDeclaration;Ljava/util/Map;Ljava/lang/Class;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=8, args_size=4
        start local 0 // org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor this
        start local 1 // org.glassfish.gmbal.typelib.EvaluatedClassDeclaration newDecl
        start local 2 // java.util.Map bindings
        start local 3 // java.lang.Class decl
         0: .line 686
            aload 0 /* this */
            getfield org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor.display:Lorg/glassfish/pfl/basic/contain/Display;
            invokevirtual org.glassfish.pfl.basic.contain.Display.enterScope:()V
         1: .line 687
            aload 0 /* this */
            getfield org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor.display:Lorg/glassfish/pfl/basic/contain/Display;
            aload 2 /* bindings */
            invokevirtual org.glassfish.pfl.basic.contain.Display.bind:(Ljava/util/Map;)V
         2: .line 691
            aload 0 /* this */
            aload 3 /* decl */
            invokevirtual org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor.getInheritance:(Ljava/lang/Class;)Ljava/util/List;
         3: .line 692
            new org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor$2
            dup
            aload 0 /* this */
            invokespecial org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor$2.<init>:(Lorg/glassfish/gmbal/typelib/TypeEvaluator$TypeEvaluationVisitor;)V
         4: .line 691
            invokestatic org.glassfish.pfl.basic.algorithm.Algorithms.map:(Ljava/util/List;Lorg/glassfish/pfl/basic/func/UnaryFunction;)Ljava/util/List;
         5: .line 690
            astore 4 /* inheritance */
        start local 4 // java.util.List inheritance
         6: .line 697
            aload 0 /* this */
            ldc "inheritance"
            aload 4 /* inheritance */
            invokevirtual org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor.describe:(Ljava/lang/String;Ljava/lang/Object;)V
         7: .line 699
            aload 1 /* newDecl */
            aload 4 /* inheritance */
            invokeinterface org.glassfish.gmbal.typelib.EvaluatedClassDeclaration.inheritance:(Ljava/util/List;)V
         8: .line 702
            aload 3 /* decl */
            invokestatic org.glassfish.gmbal.typelib.TypeEvaluator.getDeclaredFields:(Ljava/lang/Class;)Ljava/util/List;
         9: .line 703
            new org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor$3
            dup
            aload 0 /* this */
            aload 1 /* newDecl */
            invokespecial org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor$3.<init>:(Lorg/glassfish/gmbal/typelib/TypeEvaluator$TypeEvaluationVisitor;Lorg/glassfish/gmbal/typelib/EvaluatedClassDeclaration;)V
        10: .line 701
            invokestatic org.glassfish.pfl.basic.algorithm.Algorithms.map:(Ljava/util/List;Lorg/glassfish/pfl/basic/func/UnaryFunction;)Ljava/util/List;
            astore 5 /* newFields */
        start local 5 // java.util.List newFields
        11: .line 708
            aload 1 /* newDecl */
            aload 5 /* newFields */
            invokeinterface org.glassfish.gmbal.typelib.EvaluatedClassDeclaration.fields:(Ljava/util/List;)V
        12: .line 711
            aload 3 /* decl */
            invokestatic org.glassfish.gmbal.typelib.TypeEvaluator.getDeclaredMethods:(Ljava/lang/Class;)Ljava/util/List;
        13: .line 712
            new org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor$4
            dup
            aload 0 /* this */
            aload 1 /* newDecl */
            invokespecial org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor$4.<init>:(Lorg/glassfish/gmbal/typelib/TypeEvaluator$TypeEvaluationVisitor;Lorg/glassfish/gmbal/typelib/EvaluatedClassDeclaration;)V
        14: .line 710
            invokestatic org.glassfish.pfl.basic.algorithm.Algorithms.map:(Ljava/util/List;Lorg/glassfish/pfl/basic/func/UnaryFunction;)Ljava/util/List;
            astore 6 /* newMethods */
        start local 6 // java.util.List newMethods
        15: .line 719
            aload 1 /* newDecl */
            aload 6 /* newMethods */
            invokeinterface org.glassfish.gmbal.typelib.EvaluatedClassDeclaration.methods:(Ljava/util/List;)V
        16: .line 720
            aload 1 /* newDecl */
            invokeinterface org.glassfish.gmbal.typelib.EvaluatedClassDeclaration.freeze:()V
        17: .line 722
            aload 0 /* this */
            ldc "newDecl"
            aload 1 /* newDecl */
            invokevirtual org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor.describe:(Ljava/lang/String;Ljava/lang/Object;)V
        end local 6 // java.util.List newMethods
        end local 5 // java.util.List newFields
        end local 4 // java.util.List inheritance
        18: .line 723
            goto 25
      StackMap locals:
      StackMap stack: java.lang.Error
        19: astore 4 /* err */
        start local 4 // java.lang.Error err
        20: .line 724
            invokestatic org.glassfish.pfl.basic.logex.OperationTracer.freeze:()V
        21: .line 725
            aload 4 /* err */
            athrow
        end local 4 // java.lang.Error err
        22: .line 726
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 7
        23: .line 727
            aload 0 /* this */
            getfield org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor.display:Lorg/glassfish/pfl/basic/contain/Display;
            invokevirtual org.glassfish.pfl.basic.contain.Display.exitScope:()V
        24: .line 728
            aload 7
            athrow
        25: .line 727
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor.display:Lorg/glassfish/pfl/basic/contain/Display;
            invokevirtual org.glassfish.pfl.basic.contain.Display.exitScope:()V
        26: .line 729
            return
        end local 3 // java.lang.Class decl
        end local 2 // java.util.Map bindings
        end local 1 // org.glassfish.gmbal.typelib.EvaluatedClassDeclaration newDecl
        end local 0 // org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   27     0         this  Lorg/glassfish/gmbal/typelib/TypeEvaluator$TypeEvaluationVisitor;
            0   27     1      newDecl  Lorg/glassfish/gmbal/typelib/EvaluatedClassDeclaration;
            0   27     2     bindings  Ljava/util/Map<Ljava/lang/String;Lorg/glassfish/gmbal/typelib/EvaluatedType;>;
            0   27     3         decl  Ljava/lang/Class;
            6   18     4  inheritance  Ljava/util/List<Lorg/glassfish/gmbal/typelib/EvaluatedClassDeclaration;>;
           11   18     5    newFields  Ljava/util/List<Lorg/glassfish/gmbal/typelib/EvaluatedFieldDeclaration;>;
           15   18     6   newMethods  Ljava/util/List<Lorg/glassfish/gmbal/typelib/EvaluatedMethodDeclaration;>;
           20   22     4          err  Ljava/lang/Error;
      Exception table:
        from    to  target  type
           2    18      19  Class java.lang.Error
           2    22      22  any
    Signature: (Lorg/glassfish/gmbal/typelib/EvaluatedClassDeclaration;Ljava/util/Map<Ljava/lang/String;Lorg/glassfish/gmbal/typelib/EvaluatedType;>;Ljava/lang/Class;)V
    RuntimeVisibleAnnotations: 
      org.glassfish.gmbal.impl.trace.TraceTypelib()
    MethodParameters:
          Name  Flags
      newDecl   final
      bindings  final
      decl      final

  private java.util.List<java.lang.reflect.Type> getInheritance(java.lang.Class);
    descriptor: (Ljava/lang/Class;)Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor this
        start local 1 // java.lang.Class cls
         0: .line 733
            new java.util.ArrayList
            dup
            iconst_0
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 2 /* result */
        start local 2 // java.util.List result
         1: .line 735
            aload 2 /* result */
            aload 1 /* cls */
            invokevirtual java.lang.Class.getGenericSuperclass:()Ljava/lang/reflect/Type;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         2: .line 736
            aload 2 /* result */
            aload 1 /* cls */
            invokevirtual java.lang.Class.getGenericInterfaces:()[Ljava/lang/reflect/Type;
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
         3: .line 737
            goto 7
      StackMap locals: org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor java.lang.Class java.util.List
      StackMap stack: java.lang.Error
         4: astore 3 /* err */
        start local 3 // java.lang.Error err
         5: .line 738
            invokestatic org.glassfish.pfl.basic.logex.OperationTracer.freeze:()V
         6: .line 739
            aload 3 /* err */
            athrow
        end local 3 // java.lang.Error err
         7: .line 741
      StackMap locals:
      StackMap stack:
            aload 2 /* result */
            areturn
        end local 2 // java.util.List result
        end local 1 // java.lang.Class cls
        end local 0 // org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lorg/glassfish/gmbal/typelib/TypeEvaluator$TypeEvaluationVisitor;
            0    8     1     cls  Ljava/lang/Class;
            1    8     2  result  Ljava/util/List<Ljava/lang/reflect/Type;>;
            5    7     3     err  Ljava/lang/Error;
      Exception table:
        from    to  target  type
           1     3       4  Class java.lang.Error
    Signature: (Ljava/lang/Class;)Ljava/util/List<Ljava/lang/reflect/Type;>;
    RuntimeVisibleAnnotations: 
      org.glassfish.gmbal.impl.trace.TraceTypelib()
    MethodParameters:
      Name  Flags
      cls   

  private org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor$OrderedResult<java.lang.String, org.glassfish.gmbal.typelib.EvaluatedType> getBindings(java.lang.Class);
    descriptor: (Ljava/lang/Class;)Lorg/glassfish/gmbal/typelib/TypeEvaluator$TypeEvaluationVisitor$OrderedResult;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=8, args_size=2
        start local 0 // org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor this
        start local 1 // java.lang.Class decl
         0: .line 746
            new org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor$OrderedResult
            dup
         1: .line 745
            invokespecial org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor$OrderedResult.<init>:()V
            astore 2 /* result */
        start local 2 // org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor$OrderedResult result
         2: .line 748
            aload 1 /* decl */
            invokevirtual java.lang.Class.getTypeParameters:()[Ljava/lang/reflect/TypeVariable;
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 7
      StackMap locals: org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor java.lang.Class org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor$OrderedResult top int int java.lang.reflect.TypeVariable[]
      StackMap stack:
         3: aload 6
            iload 4
            aaload
            astore 3 /* tv */
        start local 3 // java.lang.reflect.TypeVariable tv
         4: .line 749
            aload 0 /* this */
            aload 3 /* tv */
            invokevirtual org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor.lookup:(Ljava/lang/reflect/TypeVariable;)Lorg/glassfish/gmbal/typelib/EvaluatedType;
            astore 7 /* res */
        start local 7 // org.glassfish.gmbal.typelib.EvaluatedType res
         5: .line 750
            aload 2 /* result */
            aload 3 /* tv */
            invokeinterface java.lang.reflect.TypeVariable.getName:()Ljava/lang/String;
            aload 7 /* res */
            invokevirtual org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor$OrderedResult.add:(Ljava/lang/Object;Ljava/lang/Object;)V
        end local 7 // org.glassfish.gmbal.typelib.EvaluatedType res
        end local 3 // java.lang.reflect.TypeVariable tv
         6: .line 748
            iinc 4 1
      StackMap locals:
      StackMap stack:
         7: iload 4
            iload 5
            if_icmplt 3
         8: .line 753
            aload 2 /* result */
            areturn
        end local 2 // org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor$OrderedResult result
        end local 1 // java.lang.Class decl
        end local 0 // org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0    this  Lorg/glassfish/gmbal/typelib/TypeEvaluator$TypeEvaluationVisitor;
            0    9     1    decl  Ljava/lang/Class;
            2    9     2  result  Lorg/glassfish/gmbal/typelib/TypeEvaluator$TypeEvaluationVisitor$OrderedResult<Ljava/lang/String;Lorg/glassfish/gmbal/typelib/EvaluatedType;>;
            4    6     3      tv  Ljava/lang/reflect/TypeVariable;
            5    6     7     res  Lorg/glassfish/gmbal/typelib/EvaluatedType;
    Signature: (Ljava/lang/Class;)Lorg/glassfish/gmbal/typelib/TypeEvaluator$TypeEvaluationVisitor$OrderedResult<Ljava/lang/String;Lorg/glassfish/gmbal/typelib/EvaluatedType;>;
    MethodParameters:
      Name  Flags
      decl  

  private org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor$OrderedResult<java.lang.String, org.glassfish.gmbal.typelib.EvaluatedType> getBindings(java.lang.reflect.ParameterizedType);
    descriptor: (Ljava/lang/reflect/ParameterizedType;)Lorg/glassfish/gmbal/typelib/TypeEvaluator$TypeEvaluationVisitor$OrderedResult;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor this
        start local 1 // java.lang.reflect.ParameterizedType pt
         0: .line 758
            new org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor$OrderedResult
            dup
         1: .line 757
            invokespecial org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor$OrderedResult.<init>:()V
            astore 2 /* result */
        start local 2 // org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor$OrderedResult result
         2: .line 761
            aload 1 /* pt */
            invokeinterface java.lang.reflect.ParameterizedType.getActualTypeArguments:()[Ljava/lang/reflect/Type;
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
         3: .line 760
            astore 3 /* types */
        start local 3 // java.util.Iterator types
         4: .line 763
            aload 1 /* pt */
            invokeinterface java.lang.reflect.ParameterizedType.getRawType:()Ljava/lang/reflect/Type;
            checkcast java.lang.Class
            invokevirtual java.lang.Class.getTypeParameters:()[Ljava/lang/reflect/TypeVariable;
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
         5: .line 762
            astore 4 /* tvars */
        start local 4 // java.util.Iterator tvars
         6: .line 765
            goto 10
         7: .line 766
      StackMap locals: org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor$OrderedResult java.util.Iterator java.util.Iterator
      StackMap stack:
            aload 3 /* types */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.reflect.Type
            astore 5 /* type */
        start local 5 // java.lang.reflect.Type type
         8: .line 767
            aload 4 /* tvars */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.reflect.TypeVariable
            astore 6 /* tvar */
        start local 6 // java.lang.reflect.TypeVariable tvar
         9: .line 768
            aload 2 /* result */
            aload 6 /* tvar */
            invokeinterface java.lang.reflect.TypeVariable.getName:()Ljava/lang/String;
            aload 0 /* this */
            aload 5 /* type */
            invokevirtual org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor.evaluateType:(Ljava/lang/Object;)Lorg/glassfish/gmbal/typelib/EvaluatedType;
            invokevirtual org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor$OrderedResult.add:(Ljava/lang/Object;Ljava/lang/Object;)V
        end local 6 // java.lang.reflect.TypeVariable tvar
        end local 5 // java.lang.reflect.Type type
        10: .line 765
      StackMap locals:
      StackMap stack:
            aload 3 /* types */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifeq 11
            aload 4 /* tvars */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        11: .line 771
      StackMap locals:
      StackMap stack:
            aload 3 /* types */
            invokeinterface java.util.Iterator.hasNext:()Z
            aload 4 /* tvars */
            invokeinterface java.util.Iterator.hasNext:()Z
            if_icmpeq 13
        12: .line 772
            getstatic org.glassfish.gmbal.typelib.Exceptions.self:Lorg/glassfish/gmbal/typelib/Exceptions;
            aload 1 /* pt */
            invokeinterface org.glassfish.gmbal.typelib.Exceptions.listsNotTheSameLengthInParamType:(Ljava/lang/reflect/ParameterizedType;)Ljava/lang/IllegalArgumentException;
            athrow
        13: .line 775
      StackMap locals:
      StackMap stack:
            aload 2 /* result */
            areturn
        end local 4 // java.util.Iterator tvars
        end local 3 // java.util.Iterator types
        end local 2 // org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor$OrderedResult result
        end local 1 // java.lang.reflect.ParameterizedType pt
        end local 0 // org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   14     0    this  Lorg/glassfish/gmbal/typelib/TypeEvaluator$TypeEvaluationVisitor;
            0   14     1      pt  Ljava/lang/reflect/ParameterizedType;
            2   14     2  result  Lorg/glassfish/gmbal/typelib/TypeEvaluator$TypeEvaluationVisitor$OrderedResult<Ljava/lang/String;Lorg/glassfish/gmbal/typelib/EvaluatedType;>;
            4   14     3   types  Ljava/util/Iterator<Ljava/lang/reflect/Type;>;
            6   14     4   tvars  Ljava/util/Iterator<Ljava/lang/reflect/TypeVariable;>;
            8   10     5    type  Ljava/lang/reflect/Type;
            9   10     6    tvar  Ljava/lang/reflect/TypeVariable;
    Signature: (Ljava/lang/reflect/ParameterizedType;)Lorg/glassfish/gmbal/typelib/TypeEvaluator$TypeEvaluationVisitor$OrderedResult<Ljava/lang/String;Lorg/glassfish/gmbal/typelib/EvaluatedType;>;
    MethodParameters:
      Name  Flags
      pt    
}
SourceFile: "TypeEvaluator.java"
NestHost: org.glassfish.gmbal.typelib.TypeEvaluator
InnerClasses:
  private EvalMapKey = org.glassfish.gmbal.typelib.TypeEvaluator$EvalMapKey of org.glassfish.gmbal.typelib.TypeEvaluator
  private PartialDefinitions = org.glassfish.gmbal.typelib.TypeEvaluator$PartialDefinitions of org.glassfish.gmbal.typelib.TypeEvaluator
  private TypeEvaluationVisitor = org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor of org.glassfish.gmbal.typelib.TypeEvaluator
  org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor$1
  org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor$2
  org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor$3
  org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor$4
  public OrderedResult = org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor$OrderedResult of org.glassfish.gmbal.typelib.TypeEvaluator$TypeEvaluationVisitor
    RuntimeVisibleAnnotations: 
      org.glassfish.gmbal.impl.trace.TraceTypelibEval()
      org.glassfish.gmbal.impl.trace.TraceTypelib()