public final class com.google.common.reflect.TypeResolver
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.google.common.reflect.TypeResolver
  super_class: java.lang.Object
{
  private final com.google.common.reflect.TypeResolver$TypeTable typeTable;
    descriptor: Lcom/google/common/reflect/TypeResolver$TypeTable;
    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 // com.google.common.reflect.TypeResolver this
         0: .line 59
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 60
            aload 0 /* this */
            new com.google.common.reflect.TypeResolver$TypeTable
            dup
            invokespecial com.google.common.reflect.TypeResolver$TypeTable.<init>:()V
            putfield com.google.common.reflect.TypeResolver.typeTable:Lcom/google/common/reflect/TypeResolver$TypeTable;
         2: .line 61
            return
        end local 0 // com.google.common.reflect.TypeResolver this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/google/common/reflect/TypeResolver;

  private void <init>(com.google.common.reflect.TypeResolver$TypeTable);
    descriptor: (Lcom/google/common/reflect/TypeResolver$TypeTable;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.google.common.reflect.TypeResolver this
        start local 1 // com.google.common.reflect.TypeResolver$TypeTable typeTable
         0: .line 63
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 64
            aload 0 /* this */
            aload 1 /* typeTable */
            putfield com.google.common.reflect.TypeResolver.typeTable:Lcom/google/common/reflect/TypeResolver$TypeTable;
         2: .line 65
            return
        end local 1 // com.google.common.reflect.TypeResolver$TypeTable typeTable
        end local 0 // com.google.common.reflect.TypeResolver this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0       this  Lcom/google/common/reflect/TypeResolver;
            0    3     1  typeTable  Lcom/google/common/reflect/TypeResolver$TypeTable;
    MethodParameters:
           Name  Flags
      typeTable  

  static com.google.common.reflect.TypeResolver covariantly(java.lang.reflect.Type);
    descriptor: (Ljava/lang/reflect/Type;)Lcom/google/common/reflect/TypeResolver;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.reflect.Type contextType
         0: .line 75
            new com.google.common.reflect.TypeResolver
            dup
            invokespecial com.google.common.reflect.TypeResolver.<init>:()V
            aload 0 /* contextType */
            invokestatic com.google.common.reflect.TypeResolver$TypeMappingIntrospector.getTypeMappings:(Ljava/lang/reflect/Type;)Lcom/google/common/collect/ImmutableMap;
            invokevirtual com.google.common.reflect.TypeResolver.where:(Ljava/util/Map;)Lcom/google/common/reflect/TypeResolver;
            areturn
        end local 0 // java.lang.reflect.Type contextType
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0  contextType  Ljava/lang/reflect/Type;
    MethodParameters:
             Name  Flags
      contextType  

  static com.google.common.reflect.TypeResolver invariantly(java.lang.reflect.Type);
    descriptor: (Ljava/lang/reflect/Type;)Lcom/google/common/reflect/TypeResolver;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.lang.reflect.Type contextType
         0: .line 91
            getstatic com.google.common.reflect.TypeResolver$WildcardCapturer.INSTANCE:Lcom/google/common/reflect/TypeResolver$WildcardCapturer;
            aload 0 /* contextType */
            invokevirtual com.google.common.reflect.TypeResolver$WildcardCapturer.capture:(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
            astore 1 /* invariantContext */
        start local 1 // java.lang.reflect.Type invariantContext
         1: .line 92
            new com.google.common.reflect.TypeResolver
            dup
            invokespecial com.google.common.reflect.TypeResolver.<init>:()V
            aload 1 /* invariantContext */
            invokestatic com.google.common.reflect.TypeResolver$TypeMappingIntrospector.getTypeMappings:(Ljava/lang/reflect/Type;)Lcom/google/common/collect/ImmutableMap;
            invokevirtual com.google.common.reflect.TypeResolver.where:(Ljava/util/Map;)Lcom/google/common/reflect/TypeResolver;
            areturn
        end local 1 // java.lang.reflect.Type invariantContext
        end local 0 // java.lang.reflect.Type contextType
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    2     0       contextType  Ljava/lang/reflect/Type;
            1    2     1  invariantContext  Ljava/lang/reflect/Type;
    MethodParameters:
             Name  Flags
      contextType  

  public com.google.common.reflect.TypeResolver where(java.lang.reflect.Type, java.lang.reflect.Type);
    descriptor: (Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;)Lcom/google/common/reflect/TypeResolver;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // com.google.common.reflect.TypeResolver this
        start local 1 // java.lang.reflect.Type formal
        start local 2 // java.lang.reflect.Type actual
         0: .line 115
            invokestatic com.google.common.collect.Maps.newHashMap:()Ljava/util/HashMap;
            astore 3 /* mappings */
        start local 3 // java.util.Map mappings
         1: .line 116
            aload 3 /* mappings */
            aload 1 /* formal */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.reflect.Type
            aload 2 /* actual */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.reflect.Type
            invokestatic com.google.common.reflect.TypeResolver.populateTypeMappings:(Ljava/util/Map;Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;)V
         2: .line 117
            aload 0 /* this */
            aload 3 /* mappings */
            invokevirtual com.google.common.reflect.TypeResolver.where:(Ljava/util/Map;)Lcom/google/common/reflect/TypeResolver;
            areturn
        end local 3 // java.util.Map mappings
        end local 2 // java.lang.reflect.Type actual
        end local 1 // java.lang.reflect.Type formal
        end local 0 // com.google.common.reflect.TypeResolver this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lcom/google/common/reflect/TypeResolver;
            0    3     1    formal  Ljava/lang/reflect/Type;
            0    3     2    actual  Ljava/lang/reflect/Type;
            1    3     3  mappings  Ljava/util/Map<Lcom/google/common/reflect/TypeResolver$TypeVariableKey;Ljava/lang/reflect/Type;>;
    MethodParameters:
        Name  Flags
      formal  
      actual  

  com.google.common.reflect.TypeResolver where(java.util.Map<com.google.common.reflect.TypeResolver$TypeVariableKey, ? extends java.lang.reflect.Type>);
    descriptor: (Ljava/util/Map;)Lcom/google/common/reflect/TypeResolver;
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.google.common.reflect.TypeResolver this
        start local 1 // java.util.Map mappings
         0: .line 122
            new com.google.common.reflect.TypeResolver
            dup
            aload 0 /* this */
            getfield com.google.common.reflect.TypeResolver.typeTable:Lcom/google/common/reflect/TypeResolver$TypeTable;
            aload 1 /* mappings */
            invokevirtual com.google.common.reflect.TypeResolver$TypeTable.where:(Ljava/util/Map;)Lcom/google/common/reflect/TypeResolver$TypeTable;
            invokespecial com.google.common.reflect.TypeResolver.<init>:(Lcom/google/common/reflect/TypeResolver$TypeTable;)V
            areturn
        end local 1 // java.util.Map mappings
        end local 0 // com.google.common.reflect.TypeResolver this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/google/common/reflect/TypeResolver;
            0    1     1  mappings  Ljava/util/Map<Lcom/google/common/reflect/TypeResolver$TypeVariableKey;+Ljava/lang/reflect/Type;>;
    Signature: (Ljava/util/Map<Lcom/google/common/reflect/TypeResolver$TypeVariableKey;+Ljava/lang/reflect/Type;>;)Lcom/google/common/reflect/TypeResolver;
    MethodParameters:
          Name  Flags
      mappings  

  private static void populateTypeMappings(java.util.Map<com.google.common.reflect.TypeResolver$TypeVariableKey, java.lang.reflect.Type>, java.lang.reflect.Type, java.lang.reflect.Type);
    descriptor: (Ljava/util/Map;Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // java.util.Map mappings
        start local 1 // java.lang.reflect.Type from
        start local 2 // java.lang.reflect.Type to
         0: .line 127
            aload 1 /* from */
            aload 2 /* to */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 128
            return
         2: .line 130
      StackMap locals:
      StackMap stack:
            new com.google.common.reflect.TypeResolver$1
            dup
            aload 0 /* mappings */
            aload 2 /* to */
            invokespecial com.google.common.reflect.TypeResolver$1.<init>:(Ljava/util/Map;Ljava/lang/reflect/Type;)V
            iconst_1
            anewarray java.lang.reflect.Type
            dup
            iconst_0
         3: .line 208
            aload 1 /* from */
            aastore
            invokevirtual com.google.common.reflect.TypeResolver$1.visit:([Ljava/lang/reflect/Type;)V
         4: .line 209
            return
        end local 2 // java.lang.reflect.Type to
        end local 1 // java.lang.reflect.Type from
        end local 0 // java.util.Map mappings
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0  mappings  Ljava/util/Map<Lcom/google/common/reflect/TypeResolver$TypeVariableKey;Ljava/lang/reflect/Type;>;
            0    5     1      from  Ljava/lang/reflect/Type;
            0    5     2        to  Ljava/lang/reflect/Type;
    Signature: (Ljava/util/Map<Lcom/google/common/reflect/TypeResolver$TypeVariableKey;Ljava/lang/reflect/Type;>;Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;)V
    MethodParameters:
          Name  Flags
      mappings  final
      from      final
      to        final

  public java.lang.reflect.Type resolveType(java.lang.reflect.Type);
    descriptor: (Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.google.common.reflect.TypeResolver this
        start local 1 // java.lang.reflect.Type type
         0: .line 216
            aload 1 /* type */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 217
            aload 1 /* type */
            instanceof java.lang.reflect.TypeVariable
            ifeq 3
         2: .line 218
            aload 0 /* this */
            getfield com.google.common.reflect.TypeResolver.typeTable:Lcom/google/common/reflect/TypeResolver$TypeTable;
            aload 1 /* type */
            checkcast java.lang.reflect.TypeVariable
            invokevirtual com.google.common.reflect.TypeResolver$TypeTable.resolve:(Ljava/lang/reflect/TypeVariable;)Ljava/lang/reflect/Type;
            areturn
         3: .line 219
      StackMap locals:
      StackMap stack:
            aload 1 /* type */
            instanceof java.lang.reflect.ParameterizedType
            ifeq 5
         4: .line 220
            aload 0 /* this */
            aload 1 /* type */
            checkcast java.lang.reflect.ParameterizedType
            invokevirtual com.google.common.reflect.TypeResolver.resolveParameterizedType:(Ljava/lang/reflect/ParameterizedType;)Ljava/lang/reflect/ParameterizedType;
            areturn
         5: .line 221
      StackMap locals:
      StackMap stack:
            aload 1 /* type */
            instanceof java.lang.reflect.GenericArrayType
            ifeq 7
         6: .line 222
            aload 0 /* this */
            aload 1 /* type */
            checkcast java.lang.reflect.GenericArrayType
            invokevirtual com.google.common.reflect.TypeResolver.resolveGenericArrayType:(Ljava/lang/reflect/GenericArrayType;)Ljava/lang/reflect/Type;
            areturn
         7: .line 223
      StackMap locals:
      StackMap stack:
            aload 1 /* type */
            instanceof java.lang.reflect.WildcardType
            ifeq 9
         8: .line 224
            aload 0 /* this */
            aload 1 /* type */
            checkcast java.lang.reflect.WildcardType
            invokevirtual com.google.common.reflect.TypeResolver.resolveWildcardType:(Ljava/lang/reflect/WildcardType;)Ljava/lang/reflect/WildcardType;
            areturn
         9: .line 227
      StackMap locals:
      StackMap stack:
            aload 1 /* type */
            areturn
        end local 1 // java.lang.reflect.Type type
        end local 0 // com.google.common.reflect.TypeResolver this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lcom/google/common/reflect/TypeResolver;
            0   10     1  type  Ljava/lang/reflect/Type;
    MethodParameters:
      Name  Flags
      type  

  java.lang.reflect.Type[] resolveTypesInPlace(java.lang.reflect.Type[]);
    descriptor: ([Ljava/lang/reflect/Type;)[Ljava/lang/reflect/Type;
    flags: (0x0000) 
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // com.google.common.reflect.TypeResolver this
        start local 1 // java.lang.reflect.Type[] types
         0: .line 232
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         1: goto 4
         2: .line 233
      StackMap locals: int
      StackMap stack:
            aload 1 /* types */
            iload 2 /* i */
            aload 0 /* this */
            aload 1 /* types */
            iload 2 /* i */
            aaload
            invokevirtual com.google.common.reflect.TypeResolver.resolveType:(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
            aastore
         3: .line 232
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         4: iload 2 /* i */
            aload 1 /* types */
            arraylength
            if_icmplt 2
        end local 2 // int i
         5: .line 235
            aload 1 /* types */
            areturn
        end local 1 // java.lang.reflect.Type[] types
        end local 0 // com.google.common.reflect.TypeResolver this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   this  Lcom/google/common/reflect/TypeResolver;
            0    6     1  types  [Ljava/lang/reflect/Type;
            1    5     2      i  I
    MethodParameters:
       Name  Flags
      types  

  private java.lang.reflect.Type[] resolveTypes(java.lang.reflect.Type[]);
    descriptor: ([Ljava/lang/reflect/Type;)[Ljava/lang/reflect/Type;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // com.google.common.reflect.TypeResolver this
        start local 1 // java.lang.reflect.Type[] types
         0: .line 239
            aload 1 /* types */
            arraylength
            anewarray java.lang.reflect.Type
            astore 2 /* result */
        start local 2 // java.lang.reflect.Type[] result
         1: .line 240
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         2: goto 5
         3: .line 241
      StackMap locals: java.lang.reflect.Type[] int
      StackMap stack:
            aload 2 /* result */
            iload 3 /* i */
            aload 0 /* this */
            aload 1 /* types */
            iload 3 /* i */
            aaload
            invokevirtual com.google.common.reflect.TypeResolver.resolveType:(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
            aastore
         4: .line 240
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 3 /* i */
            aload 1 /* types */
            arraylength
            if_icmplt 3
        end local 3 // int i
         6: .line 243
            aload 2 /* result */
            areturn
        end local 2 // java.lang.reflect.Type[] result
        end local 1 // java.lang.reflect.Type[] types
        end local 0 // com.google.common.reflect.TypeResolver this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lcom/google/common/reflect/TypeResolver;
            0    7     1   types  [Ljava/lang/reflect/Type;
            1    7     2  result  [Ljava/lang/reflect/Type;
            2    6     3       i  I
    MethodParameters:
       Name  Flags
      types  

  private java.lang.reflect.WildcardType resolveWildcardType(java.lang.reflect.WildcardType);
    descriptor: (Ljava/lang/reflect/WildcardType;)Ljava/lang/reflect/WildcardType;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // com.google.common.reflect.TypeResolver this
        start local 1 // java.lang.reflect.WildcardType type
         0: .line 247
            aload 1 /* type */
            invokeinterface java.lang.reflect.WildcardType.getLowerBounds:()[Ljava/lang/reflect/Type;
            astore 2 /* lowerBounds */
        start local 2 // java.lang.reflect.Type[] lowerBounds
         1: .line 248
            aload 1 /* type */
            invokeinterface java.lang.reflect.WildcardType.getUpperBounds:()[Ljava/lang/reflect/Type;
            astore 3 /* upperBounds */
        start local 3 // java.lang.reflect.Type[] upperBounds
         2: .line 249
            new com.google.common.reflect.Types$WildcardTypeImpl
            dup
            aload 0 /* this */
            aload 2 /* lowerBounds */
            invokevirtual com.google.common.reflect.TypeResolver.resolveTypes:([Ljava/lang/reflect/Type;)[Ljava/lang/reflect/Type;
            aload 0 /* this */
            aload 3 /* upperBounds */
            invokevirtual com.google.common.reflect.TypeResolver.resolveTypes:([Ljava/lang/reflect/Type;)[Ljava/lang/reflect/Type;
            invokespecial com.google.common.reflect.Types$WildcardTypeImpl.<init>:([Ljava/lang/reflect/Type;[Ljava/lang/reflect/Type;)V
            areturn
        end local 3 // java.lang.reflect.Type[] upperBounds
        end local 2 // java.lang.reflect.Type[] lowerBounds
        end local 1 // java.lang.reflect.WildcardType type
        end local 0 // com.google.common.reflect.TypeResolver this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0         this  Lcom/google/common/reflect/TypeResolver;
            0    3     1         type  Ljava/lang/reflect/WildcardType;
            1    3     2  lowerBounds  [Ljava/lang/reflect/Type;
            2    3     3  upperBounds  [Ljava/lang/reflect/Type;
    MethodParameters:
      Name  Flags
      type  

  private java.lang.reflect.Type resolveGenericArrayType(java.lang.reflect.GenericArrayType);
    descriptor: (Ljava/lang/reflect/GenericArrayType;)Ljava/lang/reflect/Type;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // com.google.common.reflect.TypeResolver this
        start local 1 // java.lang.reflect.GenericArrayType type
         0: .line 253
            aload 1 /* type */
            invokeinterface java.lang.reflect.GenericArrayType.getGenericComponentType:()Ljava/lang/reflect/Type;
            astore 2 /* componentType */
        start local 2 // java.lang.reflect.Type componentType
         1: .line 254
            aload 0 /* this */
            aload 2 /* componentType */
            invokevirtual com.google.common.reflect.TypeResolver.resolveType:(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
            astore 3 /* resolvedComponentType */
        start local 3 // java.lang.reflect.Type resolvedComponentType
         2: .line 255
            aload 3 /* resolvedComponentType */
            invokestatic com.google.common.reflect.Types.newArrayType:(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
            areturn
        end local 3 // java.lang.reflect.Type resolvedComponentType
        end local 2 // java.lang.reflect.Type componentType
        end local 1 // java.lang.reflect.GenericArrayType type
        end local 0 // com.google.common.reflect.TypeResolver this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    3     0                   this  Lcom/google/common/reflect/TypeResolver;
            0    3     1                   type  Ljava/lang/reflect/GenericArrayType;
            1    3     2          componentType  Ljava/lang/reflect/Type;
            2    3     3  resolvedComponentType  Ljava/lang/reflect/Type;
    MethodParameters:
      Name  Flags
      type  

  private java.lang.reflect.ParameterizedType resolveParameterizedType(java.lang.reflect.ParameterizedType);
    descriptor: (Ljava/lang/reflect/ParameterizedType;)Ljava/lang/reflect/ParameterizedType;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=7, args_size=2
        start local 0 // com.google.common.reflect.TypeResolver this
        start local 1 // java.lang.reflect.ParameterizedType type
         0: .line 259
            aload 1 /* type */
            invokeinterface java.lang.reflect.ParameterizedType.getOwnerType:()Ljava/lang/reflect/Type;
            astore 2 /* owner */
        start local 2 // java.lang.reflect.Type owner
         1: .line 260
            aload 2 /* owner */
            ifnonnull 2
            aconst_null
            goto 3
      StackMap locals: java.lang.reflect.Type
      StackMap stack:
         2: aload 0 /* this */
            aload 2 /* owner */
            invokevirtual com.google.common.reflect.TypeResolver.resolveType:(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
      StackMap locals:
      StackMap stack: java.lang.reflect.Type
         3: astore 3 /* resolvedOwner */
        start local 3 // java.lang.reflect.Type resolvedOwner
         4: .line 261
            aload 0 /* this */
            aload 1 /* type */
            invokeinterface java.lang.reflect.ParameterizedType.getRawType:()Ljava/lang/reflect/Type;
            invokevirtual com.google.common.reflect.TypeResolver.resolveType:(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
            astore 4 /* resolvedRawType */
        start local 4 // java.lang.reflect.Type resolvedRawType
         5: .line 263
            aload 1 /* type */
            invokeinterface java.lang.reflect.ParameterizedType.getActualTypeArguments:()[Ljava/lang/reflect/Type;
            astore 5 /* args */
        start local 5 // java.lang.reflect.Type[] args
         6: .line 264
            aload 0 /* this */
            aload 5 /* args */
            invokevirtual com.google.common.reflect.TypeResolver.resolveTypes:([Ljava/lang/reflect/Type;)[Ljava/lang/reflect/Type;
            astore 6 /* resolvedArgs */
        start local 6 // java.lang.reflect.Type[] resolvedArgs
         7: .line 266
            aload 3 /* resolvedOwner */
            aload 4 /* resolvedRawType */
            checkcast java.lang.Class
            aload 6 /* resolvedArgs */
         8: .line 265
            invokestatic com.google.common.reflect.Types.newParameterizedTypeWithOwner:(Ljava/lang/reflect/Type;Ljava/lang/Class;[Ljava/lang/reflect/Type;)Ljava/lang/reflect/ParameterizedType;
            areturn
        end local 6 // java.lang.reflect.Type[] resolvedArgs
        end local 5 // java.lang.reflect.Type[] args
        end local 4 // java.lang.reflect.Type resolvedRawType
        end local 3 // java.lang.reflect.Type resolvedOwner
        end local 2 // java.lang.reflect.Type owner
        end local 1 // java.lang.reflect.ParameterizedType type
        end local 0 // com.google.common.reflect.TypeResolver this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    9     0             this  Lcom/google/common/reflect/TypeResolver;
            0    9     1             type  Ljava/lang/reflect/ParameterizedType;
            1    9     2            owner  Ljava/lang/reflect/Type;
            4    9     3    resolvedOwner  Ljava/lang/reflect/Type;
            5    9     4  resolvedRawType  Ljava/lang/reflect/Type;
            6    9     5             args  [Ljava/lang/reflect/Type;
            7    9     6     resolvedArgs  [Ljava/lang/reflect/Type;
    MethodParameters:
      Name  Flags
      type  

  private static <T> T expectArgument(java.lang.Class<T>, );
    descriptor: (Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.lang.Class type
        start local 1 // java.lang.Object arg
         0: .line 271
            aload 0 /* type */
            aload 1 /* arg */
            invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
         1: areturn
         2: .line 272
      StackMap locals:
      StackMap stack: java.lang.ClassCastException
            pop
         3: .line 273
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 1 /* arg */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " is not a "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* type */
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.lang.Object arg
        end local 0 // java.lang.Class type
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  type  Ljava/lang/Class<TT;>;
            0    4     1   arg  Ljava/lang/Object;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.ClassCastException
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;Ljava/lang/Object;)TT;
    MethodParameters:
      Name  Flags
      type  
      arg   
}
SourceFile: "TypeResolver.java"
NestMembers:
  com.google.common.reflect.TypeResolver$1  com.google.common.reflect.TypeResolver$TypeMappingIntrospector  com.google.common.reflect.TypeResolver$TypeTable  com.google.common.reflect.TypeResolver$TypeTable$1  com.google.common.reflect.TypeResolver$TypeVariableKey  com.google.common.reflect.TypeResolver$WildcardCapturer  com.google.common.reflect.TypeResolver$WildcardCapturer$1
InnerClasses:
  com.google.common.reflect.TypeResolver$1
  private final TypeMappingIntrospector = com.google.common.reflect.TypeResolver$TypeMappingIntrospector of com.google.common.reflect.TypeResolver
  private TypeTable = com.google.common.reflect.TypeResolver$TypeTable of com.google.common.reflect.TypeResolver
  final TypeVariableKey = com.google.common.reflect.TypeResolver$TypeVariableKey of com.google.common.reflect.TypeResolver
  private WildcardCapturer = com.google.common.reflect.TypeResolver$WildcardCapturer of com.google.common.reflect.TypeResolver
  final WildcardTypeImpl = com.google.common.reflect.Types$WildcardTypeImpl of com.google.common.reflect.Types
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.Beta()