class com.sun.tools.javac.code.Types$TypeProjection$TypeArgumentProjection extends com.sun.tools.javac.code.Types$TypeMapping<com.sun.tools.javac.code.Types$ProjectionKind>
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: com.sun.tools.javac.code.Types$TypeProjection$TypeArgumentProjection
  super_class: com.sun.tools.javac.code.Types$TypeMapping
{
  com.sun.tools.javac.code.Type site;
    descriptor: Lcom/sun/tools/javac/code/Type;
    flags: (0x0000) 

  com.sun.tools.javac.code.Type declaredBound;
    descriptor: Lcom/sun/tools/javac/code/Type;
    flags: (0x0000) 

  final com.sun.tools.javac.code.Types$TypeProjection this$1;
    descriptor: Lcom/sun/tools/javac/code/Types$TypeProjection;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  private static volatile int[] $SWITCH_TABLE$com$sun$tools$javac$code$BoundKind;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  void <init>(com.sun.tools.javac.code.Types$TypeProjection, com.sun.tools.javac.code.Type, com.sun.tools.javac.code.Type);
    descriptor: (Lcom/sun/tools/javac/code/Types$TypeProjection;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // com.sun.tools.javac.code.Types$TypeProjection$TypeArgumentProjection this
        start local 2 // com.sun.tools.javac.code.Type site
        start local 3 // com.sun.tools.javac.code.Type declaredBound
         0: .line 345
            aload 0 /* this */
            aload 1
            putfield com.sun.tools.javac.code.Types$TypeProjection$TypeArgumentProjection.this$1:Lcom/sun/tools/javac/code/Types$TypeProjection;
            aload 0 /* this */
            invokespecial com.sun.tools.javac.code.Types$TypeMapping.<init>:()V
         1: .line 346
            aload 0 /* this */
            aload 2 /* site */
            putfield com.sun.tools.javac.code.Types$TypeProjection$TypeArgumentProjection.site:Lcom/sun/tools/javac/code/Type;
         2: .line 347
            aload 0 /* this */
            aload 3 /* declaredBound */
            putfield com.sun.tools.javac.code.Types$TypeProjection$TypeArgumentProjection.declaredBound:Lcom/sun/tools/javac/code/Type;
         3: .line 348
            return
        end local 3 // com.sun.tools.javac.code.Type declaredBound
        end local 2 // com.sun.tools.javac.code.Type site
        end local 0 // com.sun.tools.javac.code.Types$TypeProjection$TypeArgumentProjection this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Lcom/sun/tools/javac/code/Types$TypeProjection$TypeArgumentProjection;
            0    4     2           site  Lcom/sun/tools/javac/code/Type;
            0    4     3  declaredBound  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
               Name  Flags
      this$0         final
      site           
      declaredBound  

  public com.sun.tools.javac.code.Type visitType(com.sun.tools.javac.code.Type, com.sun.tools.javac.code.Types$ProjectionKind);
    descriptor: (Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Types$ProjectionKind;)Lcom/sun/tools/javac/code/Type;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=8, args_size=3
        start local 0 // com.sun.tools.javac.code.Types$TypeProjection$TypeArgumentProjection this
        start local 1 // com.sun.tools.javac.code.Type t
        start local 2 // com.sun.tools.javac.code.Types$ProjectionKind pkind
         0: .line 353
            aload 2 /* pkind */
            getstatic com.sun.tools.javac.code.Types$ProjectionKind.DOWNWARDS:Lcom/sun/tools/javac/code/Types$ProjectionKind;
            if_acmpne 2
         1: .line 355
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types$TypeProjection$TypeArgumentProjection.this$1:Lcom/sun/tools/javac/code/Types$TypeProjection;
            invokestatic com.sun.tools.javac.code.Types$TypeProjection.access$4:(Lcom/sun/tools/javac/code/Types$TypeProjection;)Lcom/sun/tools/javac/code/Types;
            getfield com.sun.tools.javac.code.Types.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.botType:Lcom/sun/tools/javac/code/Type;
            areturn
         2: .line 357
      StackMap locals:
      StackMap stack:
            aload 1 /* t */
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types$TypeProjection$TypeArgumentProjection.this$1:Lcom/sun/tools/javac/code/Types$TypeProjection;
            getstatic com.sun.tools.javac.code.Types$ProjectionKind.UPWARDS:Lcom/sun/tools/javac/code/Types$ProjectionKind;
            invokevirtual com.sun.tools.javac.code.Type.map:(Lcom/sun/tools/javac/code/Types$TypeMapping;Ljava/lang/Object;)Lcom/sun/tools/javac/code/Type;
            astore 3 /* upper */
        start local 3 // com.sun.tools.javac.code.Type upper
         3: .line 358
            aload 1 /* t */
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types$TypeProjection$TypeArgumentProjection.this$1:Lcom/sun/tools/javac/code/Types$TypeProjection;
            getstatic com.sun.tools.javac.code.Types$ProjectionKind.DOWNWARDS:Lcom/sun/tools/javac/code/Types$ProjectionKind;
            invokevirtual com.sun.tools.javac.code.Type.map:(Lcom/sun/tools/javac/code/Types$TypeMapping;Ljava/lang/Object;)Lcom/sun/tools/javac/code/Type;
            astore 4 /* lower */
        start local 4 // com.sun.tools.javac.code.Type lower
         4: .line 359
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types$TypeProjection$TypeArgumentProjection.site:Lcom/sun/tools/javac/code/Type;
            getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            getfield com.sun.tools.javac.code.Symbol$TypeSymbol.type:Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.code.Type.getTypeArguments:()Lcom/sun/tools/javac/util/List;
            astore 5 /* formals */
        start local 5 // com.sun.tools.javac.util.List formals
         5: .line 362
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types$TypeProjection$TypeArgumentProjection.this$1:Lcom/sun/tools/javac/code/Types$TypeProjection;
            invokestatic com.sun.tools.javac.code.Types$TypeProjection.access$4:(Lcom/sun/tools/javac/code/Types$TypeProjection;)Lcom/sun/tools/javac/code/Types;
            aload 3 /* upper */
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types$TypeProjection$TypeArgumentProjection.this$1:Lcom/sun/tools/javac/code/Types$TypeProjection;
            invokestatic com.sun.tools.javac.code.Types$TypeProjection.access$4:(Lcom/sun/tools/javac/code/Types$TypeProjection;)Lcom/sun/tools/javac/code/Types;
            getfield com.sun.tools.javac.code.Types.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.objectType:Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.code.Types.isSameType:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
            ifne 11
         6: .line 363
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types$TypeProjection$TypeArgumentProjection.declaredBound:Lcom/sun/tools/javac/code/Type;
            aload 5 /* formals */
            invokevirtual com.sun.tools.javac.code.Type.containsAny:(Lcom/sun/tools/javac/util/List;)Z
            ifne 8
         7: .line 364
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types$TypeProjection$TypeArgumentProjection.this$1:Lcom/sun/tools/javac/code/Types$TypeProjection;
            invokestatic com.sun.tools.javac.code.Types$TypeProjection.access$4:(Lcom/sun/tools/javac/code/Types$TypeProjection;)Lcom/sun/tools/javac/code/Types;
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types$TypeProjection$TypeArgumentProjection.declaredBound:Lcom/sun/tools/javac/code/Type;
            aload 3 /* upper */
            invokevirtual com.sun.tools.javac.code.Types.isSubtype:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
            ifne 11
         8: .line 365
      StackMap locals: com.sun.tools.javac.code.Type com.sun.tools.javac.code.Type com.sun.tools.javac.util.List
      StackMap stack:
            aload 3 /* upper */
            astore 7 /* bound */
        start local 7 // com.sun.tools.javac.code.Type bound
         9: .line 366
            getstatic com.sun.tools.javac.code.BoundKind.EXTENDS:Lcom/sun/tools/javac/code/BoundKind;
            astore 6 /* bk */
        start local 6 // com.sun.tools.javac.code.BoundKind bk
        10: .line 367
            goto 17
        end local 7 // com.sun.tools.javac.code.Type bound
        end local 6 // com.sun.tools.javac.code.BoundKind bk
      StackMap locals:
      StackMap stack:
        11: aload 4 /* lower */
            getstatic com.sun.tools.javac.code.TypeTag.BOT:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
            ifne 15
        12: .line 368
            aload 4 /* lower */
            astore 7 /* bound */
        start local 7 // com.sun.tools.javac.code.Type bound
        13: .line 369
            getstatic com.sun.tools.javac.code.BoundKind.SUPER:Lcom/sun/tools/javac/code/BoundKind;
            astore 6 /* bk */
        start local 6 // com.sun.tools.javac.code.BoundKind bk
        14: .line 370
            goto 17
        end local 7 // com.sun.tools.javac.code.Type bound
        end local 6 // com.sun.tools.javac.code.BoundKind bk
        15: .line 371
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types$TypeProjection$TypeArgumentProjection.this$1:Lcom/sun/tools/javac/code/Types$TypeProjection;
            invokestatic com.sun.tools.javac.code.Types$TypeProjection.access$4:(Lcom/sun/tools/javac/code/Types$TypeProjection;)Lcom/sun/tools/javac/code/Types;
            getfield com.sun.tools.javac.code.Types.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.objectType:Lcom/sun/tools/javac/code/Type;
            astore 7 /* bound */
        start local 7 // com.sun.tools.javac.code.Type bound
        16: .line 372
            getstatic com.sun.tools.javac.code.BoundKind.UNBOUND:Lcom/sun/tools/javac/code/BoundKind;
            astore 6 /* bk */
        start local 6 // com.sun.tools.javac.code.BoundKind bk
        17: .line 374
      StackMap locals: com.sun.tools.javac.code.BoundKind com.sun.tools.javac.code.Type
      StackMap stack:
            aload 0 /* this */
            aload 7 /* bound */
            aload 6 /* bk */
            invokevirtual com.sun.tools.javac.code.Types$TypeProjection$TypeArgumentProjection.makeWildcard:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/BoundKind;)Lcom/sun/tools/javac/code/Type;
            areturn
        end local 7 // com.sun.tools.javac.code.Type bound
        end local 6 // com.sun.tools.javac.code.BoundKind bk
        end local 5 // com.sun.tools.javac.util.List formals
        end local 4 // com.sun.tools.javac.code.Type lower
        end local 3 // com.sun.tools.javac.code.Type upper
        end local 2 // com.sun.tools.javac.code.Types$ProjectionKind pkind
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.code.Types$TypeProjection$TypeArgumentProjection this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   18     0     this  Lcom/sun/tools/javac/code/Types$TypeProjection$TypeArgumentProjection;
            0   18     1        t  Lcom/sun/tools/javac/code/Type;
            0   18     2    pkind  Lcom/sun/tools/javac/code/Types$ProjectionKind;
            3   18     3    upper  Lcom/sun/tools/javac/code/Type;
            4   18     4    lower  Lcom/sun/tools/javac/code/Type;
            5   18     5  formals  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
           10   11     6       bk  Lcom/sun/tools/javac/code/BoundKind;
           14   15     6       bk  Lcom/sun/tools/javac/code/BoundKind;
           17   18     6       bk  Lcom/sun/tools/javac/code/BoundKind;
            9   11     7    bound  Lcom/sun/tools/javac/code/Type;
           13   15     7    bound  Lcom/sun/tools/javac/code/Type;
           16   18     7    bound  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
       Name  Flags
      t      
      pkind  

  public com.sun.tools.javac.code.Type visitWildcardType(com.sun.tools.javac.code.Type$WildcardType, com.sun.tools.javac.code.Types$ProjectionKind);
    descriptor: (Lcom/sun/tools/javac/code/Type$WildcardType;Lcom/sun/tools/javac/code/Types$ProjectionKind;)Lcom/sun/tools/javac/code/Type;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // com.sun.tools.javac.code.Types$TypeProjection$TypeArgumentProjection this
        start local 1 // com.sun.tools.javac.code.Type$WildcardType wt
        start local 2 // com.sun.tools.javac.code.Types$ProjectionKind pkind
         0: .line 380
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types$TypeProjection$TypeArgumentProjection.this$1:Lcom/sun/tools/javac/code/Types$TypeProjection;
            invokestatic com.sun.tools.javac.code.Types$TypeProjection.access$4:(Lcom/sun/tools/javac/code/Types$TypeProjection;)Lcom/sun/tools/javac/code/Types;
            getfield com.sun.tools.javac.code.Types.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.botType:Lcom/sun/tools/javac/code/Type;
            astore 3 /* bound */
        start local 3 // com.sun.tools.javac.code.Type bound
         1: .line 381
            aload 1 /* wt */
            getfield com.sun.tools.javac.code.Type$WildcardType.kind:Lcom/sun/tools/javac/code/BoundKind;
            astore 4 /* bk */
        start local 4 // com.sun.tools.javac.code.BoundKind bk
         2: .line 382
            invokestatic com.sun.tools.javac.code.Types$TypeProjection$TypeArgumentProjection.$SWITCH_TABLE$com$sun$tools$javac$code$BoundKind:()[I
            aload 1 /* wt */
            getfield com.sun.tools.javac.code.Type$WildcardType.kind:Lcom/sun/tools/javac/code/BoundKind;
            invokevirtual com.sun.tools.javac.code.BoundKind.ordinal:()I
            iaload
            tableswitch { // 1 - 2
                    1: 3
                    2: 6
              default: 10
          }
         3: .line 384
      StackMap locals: com.sun.tools.javac.code.Type com.sun.tools.javac.code.BoundKind
      StackMap stack:
            aload 1 /* wt */
            getfield com.sun.tools.javac.code.Type$WildcardType.type:Lcom/sun/tools/javac/code/Type;
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types$TypeProjection$TypeArgumentProjection.this$1:Lcom/sun/tools/javac/code/Types$TypeProjection;
            aload 2 /* pkind */
            invokevirtual com.sun.tools.javac.code.Type.map:(Lcom/sun/tools/javac/code/Types$TypeMapping;Ljava/lang/Object;)Lcom/sun/tools/javac/code/Type;
            astore 3 /* bound */
         4: .line 385
            aload 3 /* bound */
            getstatic com.sun.tools.javac.code.TypeTag.BOT:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
            ifeq 10
         5: .line 386
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types$TypeProjection$TypeArgumentProjection.this$1:Lcom/sun/tools/javac/code/Types$TypeProjection;
            invokestatic com.sun.tools.javac.code.Types$TypeProjection.access$4:(Lcom/sun/tools/javac/code/Types$TypeProjection;)Lcom/sun/tools/javac/code/Types;
            getfield com.sun.tools.javac.code.Types.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.botType:Lcom/sun/tools/javac/code/Type;
            areturn
         6: .line 390
      StackMap locals:
      StackMap stack:
            aload 1 /* wt */
            getfield com.sun.tools.javac.code.Type$WildcardType.type:Lcom/sun/tools/javac/code/Type;
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types$TypeProjection$TypeArgumentProjection.this$1:Lcom/sun/tools/javac/code/Types$TypeProjection;
            aload 2 /* pkind */
            invokevirtual com.sun.tools.javac.code.Types$ProjectionKind.complement:()Lcom/sun/tools/javac/code/Types$ProjectionKind;
            invokevirtual com.sun.tools.javac.code.Type.map:(Lcom/sun/tools/javac/code/Types$TypeMapping;Ljava/lang/Object;)Lcom/sun/tools/javac/code/Type;
            astore 3 /* bound */
         7: .line 391
            aload 3 /* bound */
            getstatic com.sun.tools.javac.code.TypeTag.BOT:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
            ifeq 10
         8: .line 392
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types$TypeProjection$TypeArgumentProjection.this$1:Lcom/sun/tools/javac/code/Types$TypeProjection;
            invokestatic com.sun.tools.javac.code.Types$TypeProjection.access$4:(Lcom/sun/tools/javac/code/Types$TypeProjection;)Lcom/sun/tools/javac/code/Types;
            getfield com.sun.tools.javac.code.Types.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.objectType:Lcom/sun/tools/javac/code/Type;
            astore 3 /* bound */
         9: .line 393
            getstatic com.sun.tools.javac.code.BoundKind.UNBOUND:Lcom/sun/tools/javac/code/BoundKind;
            astore 4 /* bk */
        10: .line 397
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* bound */
            aload 4 /* bk */
            invokevirtual com.sun.tools.javac.code.Types$TypeProjection$TypeArgumentProjection.makeWildcard:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/BoundKind;)Lcom/sun/tools/javac/code/Type;
            areturn
        end local 4 // com.sun.tools.javac.code.BoundKind bk
        end local 3 // com.sun.tools.javac.code.Type bound
        end local 2 // com.sun.tools.javac.code.Types$ProjectionKind pkind
        end local 1 // com.sun.tools.javac.code.Type$WildcardType wt
        end local 0 // com.sun.tools.javac.code.Types$TypeProjection$TypeArgumentProjection this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   11     0   this  Lcom/sun/tools/javac/code/Types$TypeProjection$TypeArgumentProjection;
            0   11     1     wt  Lcom/sun/tools/javac/code/Type$WildcardType;
            0   11     2  pkind  Lcom/sun/tools/javac/code/Types$ProjectionKind;
            1   11     3  bound  Lcom/sun/tools/javac/code/Type;
            2   11     4     bk  Lcom/sun/tools/javac/code/BoundKind;
    MethodParameters:
       Name  Flags
      wt     
      pkind  

  private com.sun.tools.javac.code.Type makeWildcard(com.sun.tools.javac.code.Type, com.sun.tools.javac.code.BoundKind);
    descriptor: (Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/BoundKind;)Lcom/sun/tools/javac/code/Type;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // com.sun.tools.javac.code.Types$TypeProjection$TypeArgumentProjection this
        start local 1 // com.sun.tools.javac.code.Type bound
        start local 2 // com.sun.tools.javac.code.BoundKind bk
         0: .line 401
            new com.sun.tools.javac.code.Types$TypeProjection$TypeArgumentProjection$1
            dup
            aload 0 /* this */
            aload 1 /* bound */
            aload 2 /* bk */
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types$TypeProjection$TypeArgumentProjection.this$1:Lcom/sun/tools/javac/code/Types$TypeProjection;
            invokestatic com.sun.tools.javac.code.Types$TypeProjection.access$4:(Lcom/sun/tools/javac/code/Types$TypeProjection;)Lcom/sun/tools/javac/code/Types;
            getfield com.sun.tools.javac.code.Types.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.boundClass:Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            invokespecial com.sun.tools.javac.code.Types$TypeProjection$TypeArgumentProjection$1.<init>:(Lcom/sun/tools/javac/code/Types$TypeProjection$TypeArgumentProjection;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/BoundKind;Lcom/sun/tools/javac/code/Symbol$TypeSymbol;)V
            areturn
        end local 2 // com.sun.tools.javac.code.BoundKind bk
        end local 1 // com.sun.tools.javac.code.Type bound
        end local 0 // com.sun.tools.javac.code.Types$TypeProjection$TypeArgumentProjection this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/sun/tools/javac/code/Types$TypeProjection$TypeArgumentProjection;
            0    1     1  bound  Lcom/sun/tools/javac/code/Type;
            0    1     2     bk  Lcom/sun/tools/javac/code/BoundKind;
    MethodParameters:
       Name  Flags
      bound  
      bk     

  public java.lang.Object visitWildcardType(com.sun.tools.javac.code.Type$WildcardType, java.lang.Object);
    descriptor: (Lcom/sun/tools/javac/code/Type$WildcardType;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
         0: .line 1
            aload 0
            aload 1
            aload 2
            checkcast com.sun.tools.javac.code.Types$ProjectionKind
            invokevirtual com.sun.tools.javac.code.Types$TypeProjection$TypeArgumentProjection.visitWildcardType:(Lcom/sun/tools/javac/code/Type$WildcardType;Lcom/sun/tools/javac/code/Types$ProjectionKind;)Lcom/sun/tools/javac/code/Type;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public com.sun.tools.javac.code.Type visitType(com.sun.tools.javac.code.Type, java.lang.Object);
    descriptor: (Lcom/sun/tools/javac/code/Type;Ljava/lang/Object;)Lcom/sun/tools/javac/code/Type;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
         0: .line 1
            aload 0
            aload 1
            aload 2
            checkcast com.sun.tools.javac.code.Types$ProjectionKind
            invokevirtual com.sun.tools.javac.code.Types$TypeProjection$TypeArgumentProjection.visitType:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Types$ProjectionKind;)Lcom/sun/tools/javac/code/Type;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  static int[] $SWITCH_TABLE$com$sun$tools$javac$code$BoundKind();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 340
            getstatic com.sun.tools.javac.code.Types$TypeProjection$TypeArgumentProjection.$SWITCH_TABLE$com$sun$tools$javac$code$BoundKind:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic com.sun.tools.javac.code.BoundKind.values:()[Lcom/sun/tools/javac/code/BoundKind;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic com.sun.tools.javac.code.BoundKind.EXTENDS:Lcom/sun/tools/javac/code/BoundKind;
            invokevirtual com.sun.tools.javac.code.BoundKind.ordinal:()I
            iconst_1
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic com.sun.tools.javac.code.BoundKind.SUPER:Lcom/sun/tools/javac/code/BoundKind;
            invokevirtual com.sun.tools.javac.code.BoundKind.ordinal:()I
            iconst_2
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic com.sun.tools.javac.code.BoundKind.UNBOUND:Lcom/sun/tools/javac/code/BoundKind;
            invokevirtual com.sun.tools.javac.code.BoundKind.ordinal:()I
            iconst_3
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            dup
            putstatic com.sun.tools.javac.code.Types$TypeProjection$TypeArgumentProjection.$SWITCH_TABLE$com$sun$tools$javac$code$BoundKind:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
}
Signature: Lcom/sun/tools/javac/code/Types$TypeMapping<Lcom/sun/tools/javac/code/Types$ProjectionKind;>;
SourceFile: "Types.java"
NestHost: com.sun.tools.javac.code.Types
InnerClasses:
  public abstract TypeSymbol = com.sun.tools.javac.code.Symbol$TypeSymbol of com.sun.tools.javac.code.Symbol
  public WildcardType = com.sun.tools.javac.code.Type$WildcardType of com.sun.tools.javac.code.Type
  abstract ProjectionKind = com.sun.tools.javac.code.Types$ProjectionKind of com.sun.tools.javac.code.Types
  public TypeMapping = com.sun.tools.javac.code.Types$TypeMapping of com.sun.tools.javac.code.Types
  TypeProjection = com.sun.tools.javac.code.Types$TypeProjection of com.sun.tools.javac.code.Types
  TypeArgumentProjection = com.sun.tools.javac.code.Types$TypeProjection$TypeArgumentProjection of com.sun.tools.javac.code.Types$TypeProjection
  com.sun.tools.javac.code.Types$TypeProjection$TypeArgumentProjection$1