class com.google.common.reflect.TypeToken$Bounds
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: com.google.common.reflect.TypeToken$Bounds
  super_class: java.lang.Object
{
  private final java.lang.reflect.Type[] bounds;
    descriptor: [Ljava/lang/reflect/Type;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean target;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  void <init>(java.lang.reflect.Type[], boolean);
    descriptor: ([Ljava/lang/reflect/Type;Z)V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.google.common.reflect.TypeToken$Bounds this
        start local 1 // java.lang.reflect.Type[] bounds
        start local 2 // boolean target
         0: .line 1060
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 1061
            aload 0 /* this */
            aload 1 /* bounds */
            putfield com.google.common.reflect.TypeToken$Bounds.bounds:[Ljava/lang/reflect/Type;
         2: .line 1062
            aload 0 /* this */
            iload 2 /* target */
            putfield com.google.common.reflect.TypeToken$Bounds.target:Z
         3: .line 1063
            return
        end local 2 // boolean target
        end local 1 // java.lang.reflect.Type[] bounds
        end local 0 // com.google.common.reflect.TypeToken$Bounds this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lcom/google/common/reflect/TypeToken$Bounds;
            0    4     1  bounds  [Ljava/lang/reflect/Type;
            0    4     2  target  Z
    MethodParameters:
        Name  Flags
      bounds  
      target  

  boolean isSubtypeOf(java.lang.reflect.Type);
    descriptor: (Ljava/lang/reflect/Type;)Z
    flags: (0x0000) 
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // com.google.common.reflect.TypeToken$Bounds this
        start local 1 // java.lang.reflect.Type supertype
         0: .line 1066
            aload 0 /* this */
            getfield com.google.common.reflect.TypeToken$Bounds.bounds:[Ljava/lang/reflect/Type;
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 5
      StackMap locals: com.google.common.reflect.TypeToken$Bounds java.lang.reflect.Type top int int java.lang.reflect.Type[]
      StackMap stack:
         1: aload 5
            iload 3
            aaload
            astore 2 /* bound */
        start local 2 // java.lang.reflect.Type bound
         2: .line 1067
            aload 2 /* bound */
            invokestatic com.google.common.reflect.TypeToken.of:(Ljava/lang/reflect/Type;)Lcom/google/common/reflect/TypeToken;
            aload 1 /* supertype */
            invokevirtual com.google.common.reflect.TypeToken.isSubtypeOf:(Ljava/lang/reflect/Type;)Z
            aload 0 /* this */
            getfield com.google.common.reflect.TypeToken$Bounds.target:Z
            if_icmpne 4
         3: .line 1068
            aload 0 /* this */
            getfield com.google.common.reflect.TypeToken$Bounds.target:Z
            ireturn
        end local 2 // java.lang.reflect.Type bound
         4: .line 1066
      StackMap locals:
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
         5: iload 3
            iload 4
            if_icmplt 1
         6: .line 1071
            aload 0 /* this */
            getfield com.google.common.reflect.TypeToken$Bounds.target:Z
            ifeq 7
            iconst_0
            goto 8
      StackMap locals: com.google.common.reflect.TypeToken$Bounds java.lang.reflect.Type
      StackMap stack:
         7: iconst_1
      StackMap locals:
      StackMap stack: int
         8: ireturn
        end local 1 // java.lang.reflect.Type supertype
        end local 0 // com.google.common.reflect.TypeToken$Bounds this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    9     0       this  Lcom/google/common/reflect/TypeToken$Bounds;
            0    9     1  supertype  Ljava/lang/reflect/Type;
            2    4     2      bound  Ljava/lang/reflect/Type;
    MethodParameters:
           Name  Flags
      supertype  

  boolean isSupertypeOf(java.lang.reflect.Type);
    descriptor: (Ljava/lang/reflect/Type;)Z
    flags: (0x0000) 
    Code:
      stack=2, locals=7, args_size=2
        start local 0 // com.google.common.reflect.TypeToken$Bounds this
        start local 1 // java.lang.reflect.Type subtype
         0: .line 1075
            aload 1 /* subtype */
            invokestatic com.google.common.reflect.TypeToken.of:(Ljava/lang/reflect/Type;)Lcom/google/common/reflect/TypeToken;
            astore 2 /* type */
        start local 2 // com.google.common.reflect.TypeToken type
         1: .line 1076
            aload 0 /* this */
            getfield com.google.common.reflect.TypeToken$Bounds.bounds:[Ljava/lang/reflect/Type;
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 6
      StackMap locals: com.google.common.reflect.TypeToken$Bounds java.lang.reflect.Type com.google.common.reflect.TypeToken top int int java.lang.reflect.Type[]
      StackMap stack:
         2: aload 6
            iload 4
            aaload
            astore 3 /* bound */
        start local 3 // java.lang.reflect.Type bound
         3: .line 1077
            aload 2 /* type */
            aload 3 /* bound */
            invokevirtual com.google.common.reflect.TypeToken.isSubtypeOf:(Ljava/lang/reflect/Type;)Z
            aload 0 /* this */
            getfield com.google.common.reflect.TypeToken$Bounds.target:Z
            if_icmpne 5
         4: .line 1078
            aload 0 /* this */
            getfield com.google.common.reflect.TypeToken$Bounds.target:Z
            ireturn
        end local 3 // java.lang.reflect.Type bound
         5: .line 1076
      StackMap locals:
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
         6: iload 4
            iload 5
            if_icmplt 2
         7: .line 1081
            aload 0 /* this */
            getfield com.google.common.reflect.TypeToken$Bounds.target:Z
            ifeq 8
            iconst_0
            goto 9
      StackMap locals: com.google.common.reflect.TypeToken$Bounds java.lang.reflect.Type com.google.common.reflect.TypeToken
      StackMap stack:
         8: iconst_1
      StackMap locals:
      StackMap stack: int
         9: ireturn
        end local 2 // com.google.common.reflect.TypeToken type
        end local 1 // java.lang.reflect.Type subtype
        end local 0 // com.google.common.reflect.TypeToken$Bounds this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   10     0     this  Lcom/google/common/reflect/TypeToken$Bounds;
            0   10     1  subtype  Ljava/lang/reflect/Type;
            1   10     2     type  Lcom/google/common/reflect/TypeToken<*>;
            3    5     3    bound  Ljava/lang/reflect/Type;
    MethodParameters:
         Name  Flags
      subtype  
}
SourceFile: "TypeToken.java"
NestHost: com.google.common.reflect.TypeToken
InnerClasses:
  private Bounds = com.google.common.reflect.TypeToken$Bounds of com.google.common.reflect.TypeToken