public abstract class org.springframework.util.TypeUtils
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.springframework.util.TypeUtils
  super_class: java.lang.Object
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.util.TypeUtils this
         0: .line 35
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.springframework.util.TypeUtils this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/util/TypeUtils;

  public static boolean isAssignable(java.lang.reflect.Type, java.lang.reflect.Type);
    descriptor: (Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // java.lang.reflect.Type lhsType
        start local 1 // java.lang.reflect.Type rhsType
         0: .line 45
            aload 0 /* lhsType */
            ldc "Left-hand side type must not be null"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         1: .line 46
            aload 1 /* rhsType */
            ldc "Right-hand side type must not be null"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         2: .line 49
            aload 0 /* lhsType */
            aload 1 /* rhsType */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 3
            ldc Ljava/lang/Object;
            aload 0 /* lhsType */
            if_acmpne 4
         3: .line 50
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         4: .line 53
      StackMap locals:
      StackMap stack:
            aload 0 /* lhsType */
            instanceof java.lang.Class
            ifeq 15
         5: .line 54
            aload 0 /* lhsType */
            checkcast java.lang.Class
            astore 2 /* lhsClass */
        start local 2 // java.lang.Class lhsClass
         6: .line 57
            aload 1 /* rhsType */
            instanceof java.lang.Class
            ifeq 8
         7: .line 58
            aload 2 /* lhsClass */
            aload 1 /* rhsType */
            checkcast java.lang.Class
            invokestatic org.springframework.util.ClassUtils.isAssignable:(Ljava/lang/Class;Ljava/lang/Class;)Z
            ireturn
         8: .line 61
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 1 /* rhsType */
            instanceof java.lang.reflect.ParameterizedType
            ifeq 12
         9: .line 62
            aload 1 /* rhsType */
            checkcast java.lang.reflect.ParameterizedType
            invokeinterface java.lang.reflect.ParameterizedType.getRawType:()Ljava/lang/reflect/Type;
            astore 3 /* rhsRaw */
        start local 3 // java.lang.reflect.Type rhsRaw
        10: .line 65
            aload 3 /* rhsRaw */
            instanceof java.lang.Class
            ifeq 15
        11: .line 66
            aload 2 /* lhsClass */
            aload 3 /* rhsRaw */
            checkcast java.lang.Class
            invokestatic org.springframework.util.ClassUtils.isAssignable:(Ljava/lang/Class;Ljava/lang/Class;)Z
            ireturn
        end local 3 // java.lang.reflect.Type rhsRaw
        12: .line 69
      StackMap locals:
      StackMap stack:
            aload 2 /* lhsClass */
            invokevirtual java.lang.Class.isArray:()Z
            ifeq 15
            aload 1 /* rhsType */
            instanceof java.lang.reflect.GenericArrayType
            ifeq 15
        13: .line 70
            aload 1 /* rhsType */
            checkcast java.lang.reflect.GenericArrayType
            invokeinterface java.lang.reflect.GenericArrayType.getGenericComponentType:()Ljava/lang/reflect/Type;
            astore 3 /* rhsComponent */
        start local 3 // java.lang.reflect.Type rhsComponent
        14: .line 72
            aload 2 /* lhsClass */
            invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
            aload 3 /* rhsComponent */
            invokestatic org.springframework.util.TypeUtils.isAssignable:(Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;)Z
            ireturn
        end local 3 // java.lang.reflect.Type rhsComponent
        end local 2 // java.lang.Class lhsClass
        15: .line 77
      StackMap locals:
      StackMap stack:
            aload 0 /* lhsType */
            instanceof java.lang.reflect.ParameterizedType
            ifeq 22
        16: .line 78
            aload 1 /* rhsType */
            instanceof java.lang.Class
            ifeq 20
        17: .line 79
            aload 0 /* lhsType */
            checkcast java.lang.reflect.ParameterizedType
            invokeinterface java.lang.reflect.ParameterizedType.getRawType:()Ljava/lang/reflect/Type;
            astore 2 /* lhsRaw */
        start local 2 // java.lang.reflect.Type lhsRaw
        18: .line 81
            aload 2 /* lhsRaw */
            instanceof java.lang.Class
            ifeq 22
        19: .line 82
            aload 2 /* lhsRaw */
            checkcast java.lang.Class
            aload 1 /* rhsType */
            checkcast java.lang.Class
            invokestatic org.springframework.util.ClassUtils.isAssignable:(Ljava/lang/Class;Ljava/lang/Class;)Z
            ireturn
        end local 2 // java.lang.reflect.Type lhsRaw
        20: .line 85
      StackMap locals:
      StackMap stack:
            aload 1 /* rhsType */
            instanceof java.lang.reflect.ParameterizedType
            ifeq 22
        21: .line 86
            aload 0 /* lhsType */
            checkcast java.lang.reflect.ParameterizedType
            aload 1 /* rhsType */
            checkcast java.lang.reflect.ParameterizedType
            invokestatic org.springframework.util.TypeUtils.isAssignable:(Ljava/lang/reflect/ParameterizedType;Ljava/lang/reflect/ParameterizedType;)Z
            ireturn
        22: .line 90
      StackMap locals:
      StackMap stack:
            aload 0 /* lhsType */
            instanceof java.lang.reflect.GenericArrayType
            ifeq 31
        23: .line 91
            aload 0 /* lhsType */
            checkcast java.lang.reflect.GenericArrayType
            invokeinterface java.lang.reflect.GenericArrayType.getGenericComponentType:()Ljava/lang/reflect/Type;
            astore 2 /* lhsComponent */
        start local 2 // java.lang.reflect.Type lhsComponent
        24: .line 93
            aload 1 /* rhsType */
            instanceof java.lang.Class
            ifeq 28
        25: .line 94
            aload 1 /* rhsType */
            checkcast java.lang.Class
            astore 3 /* rhsClass */
        start local 3 // java.lang.Class rhsClass
        26: .line 96
            aload 3 /* rhsClass */
            invokevirtual java.lang.Class.isArray:()Z
            ifeq 31
        27: .line 97
            aload 2 /* lhsComponent */
            aload 3 /* rhsClass */
            invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
            invokestatic org.springframework.util.TypeUtils.isAssignable:(Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;)Z
            ireturn
        end local 3 // java.lang.Class rhsClass
        28: .line 100
      StackMap locals: java.lang.reflect.Type
      StackMap stack:
            aload 1 /* rhsType */
            instanceof java.lang.reflect.GenericArrayType
            ifeq 31
        29: .line 101
            aload 1 /* rhsType */
            checkcast java.lang.reflect.GenericArrayType
            invokeinterface java.lang.reflect.GenericArrayType.getGenericComponentType:()Ljava/lang/reflect/Type;
            astore 3 /* rhsComponent */
        start local 3 // java.lang.reflect.Type rhsComponent
        30: .line 103
            aload 2 /* lhsComponent */
            aload 3 /* rhsComponent */
            invokestatic org.springframework.util.TypeUtils.isAssignable:(Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;)Z
            ireturn
        end local 3 // java.lang.reflect.Type rhsComponent
        end local 2 // java.lang.reflect.Type lhsComponent
        31: .line 107
      StackMap locals:
      StackMap stack:
            aload 0 /* lhsType */
            instanceof java.lang.reflect.WildcardType
            ifeq 33
        32: .line 108
            aload 0 /* lhsType */
            checkcast java.lang.reflect.WildcardType
            aload 1 /* rhsType */
            invokestatic org.springframework.util.TypeUtils.isAssignable:(Ljava/lang/reflect/WildcardType;Ljava/lang/reflect/Type;)Z
            ireturn
        33: .line 111
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // java.lang.reflect.Type rhsType
        end local 0 // java.lang.reflect.Type lhsType
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   34     0       lhsType  Ljava/lang/reflect/Type;
            0   34     1       rhsType  Ljava/lang/reflect/Type;
            6   15     2      lhsClass  Ljava/lang/Class<*>;
           10   12     3        rhsRaw  Ljava/lang/reflect/Type;
           14   15     3  rhsComponent  Ljava/lang/reflect/Type;
           18   20     2        lhsRaw  Ljava/lang/reflect/Type;
           24   31     2  lhsComponent  Ljava/lang/reflect/Type;
           26   28     3      rhsClass  Ljava/lang/Class<*>;
           30   31     3  rhsComponent  Ljava/lang/reflect/Type;
    MethodParameters:
         Name  Flags
      lhsType  
      rhsType  

  private static boolean isAssignable(java.lang.reflect.ParameterizedType, java.lang.reflect.ParameterizedType);
    descriptor: (Ljava/lang/reflect/ParameterizedType;Ljava/lang/reflect/ParameterizedType;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=8, args_size=2
        start local 0 // java.lang.reflect.ParameterizedType lhsType
        start local 1 // java.lang.reflect.ParameterizedType rhsType
         0: .line 115
            aload 0 /* lhsType */
            aload 1 /* rhsType */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 116
            iconst_1
            ireturn
         2: .line 119
      StackMap locals:
      StackMap stack:
            aload 0 /* lhsType */
            invokeinterface java.lang.reflect.ParameterizedType.getActualTypeArguments:()[Ljava/lang/reflect/Type;
            astore 2 /* lhsTypeArguments */
        start local 2 // java.lang.reflect.Type[] lhsTypeArguments
         3: .line 120
            aload 1 /* rhsType */
            invokeinterface java.lang.reflect.ParameterizedType.getActualTypeArguments:()[Ljava/lang/reflect/Type;
            astore 3 /* rhsTypeArguments */
        start local 3 // java.lang.reflect.Type[] rhsTypeArguments
         4: .line 122
            aload 2 /* lhsTypeArguments */
            arraylength
            aload 3 /* rhsTypeArguments */
            arraylength
            if_icmpeq 6
         5: .line 123
            iconst_0
            ireturn
         6: .line 126
      StackMap locals: java.lang.reflect.Type[] java.lang.reflect.Type[]
      StackMap stack:
            aload 2 /* lhsTypeArguments */
            arraylength
            istore 4 /* size */
        start local 4 // int size
         7: iconst_0
            istore 5 /* i */
        start local 5 // int i
         8: goto 15
         9: .line 127
      StackMap locals: int int
      StackMap stack:
            aload 2 /* lhsTypeArguments */
            iload 5 /* i */
            aaload
            astore 6 /* lhsArg */
        start local 6 // java.lang.reflect.Type lhsArg
        10: .line 128
            aload 3 /* rhsTypeArguments */
            iload 5 /* i */
            aaload
            astore 7 /* rhsArg */
        start local 7 // java.lang.reflect.Type rhsArg
        11: .line 130
            aload 6 /* lhsArg */
            aload 7 /* rhsArg */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 14
        12: .line 131
            aload 6 /* lhsArg */
            instanceof java.lang.reflect.WildcardType
            ifeq 13
            aload 6 /* lhsArg */
            checkcast java.lang.reflect.WildcardType
            aload 7 /* rhsArg */
            invokestatic org.springframework.util.TypeUtils.isAssignable:(Ljava/lang/reflect/WildcardType;Ljava/lang/reflect/Type;)Z
            ifne 14
        13: .line 132
      StackMap locals: java.lang.reflect.Type java.lang.reflect.Type
      StackMap stack:
            iconst_0
            ireturn
        end local 7 // java.lang.reflect.Type rhsArg
        end local 6 // java.lang.reflect.Type lhsArg
        14: .line 126
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        15: iload 5 /* i */
            iload 4 /* size */
            if_icmplt 9
        end local 5 // int i
        end local 4 // int size
        16: .line 136
            iconst_1
            ireturn
        end local 3 // java.lang.reflect.Type[] rhsTypeArguments
        end local 2 // java.lang.reflect.Type[] lhsTypeArguments
        end local 1 // java.lang.reflect.ParameterizedType rhsType
        end local 0 // java.lang.reflect.ParameterizedType lhsType
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   17     0           lhsType  Ljava/lang/reflect/ParameterizedType;
            0   17     1           rhsType  Ljava/lang/reflect/ParameterizedType;
            3   17     2  lhsTypeArguments  [Ljava/lang/reflect/Type;
            4   17     3  rhsTypeArguments  [Ljava/lang/reflect/Type;
            7   16     4              size  I
            8   16     5                 i  I
           10   14     6            lhsArg  Ljava/lang/reflect/Type;
           11   14     7            rhsArg  Ljava/lang/reflect/Type;
    MethodParameters:
         Name  Flags
      lhsType  
      rhsType  

  private static boolean isAssignable(java.lang.reflect.WildcardType, java.lang.reflect.Type);
    descriptor: (Ljava/lang/reflect/WildcardType;Ljava/lang/reflect/Type;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=15, args_size=2
        start local 0 // java.lang.reflect.WildcardType lhsType
        start local 1 // java.lang.reflect.Type rhsType
         0: .line 140
            aload 0 /* lhsType */
            invokeinterface java.lang.reflect.WildcardType.getUpperBounds:()[Ljava/lang/reflect/Type;
            astore 2 /* lUpperBounds */
        start local 2 // java.lang.reflect.Type[] lUpperBounds
         1: .line 143
            aload 2 /* lUpperBounds */
            arraylength
            ifne 3
         2: .line 144
            iconst_1
            anewarray java.lang.reflect.Type
            dup
            iconst_0
            ldc Ljava/lang/Object;
            aastore
            astore 2 /* lUpperBounds */
         3: .line 147
      StackMap locals: java.lang.reflect.Type[]
      StackMap stack:
            aload 0 /* lhsType */
            invokeinterface java.lang.reflect.WildcardType.getLowerBounds:()[Ljava/lang/reflect/Type;
            astore 3 /* lLowerBounds */
        start local 3 // java.lang.reflect.Type[] lLowerBounds
         4: .line 150
            aload 3 /* lLowerBounds */
            arraylength
            ifne 6
         5: .line 151
            iconst_1
            anewarray java.lang.reflect.Type
            astore 3 /* lLowerBounds */
         6: .line 154
      StackMap locals: java.lang.reflect.Type[]
      StackMap stack:
            aload 1 /* rhsType */
            instanceof java.lang.reflect.WildcardType
            ifeq 47
         7: .line 158
            aload 1 /* rhsType */
            checkcast java.lang.reflect.WildcardType
            astore 4 /* rhsWcType */
        start local 4 // java.lang.reflect.WildcardType rhsWcType
         8: .line 159
            aload 4 /* rhsWcType */
            invokeinterface java.lang.reflect.WildcardType.getUpperBounds:()[Ljava/lang/reflect/Type;
            astore 5 /* rUpperBounds */
        start local 5 // java.lang.reflect.Type[] rUpperBounds
         9: .line 161
            aload 5 /* rUpperBounds */
            arraylength
            ifne 11
        10: .line 162
            iconst_1
            anewarray java.lang.reflect.Type
            dup
            iconst_0
            ldc Ljava/lang/Object;
            aastore
            astore 5 /* rUpperBounds */
        11: .line 165
      StackMap locals: java.lang.reflect.WildcardType java.lang.reflect.Type[]
      StackMap stack:
            aload 4 /* rhsWcType */
            invokeinterface java.lang.reflect.WildcardType.getLowerBounds:()[Ljava/lang/reflect/Type;
            astore 6 /* rLowerBounds */
        start local 6 // java.lang.reflect.Type[] rLowerBounds
        12: .line 167
            aload 6 /* rLowerBounds */
            arraylength
            ifne 14
        13: .line 168
            iconst_1
            anewarray java.lang.reflect.Type
            astore 6 /* rLowerBounds */
        14: .line 171
      StackMap locals: java.lang.reflect.Type[]
      StackMap stack:
            aload 2 /* lUpperBounds */
            dup
            astore 10
            arraylength
            istore 9
            iconst_0
            istore 8
            goto 29
      StackMap locals: java.lang.reflect.WildcardType java.lang.reflect.Type java.lang.reflect.Type[] java.lang.reflect.Type[] java.lang.reflect.WildcardType java.lang.reflect.Type[] java.lang.reflect.Type[] top int int java.lang.reflect.Type[]
      StackMap stack:
        15: aload 10
            iload 8
            aaload
            astore 7 /* lBound */
        start local 7 // java.lang.reflect.Type lBound
        16: .line 172
            aload 5 /* rUpperBounds */
            dup
            astore 14
            arraylength
            istore 13
            iconst_0
            istore 12
            goto 21
      StackMap locals: java.lang.reflect.WildcardType java.lang.reflect.Type java.lang.reflect.Type[] java.lang.reflect.Type[] java.lang.reflect.WildcardType java.lang.reflect.Type[] java.lang.reflect.Type[] java.lang.reflect.Type int int java.lang.reflect.Type[] top int int java.lang.reflect.Type[]
      StackMap stack:
        17: aload 14
            iload 12
            aaload
            astore 11 /* rBound */
        start local 11 // java.lang.reflect.Type rBound
        18: .line 173
            aload 7 /* lBound */
            aload 11 /* rBound */
            invokestatic org.springframework.util.TypeUtils.isAssignableBound:(Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;)Z
            ifne 20
        19: .line 174
            iconst_0
            ireturn
        end local 11 // java.lang.reflect.Type rBound
        20: .line 172
      StackMap locals:
      StackMap stack:
            iinc 12 1
      StackMap locals:
      StackMap stack:
        21: iload 12
            iload 13
            if_icmplt 17
        22: .line 178
            aload 6 /* rLowerBounds */
            dup
            astore 14
            arraylength
            istore 13
            iconst_0
            istore 12
            goto 27
      StackMap locals:
      StackMap stack:
        23: aload 14
            iload 12
            aaload
            astore 11 /* rBound */
        start local 11 // java.lang.reflect.Type rBound
        24: .line 179
            aload 7 /* lBound */
            aload 11 /* rBound */
            invokestatic org.springframework.util.TypeUtils.isAssignableBound:(Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;)Z
            ifne 26
        25: .line 180
            iconst_0
            ireturn
        end local 11 // java.lang.reflect.Type rBound
        26: .line 178
      StackMap locals:
      StackMap stack:
            iinc 12 1
      StackMap locals:
      StackMap stack:
        27: iload 12
            iload 13
            if_icmplt 23
        end local 7 // java.lang.reflect.Type lBound
        28: .line 171
            iinc 8 1
      StackMap locals: java.lang.reflect.WildcardType java.lang.reflect.Type java.lang.reflect.Type[] java.lang.reflect.Type[] java.lang.reflect.WildcardType java.lang.reflect.Type[] java.lang.reflect.Type[] top int int java.lang.reflect.Type[]
      StackMap stack:
        29: iload 8
            iload 9
            if_icmplt 15
        30: .line 185
            aload 3 /* lLowerBounds */
            dup
            astore 10
            arraylength
            istore 9
            iconst_0
            istore 8
            goto 45
      StackMap locals:
      StackMap stack:
        31: aload 10
            iload 8
            aaload
            astore 7 /* lBound */
        start local 7 // java.lang.reflect.Type lBound
        32: .line 186
            aload 5 /* rUpperBounds */
            dup
            astore 14
            arraylength
            istore 13
            iconst_0
            istore 12
            goto 37
      StackMap locals: java.lang.reflect.WildcardType java.lang.reflect.Type java.lang.reflect.Type[] java.lang.reflect.Type[] java.lang.reflect.WildcardType java.lang.reflect.Type[] java.lang.reflect.Type[] java.lang.reflect.Type int int java.lang.reflect.Type[] top int int java.lang.reflect.Type[]
      StackMap stack:
        33: aload 14
            iload 12
            aaload
            astore 11 /* rBound */
        start local 11 // java.lang.reflect.Type rBound
        34: .line 187
            aload 11 /* rBound */
            aload 7 /* lBound */
            invokestatic org.springframework.util.TypeUtils.isAssignableBound:(Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;)Z
            ifne 36
        35: .line 188
            iconst_0
            ireturn
        end local 11 // java.lang.reflect.Type rBound
        36: .line 186
      StackMap locals:
      StackMap stack:
            iinc 12 1
      StackMap locals:
      StackMap stack:
        37: iload 12
            iload 13
            if_icmplt 33
        38: .line 192
            aload 6 /* rLowerBounds */
            dup
            astore 14
            arraylength
            istore 13
            iconst_0
            istore 12
            goto 43
      StackMap locals:
      StackMap stack:
        39: aload 14
            iload 12
            aaload
            astore 11 /* rBound */
        start local 11 // java.lang.reflect.Type rBound
        40: .line 193
            aload 11 /* rBound */
            aload 7 /* lBound */
            invokestatic org.springframework.util.TypeUtils.isAssignableBound:(Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;)Z
            ifne 42
        41: .line 194
            iconst_0
            ireturn
        end local 11 // java.lang.reflect.Type rBound
        42: .line 192
      StackMap locals:
      StackMap stack:
            iinc 12 1
      StackMap locals:
      StackMap stack:
        43: iload 12
            iload 13
            if_icmplt 39
        end local 7 // java.lang.reflect.Type lBound
        44: .line 185
            iinc 8 1
      StackMap locals: java.lang.reflect.WildcardType java.lang.reflect.Type java.lang.reflect.Type[] java.lang.reflect.Type[] java.lang.reflect.WildcardType java.lang.reflect.Type[] java.lang.reflect.Type[] top int int java.lang.reflect.Type[]
      StackMap stack:
        45: iload 8
            iload 9
            if_icmplt 31
        end local 6 // java.lang.reflect.Type[] rLowerBounds
        end local 5 // java.lang.reflect.Type[] rUpperBounds
        end local 4 // java.lang.reflect.WildcardType rhsWcType
        46: .line 198
            goto 59
        47: .line 200
      StackMap locals: java.lang.reflect.WildcardType java.lang.reflect.Type java.lang.reflect.Type[] java.lang.reflect.Type[]
      StackMap stack:
            aload 2 /* lUpperBounds */
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 52
      StackMap locals: java.lang.reflect.WildcardType java.lang.reflect.Type java.lang.reflect.Type[] java.lang.reflect.Type[] top int int java.lang.reflect.Type[]
      StackMap stack:
        48: aload 7
            iload 5
            aaload
            astore 4 /* lBound */
        start local 4 // java.lang.reflect.Type lBound
        49: .line 201
            aload 4 /* lBound */
            aload 1 /* rhsType */
            invokestatic org.springframework.util.TypeUtils.isAssignableBound:(Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;)Z
            ifne 51
        50: .line 202
            iconst_0
            ireturn
        end local 4 // java.lang.reflect.Type lBound
        51: .line 200
      StackMap locals:
      StackMap stack:
            iinc 5 1
      StackMap locals:
      StackMap stack:
        52: iload 5
            iload 6
            if_icmplt 48
        53: .line 206
            aload 3 /* lLowerBounds */
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 58
      StackMap locals:
      StackMap stack:
        54: aload 7
            iload 5
            aaload
            astore 4 /* lBound */
        start local 4 // java.lang.reflect.Type lBound
        55: .line 207
            aload 1 /* rhsType */
            aload 4 /* lBound */
            invokestatic org.springframework.util.TypeUtils.isAssignableBound:(Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;)Z
            ifne 57
        56: .line 208
            iconst_0
            ireturn
        end local 4 // java.lang.reflect.Type lBound
        57: .line 206
      StackMap locals:
      StackMap stack:
            iinc 5 1
      StackMap locals:
      StackMap stack:
        58: iload 5
            iload 6
            if_icmplt 54
        59: .line 213
      StackMap locals: java.lang.reflect.WildcardType java.lang.reflect.Type java.lang.reflect.Type[] java.lang.reflect.Type[]
      StackMap stack:
            iconst_1
            ireturn
        end local 3 // java.lang.reflect.Type[] lLowerBounds
        end local 2 // java.lang.reflect.Type[] lUpperBounds
        end local 1 // java.lang.reflect.Type rhsType
        end local 0 // java.lang.reflect.WildcardType lhsType
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   60     0       lhsType  Ljava/lang/reflect/WildcardType;
            0   60     1       rhsType  Ljava/lang/reflect/Type;
            1   60     2  lUpperBounds  [Ljava/lang/reflect/Type;
            4   60     3  lLowerBounds  [Ljava/lang/reflect/Type;
            8   46     4     rhsWcType  Ljava/lang/reflect/WildcardType;
            9   46     5  rUpperBounds  [Ljava/lang/reflect/Type;
           12   46     6  rLowerBounds  [Ljava/lang/reflect/Type;
           16   28     7        lBound  Ljava/lang/reflect/Type;
           18   20    11        rBound  Ljava/lang/reflect/Type;
           24   26    11        rBound  Ljava/lang/reflect/Type;
           32   44     7        lBound  Ljava/lang/reflect/Type;
           34   36    11        rBound  Ljava/lang/reflect/Type;
           40   42    11        rBound  Ljava/lang/reflect/Type;
           49   51     4        lBound  Ljava/lang/reflect/Type;
           55   57     4        lBound  Ljava/lang/reflect/Type;
    MethodParameters:
         Name  Flags
      lhsType  
      rhsType  

  public static boolean isAssignableBound(java.lang.reflect.Type, java.lang.reflect.Type);
    descriptor: (Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.reflect.Type lhsType
        start local 1 // java.lang.reflect.Type rhsType
         0: .line 217
            aload 1 /* rhsType */
            ifnonnull 2
         1: .line 218
            iconst_1
            ireturn
         2: .line 220
      StackMap locals:
      StackMap stack:
            aload 0 /* lhsType */
            ifnonnull 4
         3: .line 221
            iconst_0
            ireturn
         4: .line 223
      StackMap locals:
      StackMap stack:
            aload 0 /* lhsType */
            aload 1 /* rhsType */
            invokestatic org.springframework.util.TypeUtils.isAssignable:(Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;)Z
            ireturn
        end local 1 // java.lang.reflect.Type rhsType
        end local 0 // java.lang.reflect.Type lhsType
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0  lhsType  Ljava/lang/reflect/Type;
            0    5     1  rhsType  Ljava/lang/reflect/Type;
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
      1:
        org.springframework.lang.Nullable()
    MethodParameters:
         Name  Flags
      lhsType  
      rhsType  
}
SourceFile: "TypeUtils.java"