public abstract class org.springframework.expression.spel.ast.Operator extends org.springframework.expression.spel.ast.SpelNodeImpl
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.springframework.expression.spel.ast.Operator
  super_class: org.springframework.expression.spel.ast.SpelNodeImpl
{
  private final java.lang.String operatorName;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  protected java.lang.String leftActualDescriptor;
    descriptor: Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  protected java.lang.String rightActualDescriptor;
    descriptor: Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  public void <init>(java.lang.String, int, int, org.springframework.expression.spel.ast.SpelNodeImpl[]);
    descriptor: (Ljava/lang/String;II[Lorg/springframework/expression/spel/ast/SpelNodeImpl;)V
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=4, locals=5, args_size=5
        start local 0 // org.springframework.expression.spel.ast.Operator this
        start local 1 // java.lang.String payload
        start local 2 // int startPos
        start local 3 // int endPos
        start local 4 // org.springframework.expression.spel.ast.SpelNodeImpl[] operands
         0: .line 58
            aload 0 /* this */
            iload 2 /* startPos */
            iload 3 /* endPos */
            aload 4 /* operands */
            invokespecial org.springframework.expression.spel.ast.SpelNodeImpl.<init>:(II[Lorg/springframework/expression/spel/ast/SpelNodeImpl;)V
         1: .line 59
            aload 0 /* this */
            aload 1 /* payload */
            putfield org.springframework.expression.spel.ast.Operator.operatorName:Ljava/lang/String;
         2: .line 60
            return
        end local 4 // org.springframework.expression.spel.ast.SpelNodeImpl[] operands
        end local 3 // int endPos
        end local 2 // int startPos
        end local 1 // java.lang.String payload
        end local 0 // org.springframework.expression.spel.ast.Operator this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lorg/springframework/expression/spel/ast/Operator;
            0    3     1   payload  Ljava/lang/String;
            0    3     2  startPos  I
            0    3     3    endPos  I
            0    3     4  operands  [Lorg/springframework/expression/spel/ast/SpelNodeImpl;
    MethodParameters:
          Name  Flags
      payload   
      startPos  
      endPos    
      operands  

  public org.springframework.expression.spel.ast.SpelNodeImpl getLeftOperand();
    descriptor: ()Lorg/springframework/expression/spel/ast/SpelNodeImpl;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.springframework.expression.spel.ast.Operator this
         0: .line 64
            aload 0 /* this */
            getfield org.springframework.expression.spel.ast.Operator.children:[Lorg/springframework/expression/spel/ast/SpelNodeImpl;
            iconst_0
            aaload
            areturn
        end local 0 // org.springframework.expression.spel.ast.Operator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/expression/spel/ast/Operator;

  public org.springframework.expression.spel.ast.SpelNodeImpl getRightOperand();
    descriptor: ()Lorg/springframework/expression/spel/ast/SpelNodeImpl;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.springframework.expression.spel.ast.Operator this
         0: .line 68
            aload 0 /* this */
            getfield org.springframework.expression.spel.ast.Operator.children:[Lorg/springframework/expression/spel/ast/SpelNodeImpl;
            iconst_1
            aaload
            areturn
        end local 0 // org.springframework.expression.spel.ast.Operator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/expression/spel/ast/Operator;

  public final java.lang.String getOperatorName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.expression.spel.ast.Operator this
         0: .line 72
            aload 0 /* this */
            getfield org.springframework.expression.spel.ast.Operator.operatorName:Ljava/lang/String;
            areturn
        end local 0 // org.springframework.expression.spel.ast.Operator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/expression/spel/ast/Operator;

  public java.lang.String toStringAST();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // org.springframework.expression.spel.ast.Operator this
         0: .line 81
            new java.lang.StringBuilder
            dup
            ldc "("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            astore 1 /* sb */
        start local 1 // java.lang.StringBuilder sb
         1: .line 82
            aload 1 /* sb */
            aload 0 /* this */
            iconst_0
            invokevirtual org.springframework.expression.spel.ast.Operator.getChild:(I)Lorg/springframework/expression/spel/SpelNode;
            invokeinterface org.springframework.expression.spel.SpelNode.toStringAST:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         2: .line 83
            iconst_1
            istore 2 /* i */
        start local 2 // int i
         3: goto 7
         4: .line 84
      StackMap locals: java.lang.StringBuilder int
      StackMap stack:
            aload 1 /* sb */
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            invokevirtual org.springframework.expression.spel.ast.Operator.getOperatorName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         5: .line 85
            aload 1 /* sb */
            aload 0 /* this */
            iload 2 /* i */
            invokevirtual org.springframework.expression.spel.ast.Operator.getChild:(I)Lorg/springframework/expression/spel/SpelNode;
            invokeinterface org.springframework.expression.spel.SpelNode.toStringAST:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         6: .line 83
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 2 /* i */
            aload 0 /* this */
            invokevirtual org.springframework.expression.spel.ast.Operator.getChildCount:()I
            if_icmplt 4
        end local 2 // int i
         8: .line 87
            aload 1 /* sb */
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         9: .line 88
            aload 1 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StringBuilder sb
        end local 0 // org.springframework.expression.spel.ast.Operator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lorg/springframework/expression/spel/ast/Operator;
            1   10     1    sb  Ljava/lang/StringBuilder;
            3    8     2     i  I

  protected boolean isCompilableOperatorUsingNumerics();
    descriptor: ()Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=6, args_size=1
        start local 0 // org.springframework.expression.spel.ast.Operator this
         0: .line 93
            aload 0 /* this */
            invokevirtual org.springframework.expression.spel.ast.Operator.getLeftOperand:()Lorg/springframework/expression/spel/ast/SpelNodeImpl;
            astore 1 /* left */
        start local 1 // org.springframework.expression.spel.ast.SpelNodeImpl left
         1: .line 94
            aload 0 /* this */
            invokevirtual org.springframework.expression.spel.ast.Operator.getRightOperand:()Lorg/springframework/expression/spel/ast/SpelNodeImpl;
            astore 2 /* right */
        start local 2 // org.springframework.expression.spel.ast.SpelNodeImpl right
         2: .line 95
            aload 1 /* left */
            invokevirtual org.springframework.expression.spel.ast.SpelNodeImpl.isCompilable:()Z
            ifeq 3
            aload 2 /* right */
            invokevirtual org.springframework.expression.spel.ast.SpelNodeImpl.isCompilable:()Z
            ifne 4
         3: .line 96
      StackMap locals: org.springframework.expression.spel.ast.SpelNodeImpl org.springframework.expression.spel.ast.SpelNodeImpl
      StackMap stack:
            iconst_0
            ireturn
         4: .line 100
      StackMap locals:
      StackMap stack:
            aload 1 /* left */
            getfield org.springframework.expression.spel.ast.SpelNodeImpl.exitTypeDescriptor:Ljava/lang/String;
            astore 3 /* leftDesc */
        start local 3 // java.lang.String leftDesc
         5: .line 101
            aload 2 /* right */
            getfield org.springframework.expression.spel.ast.SpelNodeImpl.exitTypeDescriptor:Ljava/lang/String;
            astore 4 /* rightDesc */
        start local 4 // java.lang.String rightDesc
         6: .line 103
            aload 3 /* leftDesc */
            aload 4 /* rightDesc */
            aload 0 /* this */
            getfield org.springframework.expression.spel.ast.Operator.leftActualDescriptor:Ljava/lang/String;
            aload 0 /* this */
            getfield org.springframework.expression.spel.ast.Operator.rightActualDescriptor:Ljava/lang/String;
         7: .line 102
            invokestatic org.springframework.expression.spel.ast.Operator$DescriptorComparison.checkNumericCompatibility:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/springframework/expression/spel/ast/Operator$DescriptorComparison;
            astore 5 /* dc */
        start local 5 // org.springframework.expression.spel.ast.Operator$DescriptorComparison dc
         8: .line 104
            aload 5 /* dc */
            getfield org.springframework.expression.spel.ast.Operator$DescriptorComparison.areNumbers:Z
            ifeq 9
            aload 5 /* dc */
            getfield org.springframework.expression.spel.ast.Operator$DescriptorComparison.areCompatible:Z
            ifeq 9
            iconst_1
            ireturn
      StackMap locals: java.lang.String java.lang.String org.springframework.expression.spel.ast.Operator$DescriptorComparison
      StackMap stack:
         9: iconst_0
            ireturn
        end local 5 // org.springframework.expression.spel.ast.Operator$DescriptorComparison dc
        end local 4 // java.lang.String rightDesc
        end local 3 // java.lang.String leftDesc
        end local 2 // org.springframework.expression.spel.ast.SpelNodeImpl right
        end local 1 // org.springframework.expression.spel.ast.SpelNodeImpl left
        end local 0 // org.springframework.expression.spel.ast.Operator this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   10     0       this  Lorg/springframework/expression/spel/ast/Operator;
            1   10     1       left  Lorg/springframework/expression/spel/ast/SpelNodeImpl;
            2   10     2      right  Lorg/springframework/expression/spel/ast/SpelNodeImpl;
            5   10     3   leftDesc  Ljava/lang/String;
            6   10     4  rightDesc  Ljava/lang/String;
            8   10     5         dc  Lorg/springframework/expression/spel/ast/Operator$DescriptorComparison;

  protected void generateComparisonCode(org.springframework.asm.MethodVisitor, org.springframework.expression.spel.CodeFlow, int, int);
    descriptor: (Lorg/springframework/asm/MethodVisitor;Lorg/springframework/expression/spel/CodeFlow;II)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=18, args_size=5
        start local 0 // org.springframework.expression.spel.ast.Operator this
        start local 1 // org.springframework.asm.MethodVisitor mv
        start local 2 // org.springframework.expression.spel.CodeFlow cf
        start local 3 // int compInstruction1
        start local 4 // int compInstruction2
         0: .line 112
            aload 0 /* this */
            invokevirtual org.springframework.expression.spel.ast.Operator.getLeftOperand:()Lorg/springframework/expression/spel/ast/SpelNodeImpl;
            astore 5 /* left */
        start local 5 // org.springframework.expression.spel.ast.SpelNodeImpl left
         1: .line 113
            aload 0 /* this */
            invokevirtual org.springframework.expression.spel.ast.Operator.getRightOperand:()Lorg/springframework/expression/spel/ast/SpelNodeImpl;
            astore 6 /* right */
        start local 6 // org.springframework.expression.spel.ast.SpelNodeImpl right
         2: .line 114
            aload 5 /* left */
            getfield org.springframework.expression.spel.ast.SpelNodeImpl.exitTypeDescriptor:Ljava/lang/String;
            astore 7 /* leftDesc */
        start local 7 // java.lang.String leftDesc
         3: .line 115
            aload 6 /* right */
            getfield org.springframework.expression.spel.ast.SpelNodeImpl.exitTypeDescriptor:Ljava/lang/String;
            astore 8 /* rightDesc */
        start local 8 // java.lang.String rightDesc
         4: .line 116
            new org.springframework.asm.Label
            dup
            invokespecial org.springframework.asm.Label.<init>:()V
            astore 9 /* elseTarget */
        start local 9 // org.springframework.asm.Label elseTarget
         5: .line 117
            new org.springframework.asm.Label
            dup
            invokespecial org.springframework.asm.Label.<init>:()V
            astore 10 /* endOfIf */
        start local 10 // org.springframework.asm.Label endOfIf
         6: .line 118
            aload 7 /* leftDesc */
            invokestatic org.springframework.expression.spel.CodeFlow.isPrimitive:(Ljava/lang/String;)Z
            ifeq 7
            iconst_0
            goto 8
      StackMap locals: org.springframework.expression.spel.ast.Operator org.springframework.asm.MethodVisitor org.springframework.expression.spel.CodeFlow int int org.springframework.expression.spel.ast.SpelNodeImpl org.springframework.expression.spel.ast.SpelNodeImpl java.lang.String java.lang.String org.springframework.asm.Label org.springframework.asm.Label
      StackMap stack:
         7: iconst_1
      StackMap locals:
      StackMap stack: int
         8: istore 11 /* unboxLeft */
        start local 11 // boolean unboxLeft
         9: .line 119
            aload 8 /* rightDesc */
            invokestatic org.springframework.expression.spel.CodeFlow.isPrimitive:(Ljava/lang/String;)Z
            ifeq 10
            iconst_0
            goto 11
      StackMap locals: int
      StackMap stack:
        10: iconst_1
      StackMap locals:
      StackMap stack: int
        11: istore 12 /* unboxRight */
        start local 12 // boolean unboxRight
        12: .line 121
            aload 7 /* leftDesc */
            aload 8 /* rightDesc */
            aload 0 /* this */
            getfield org.springframework.expression.spel.ast.Operator.leftActualDescriptor:Ljava/lang/String;
            aload 0 /* this */
            getfield org.springframework.expression.spel.ast.Operator.rightActualDescriptor:Ljava/lang/String;
        13: .line 120
            invokestatic org.springframework.expression.spel.ast.Operator$DescriptorComparison.checkNumericCompatibility:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/springframework/expression/spel/ast/Operator$DescriptorComparison;
            astore 13 /* dc */
        start local 13 // org.springframework.expression.spel.ast.Operator$DescriptorComparison dc
        14: .line 122
            aload 13 /* dc */
            getfield org.springframework.expression.spel.ast.Operator$DescriptorComparison.compatibleType:C
            istore 14 /* targetType */
        start local 14 // char targetType
        15: .line 124
            aload 2 /* cf */
            invokevirtual org.springframework.expression.spel.CodeFlow.enterCompilationScope:()V
        16: .line 125
            aload 5 /* left */
            aload 1 /* mv */
            aload 2 /* cf */
            invokevirtual org.springframework.expression.spel.ast.SpelNodeImpl.generateCode:(Lorg/springframework/asm/MethodVisitor;Lorg/springframework/expression/spel/CodeFlow;)V
        17: .line 126
            aload 2 /* cf */
            invokevirtual org.springframework.expression.spel.CodeFlow.exitCompilationScope:()V
        18: .line 127
            aload 7 /* leftDesc */
            invokestatic org.springframework.expression.spel.CodeFlow.isPrimitive:(Ljava/lang/String;)Z
            ifeq 21
        19: .line 128
            aload 1 /* mv */
            aload 7 /* leftDesc */
            invokestatic org.springframework.expression.spel.CodeFlow.insertBoxIfNecessary:(Lorg/springframework/asm/MethodVisitor;Ljava/lang/String;)V
        20: .line 129
            iconst_1
            istore 11 /* unboxLeft */
        21: .line 132
      StackMap locals: int org.springframework.expression.spel.ast.Operator$DescriptorComparison int
      StackMap stack:
            aload 2 /* cf */
            invokevirtual org.springframework.expression.spel.CodeFlow.enterCompilationScope:()V
        22: .line 133
            aload 6 /* right */
            aload 1 /* mv */
            aload 2 /* cf */
            invokevirtual org.springframework.expression.spel.ast.SpelNodeImpl.generateCode:(Lorg/springframework/asm/MethodVisitor;Lorg/springframework/expression/spel/CodeFlow;)V
        23: .line 134
            aload 2 /* cf */
            invokevirtual org.springframework.expression.spel.CodeFlow.exitCompilationScope:()V
        24: .line 135
            aload 8 /* rightDesc */
            invokestatic org.springframework.expression.spel.CodeFlow.isPrimitive:(Ljava/lang/String;)Z
            ifeq 27
        25: .line 136
            aload 1 /* mv */
            aload 8 /* rightDesc */
            invokestatic org.springframework.expression.spel.CodeFlow.insertBoxIfNecessary:(Lorg/springframework/asm/MethodVisitor;Ljava/lang/String;)V
        26: .line 137
            iconst_1
            istore 12 /* unboxRight */
        27: .line 142
      StackMap locals:
      StackMap stack:
            new org.springframework.asm.Label
            dup
            invokespecial org.springframework.asm.Label.<init>:()V
            astore 15 /* rightIsNonNull */
        start local 15 // org.springframework.asm.Label rightIsNonNull
        28: .line 143
            aload 1 /* mv */
            bipush 89
            invokevirtual org.springframework.asm.MethodVisitor.visitInsn:(I)V
        29: .line 144
            aload 1 /* mv */
            sipush 199
            aload 15 /* rightIsNonNull */
            invokevirtual org.springframework.asm.MethodVisitor.visitJumpInsn:(ILorg/springframework/asm/Label;)V
        30: .line 146
            aload 1 /* mv */
            bipush 95
            invokevirtual org.springframework.asm.MethodVisitor.visitInsn:(I)V
        31: .line 147
            new org.springframework.asm.Label
            dup
            invokespecial org.springframework.asm.Label.<init>:()V
            astore 16 /* leftNotNullRightIsNull */
        start local 16 // org.springframework.asm.Label leftNotNullRightIsNull
        32: .line 148
            aload 1 /* mv */
            sipush 199
            aload 16 /* leftNotNullRightIsNull */
            invokevirtual org.springframework.asm.MethodVisitor.visitJumpInsn:(ILorg/springframework/asm/Label;)V
        33: .line 150
            aload 1 /* mv */
            bipush 87
            invokevirtual org.springframework.asm.MethodVisitor.visitInsn:(I)V
        34: .line 152
            iload 3 /* compInstruction1 */
            tableswitch { // 155 - 158
                  155: 37
                  156: 35
                  157: 37
                  158: 35
              default: 39
          }
        35: .line 155
      StackMap locals: org.springframework.asm.Label org.springframework.asm.Label
      StackMap stack:
            aload 1 /* mv */
            iconst_3
            invokevirtual org.springframework.asm.MethodVisitor.visitInsn:(I)V
        36: .line 156
            goto 40
        37: .line 159
      StackMap locals:
      StackMap stack:
            aload 1 /* mv */
            iconst_4
            invokevirtual org.springframework.asm.MethodVisitor.visitInsn:(I)V
        38: .line 160
            goto 40
        39: .line 162
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unsupported: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 3 /* compInstruction1 */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        40: .line 164
      StackMap locals:
      StackMap stack:
            aload 1 /* mv */
            sipush 167
            aload 10 /* endOfIf */
            invokevirtual org.springframework.asm.MethodVisitor.visitJumpInsn:(ILorg/springframework/asm/Label;)V
        41: .line 165
            aload 1 /* mv */
            aload 16 /* leftNotNullRightIsNull */
            invokevirtual org.springframework.asm.MethodVisitor.visitLabel:(Lorg/springframework/asm/Label;)V
        42: .line 167
            aload 1 /* mv */
            bipush 87
            invokevirtual org.springframework.asm.MethodVisitor.visitInsn:(I)V
        43: .line 169
            iload 3 /* compInstruction1 */
            tableswitch { // 155 - 158
                  155: 46
                  156: 44
                  157: 44
                  158: 46
              default: 48
          }
        44: .line 172
      StackMap locals:
      StackMap stack:
            aload 1 /* mv */
            iconst_3
            invokevirtual org.springframework.asm.MethodVisitor.visitInsn:(I)V
        45: .line 173
            goto 49
        46: .line 176
      StackMap locals:
      StackMap stack:
            aload 1 /* mv */
            iconst_4
            invokevirtual org.springframework.asm.MethodVisitor.visitInsn:(I)V
        47: .line 177
            goto 49
        48: .line 179
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unsupported: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 3 /* compInstruction1 */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        49: .line 181
      StackMap locals:
      StackMap stack:
            aload 1 /* mv */
            sipush 167
            aload 10 /* endOfIf */
            invokevirtual org.springframework.asm.MethodVisitor.visitJumpInsn:(ILorg/springframework/asm/Label;)V
        50: .line 183
            aload 1 /* mv */
            aload 15 /* rightIsNonNull */
            invokevirtual org.springframework.asm.MethodVisitor.visitLabel:(Lorg/springframework/asm/Label;)V
        51: .line 185
            aload 1 /* mv */
            bipush 95
            invokevirtual org.springframework.asm.MethodVisitor.visitInsn:(I)V
        52: .line 186
            aload 1 /* mv */
            bipush 89
            invokevirtual org.springframework.asm.MethodVisitor.visitInsn:(I)V
        53: .line 187
            new org.springframework.asm.Label
            dup
            invokespecial org.springframework.asm.Label.<init>:()V
            astore 17 /* neitherRightNorLeftAreNull */
        start local 17 // org.springframework.asm.Label neitherRightNorLeftAreNull
        54: .line 188
            aload 1 /* mv */
            sipush 199
            aload 17 /* neitherRightNorLeftAreNull */
            invokevirtual org.springframework.asm.MethodVisitor.visitJumpInsn:(ILorg/springframework/asm/Label;)V
        55: .line 190
            aload 1 /* mv */
            bipush 88
            invokevirtual org.springframework.asm.MethodVisitor.visitInsn:(I)V
        56: .line 191
            iload 3 /* compInstruction1 */
            tableswitch { // 155 - 158
                  155: 59
                  156: 57
                  157: 57
                  158: 59
              default: 61
          }
        57: .line 194
      StackMap locals: org.springframework.asm.Label
      StackMap stack:
            aload 1 /* mv */
            iconst_4
            invokevirtual org.springframework.asm.MethodVisitor.visitInsn:(I)V
        58: .line 195
            goto 62
        59: .line 198
      StackMap locals:
      StackMap stack:
            aload 1 /* mv */
            iconst_3
            invokevirtual org.springframework.asm.MethodVisitor.visitInsn:(I)V
        60: .line 199
            goto 62
        61: .line 201
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unsupported: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 3 /* compInstruction1 */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        62: .line 203
      StackMap locals:
      StackMap stack:
            aload 1 /* mv */
            sipush 167
            aload 10 /* endOfIf */
            invokevirtual org.springframework.asm.MethodVisitor.visitJumpInsn:(ILorg/springframework/asm/Label;)V
        63: .line 204
            aload 1 /* mv */
            aload 17 /* neitherRightNorLeftAreNull */
            invokevirtual org.springframework.asm.MethodVisitor.visitLabel:(Lorg/springframework/asm/Label;)V
        64: .line 206
            iload 11 /* unboxLeft */
            ifeq 66
        65: .line 207
            aload 1 /* mv */
            iload 14 /* targetType */
            aload 7 /* leftDesc */
            invokestatic org.springframework.expression.spel.CodeFlow.insertUnboxInsns:(Lorg/springframework/asm/MethodVisitor;CLjava/lang/String;)V
        66: .line 212
      StackMap locals:
      StackMap stack:
            iload 14 /* targetType */
            bipush 68
            if_icmpeq 67
            iload 14 /* targetType */
            bipush 74
            if_icmpne 70
        67: .line 213
      StackMap locals:
      StackMap stack:
            aload 1 /* mv */
            bipush 93
            invokevirtual org.springframework.asm.MethodVisitor.visitInsn:(I)V
        68: .line 214
            aload 1 /* mv */
            bipush 88
            invokevirtual org.springframework.asm.MethodVisitor.visitInsn:(I)V
        69: .line 215
            goto 71
        70: .line 217
      StackMap locals:
      StackMap stack:
            aload 1 /* mv */
            bipush 95
            invokevirtual org.springframework.asm.MethodVisitor.visitInsn:(I)V
        71: .line 220
      StackMap locals:
      StackMap stack:
            iload 12 /* unboxRight */
            ifeq 73
        72: .line 221
            aload 1 /* mv */
            iload 14 /* targetType */
            aload 8 /* rightDesc */
            invokestatic org.springframework.expression.spel.CodeFlow.insertUnboxInsns:(Lorg/springframework/asm/MethodVisitor;CLjava/lang/String;)V
        73: .line 225
      StackMap locals:
      StackMap stack:
            iload 14 /* targetType */
            bipush 68
            if_icmpne 77
        74: .line 226
            aload 1 /* mv */
            sipush 152
            invokevirtual org.springframework.asm.MethodVisitor.visitInsn:(I)V
        75: .line 227
            aload 1 /* mv */
            iload 3 /* compInstruction1 */
            aload 9 /* elseTarget */
            invokevirtual org.springframework.asm.MethodVisitor.visitJumpInsn:(ILorg/springframework/asm/Label;)V
        76: .line 228
            goto 89
        77: .line 229
      StackMap locals:
      StackMap stack:
            iload 14 /* targetType */
            bipush 70
            if_icmpne 81
        78: .line 230
            aload 1 /* mv */
            sipush 150
            invokevirtual org.springframework.asm.MethodVisitor.visitInsn:(I)V
        79: .line 231
            aload 1 /* mv */
            iload 3 /* compInstruction1 */
            aload 9 /* elseTarget */
            invokevirtual org.springframework.asm.MethodVisitor.visitJumpInsn:(ILorg/springframework/asm/Label;)V
        80: .line 232
            goto 89
        81: .line 233
      StackMap locals:
      StackMap stack:
            iload 14 /* targetType */
            bipush 74
            if_icmpne 85
        82: .line 234
            aload 1 /* mv */
            sipush 148
            invokevirtual org.springframework.asm.MethodVisitor.visitInsn:(I)V
        83: .line 235
            aload 1 /* mv */
            iload 3 /* compInstruction1 */
            aload 9 /* elseTarget */
            invokevirtual org.springframework.asm.MethodVisitor.visitJumpInsn:(ILorg/springframework/asm/Label;)V
        84: .line 236
            goto 89
        85: .line 237
      StackMap locals:
      StackMap stack:
            iload 14 /* targetType */
            bipush 73
            if_icmpne 88
        86: .line 238
            aload 1 /* mv */
            iload 4 /* compInstruction2 */
            aload 9 /* elseTarget */
            invokevirtual org.springframework.asm.MethodVisitor.visitJumpInsn:(ILorg/springframework/asm/Label;)V
        87: .line 239
            goto 89
        88: .line 241
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unexpected descriptor "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 7 /* leftDesc */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        89: .line 245
      StackMap locals:
      StackMap stack:
            aload 1 /* mv */
            iconst_4
            invokevirtual org.springframework.asm.MethodVisitor.visitInsn:(I)V
        90: .line 246
            aload 1 /* mv */
            sipush 167
            aload 10 /* endOfIf */
            invokevirtual org.springframework.asm.MethodVisitor.visitJumpInsn:(ILorg/springframework/asm/Label;)V
        91: .line 247
            aload 1 /* mv */
            aload 9 /* elseTarget */
            invokevirtual org.springframework.asm.MethodVisitor.visitLabel:(Lorg/springframework/asm/Label;)V
        92: .line 248
            aload 1 /* mv */
            iconst_3
            invokevirtual org.springframework.asm.MethodVisitor.visitInsn:(I)V
        93: .line 249
            aload 1 /* mv */
            aload 10 /* endOfIf */
            invokevirtual org.springframework.asm.MethodVisitor.visitLabel:(Lorg/springframework/asm/Label;)V
        94: .line 250
            aload 2 /* cf */
            ldc "Z"
            invokevirtual org.springframework.expression.spel.CodeFlow.pushDescriptor:(Ljava/lang/String;)V
        95: .line 251
            return
        end local 17 // org.springframework.asm.Label neitherRightNorLeftAreNull
        end local 16 // org.springframework.asm.Label leftNotNullRightIsNull
        end local 15 // org.springframework.asm.Label rightIsNonNull
        end local 14 // char targetType
        end local 13 // org.springframework.expression.spel.ast.Operator$DescriptorComparison dc
        end local 12 // boolean unboxRight
        end local 11 // boolean unboxLeft
        end local 10 // org.springframework.asm.Label endOfIf
        end local 9 // org.springframework.asm.Label elseTarget
        end local 8 // java.lang.String rightDesc
        end local 7 // java.lang.String leftDesc
        end local 6 // org.springframework.expression.spel.ast.SpelNodeImpl right
        end local 5 // org.springframework.expression.spel.ast.SpelNodeImpl left
        end local 4 // int compInstruction2
        end local 3 // int compInstruction1
        end local 2 // org.springframework.expression.spel.CodeFlow cf
        end local 1 // org.springframework.asm.MethodVisitor mv
        end local 0 // org.springframework.expression.spel.ast.Operator this
      LocalVariableTable:
        Start  End  Slot                        Name  Signature
            0   96     0                        this  Lorg/springframework/expression/spel/ast/Operator;
            0   96     1                          mv  Lorg/springframework/asm/MethodVisitor;
            0   96     2                          cf  Lorg/springframework/expression/spel/CodeFlow;
            0   96     3            compInstruction1  I
            0   96     4            compInstruction2  I
            1   96     5                        left  Lorg/springframework/expression/spel/ast/SpelNodeImpl;
            2   96     6                       right  Lorg/springframework/expression/spel/ast/SpelNodeImpl;
            3   96     7                    leftDesc  Ljava/lang/String;
            4   96     8                   rightDesc  Ljava/lang/String;
            5   96     9                  elseTarget  Lorg/springframework/asm/Label;
            6   96    10                     endOfIf  Lorg/springframework/asm/Label;
            9   96    11                   unboxLeft  Z
           12   96    12                  unboxRight  Z
           14   96    13                          dc  Lorg/springframework/expression/spel/ast/Operator$DescriptorComparison;
           15   96    14                  targetType  C
           28   96    15              rightIsNonNull  Lorg/springframework/asm/Label;
           32   96    16      leftNotNullRightIsNull  Lorg/springframework/asm/Label;
           54   96    17  neitherRightNorLeftAreNull  Lorg/springframework/asm/Label;
    MethodParameters:
                  Name  Flags
      mv                
      cf                
      compInstruction1  
      compInstruction2  

  public static boolean equalityCheck(org.springframework.expression.EvaluationContext, java.lang.Object, java.lang.Object);
    descriptor: (Lorg/springframework/expression/EvaluationContext;Ljava/lang/Object;Ljava/lang/Object;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // org.springframework.expression.EvaluationContext context
        start local 1 // java.lang.Object left
        start local 2 // java.lang.Object right
         0: .line 264
            aload 1 /* left */
            instanceof java.lang.Number
            ifeq 33
            aload 2 /* right */
            instanceof java.lang.Number
            ifeq 33
         1: .line 265
            aload 1 /* left */
            checkcast java.lang.Number
            astore 3 /* leftNumber */
        start local 3 // java.lang.Number leftNumber
         2: .line 266
            aload 2 /* right */
            checkcast java.lang.Number
            astore 4 /* rightNumber */
        start local 4 // java.lang.Number rightNumber
         3: .line 268
            aload 3 /* leftNumber */
            instanceof java.math.BigDecimal
            ifne 4
            aload 4 /* rightNumber */
            instanceof java.math.BigDecimal
            ifeq 8
         4: .line 269
      StackMap locals: java.lang.Number java.lang.Number
      StackMap stack:
            aload 3 /* leftNumber */
            ldc Ljava/math/BigDecimal;
            invokestatic org.springframework.util.NumberUtils.convertNumberToTargetClass:(Ljava/lang/Number;Ljava/lang/Class;)Ljava/lang/Number;
            checkcast java.math.BigDecimal
            astore 5 /* leftBigDecimal */
        start local 5 // java.math.BigDecimal leftBigDecimal
         5: .line 270
            aload 4 /* rightNumber */
            ldc Ljava/math/BigDecimal;
            invokestatic org.springframework.util.NumberUtils.convertNumberToTargetClass:(Ljava/lang/Number;Ljava/lang/Class;)Ljava/lang/Number;
            checkcast java.math.BigDecimal
            astore 6 /* rightBigDecimal */
        start local 6 // java.math.BigDecimal rightBigDecimal
         6: .line 271
            aload 5 /* leftBigDecimal */
            aload 6 /* rightBigDecimal */
            invokevirtual java.math.BigDecimal.compareTo:(Ljava/math/BigDecimal;)I
            ifne 7
            iconst_1
            ireturn
      StackMap locals: java.math.BigDecimal java.math.BigDecimal
      StackMap stack:
         7: iconst_0
            ireturn
        end local 6 // java.math.BigDecimal rightBigDecimal
        end local 5 // java.math.BigDecimal leftBigDecimal
         8: .line 273
      StackMap locals:
      StackMap stack:
            aload 3 /* leftNumber */
            instanceof java.lang.Double
            ifne 9
            aload 4 /* rightNumber */
            instanceof java.lang.Double
            ifeq 11
         9: .line 274
      StackMap locals:
      StackMap stack:
            aload 3 /* leftNumber */
            invokevirtual java.lang.Number.doubleValue:()D
            aload 4 /* rightNumber */
            invokevirtual java.lang.Number.doubleValue:()D
            dcmpl
            ifne 10
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
        10: iconst_0
            ireturn
        11: .line 276
      StackMap locals:
      StackMap stack:
            aload 3 /* leftNumber */
            instanceof java.lang.Float
            ifne 12
            aload 4 /* rightNumber */
            instanceof java.lang.Float
            ifeq 14
        12: .line 277
      StackMap locals:
      StackMap stack:
            aload 3 /* leftNumber */
            invokevirtual java.lang.Number.floatValue:()F
            aload 4 /* rightNumber */
            invokevirtual java.lang.Number.floatValue:()F
            fcmpl
            ifne 13
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
        13: iconst_0
            ireturn
        14: .line 279
      StackMap locals:
      StackMap stack:
            aload 3 /* leftNumber */
            instanceof java.math.BigInteger
            ifne 15
            aload 4 /* rightNumber */
            instanceof java.math.BigInteger
            ifeq 19
        15: .line 280
      StackMap locals:
      StackMap stack:
            aload 3 /* leftNumber */
            ldc Ljava/math/BigInteger;
            invokestatic org.springframework.util.NumberUtils.convertNumberToTargetClass:(Ljava/lang/Number;Ljava/lang/Class;)Ljava/lang/Number;
            checkcast java.math.BigInteger
            astore 5 /* leftBigInteger */
        start local 5 // java.math.BigInteger leftBigInteger
        16: .line 281
            aload 4 /* rightNumber */
            ldc Ljava/math/BigInteger;
            invokestatic org.springframework.util.NumberUtils.convertNumberToTargetClass:(Ljava/lang/Number;Ljava/lang/Class;)Ljava/lang/Number;
            checkcast java.math.BigInteger
            astore 6 /* rightBigInteger */
        start local 6 // java.math.BigInteger rightBigInteger
        17: .line 282
            aload 5 /* leftBigInteger */
            aload 6 /* rightBigInteger */
            invokevirtual java.math.BigInteger.compareTo:(Ljava/math/BigInteger;)I
            ifne 18
            iconst_1
            ireturn
      StackMap locals: java.math.BigInteger java.math.BigInteger
      StackMap stack:
        18: iconst_0
            ireturn
        end local 6 // java.math.BigInteger rightBigInteger
        end local 5 // java.math.BigInteger leftBigInteger
        19: .line 284
      StackMap locals:
      StackMap stack:
            aload 3 /* leftNumber */
            instanceof java.lang.Long
            ifne 20
            aload 4 /* rightNumber */
            instanceof java.lang.Long
            ifeq 22
        20: .line 285
      StackMap locals:
      StackMap stack:
            aload 3 /* leftNumber */
            invokevirtual java.lang.Number.longValue:()J
            aload 4 /* rightNumber */
            invokevirtual java.lang.Number.longValue:()J
            lcmp
            ifne 21
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
        21: iconst_0
            ireturn
        22: .line 287
      StackMap locals:
      StackMap stack:
            aload 3 /* leftNumber */
            instanceof java.lang.Integer
            ifne 23
            aload 4 /* rightNumber */
            instanceof java.lang.Integer
            ifeq 25
        23: .line 288
      StackMap locals:
      StackMap stack:
            aload 3 /* leftNumber */
            invokevirtual java.lang.Number.intValue:()I
            aload 4 /* rightNumber */
            invokevirtual java.lang.Number.intValue:()I
            if_icmpne 24
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
        24: iconst_0
            ireturn
        25: .line 290
      StackMap locals:
      StackMap stack:
            aload 3 /* leftNumber */
            instanceof java.lang.Short
            ifne 26
            aload 4 /* rightNumber */
            instanceof java.lang.Short
            ifeq 28
        26: .line 291
      StackMap locals:
      StackMap stack:
            aload 3 /* leftNumber */
            invokevirtual java.lang.Number.shortValue:()S
            aload 4 /* rightNumber */
            invokevirtual java.lang.Number.shortValue:()S
            if_icmpne 27
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
        27: iconst_0
            ireturn
        28: .line 293
      StackMap locals:
      StackMap stack:
            aload 3 /* leftNumber */
            instanceof java.lang.Byte
            ifne 29
            aload 4 /* rightNumber */
            instanceof java.lang.Byte
            ifeq 31
        29: .line 294
      StackMap locals:
      StackMap stack:
            aload 3 /* leftNumber */
            invokevirtual java.lang.Number.byteValue:()B
            aload 4 /* rightNumber */
            invokevirtual java.lang.Number.byteValue:()B
            if_icmpne 30
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
        30: iconst_0
            ireturn
        31: .line 298
      StackMap locals:
      StackMap stack:
            aload 3 /* leftNumber */
            invokevirtual java.lang.Number.doubleValue:()D
            aload 4 /* rightNumber */
            invokevirtual java.lang.Number.doubleValue:()D
            dcmpl
            ifne 32
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
        32: iconst_0
            ireturn
        end local 4 // java.lang.Number rightNumber
        end local 3 // java.lang.Number leftNumber
        33: .line 302
      StackMap locals:
      StackMap stack:
            aload 1 /* left */
            instanceof java.lang.CharSequence
            ifeq 35
            aload 2 /* right */
            instanceof java.lang.CharSequence
            ifeq 35
        34: .line 303
            aload 1 /* left */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            aload 2 /* right */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ireturn
        35: .line 306
      StackMap locals:
      StackMap stack:
            aload 1 /* left */
            instanceof java.lang.Boolean
            ifeq 37
            aload 2 /* right */
            instanceof java.lang.Boolean
            ifeq 37
        36: .line 307
            aload 1 /* left */
            aload 2 /* right */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ireturn
        37: .line 310
      StackMap locals:
      StackMap stack:
            aload 1 /* left */
            aload 2 /* right */
            invokestatic org.springframework.util.ObjectUtils.nullSafeEquals:(Ljava/lang/Object;Ljava/lang/Object;)Z
            ifeq 39
        38: .line 311
            iconst_1
            ireturn
        39: .line 314
      StackMap locals:
      StackMap stack:
            aload 1 /* left */
            instanceof java.lang.Comparable
            ifeq 44
            aload 2 /* right */
            instanceof java.lang.Comparable
            ifeq 44
        40: .line 315
            aload 1 /* left */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aload 2 /* right */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokestatic org.springframework.util.ClassUtils.determineCommonAncestor:(Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/Class;
            astore 3 /* ancestor */
        start local 3 // java.lang.Class ancestor
        41: .line 316
            aload 3 /* ancestor */
            ifnull 44
            ldc Ljava/lang/Comparable;
            aload 3 /* ancestor */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 44
        42: .line 317
            aload 0 /* context */
            invokeinterface org.springframework.expression.EvaluationContext.getTypeComparator:()Lorg/springframework/expression/TypeComparator;
            aload 1 /* left */
            aload 2 /* right */
            invokeinterface org.springframework.expression.TypeComparator.compare:(Ljava/lang/Object;Ljava/lang/Object;)I
            ifne 43
            iconst_1
            ireturn
      StackMap locals: java.lang.Class
      StackMap stack:
        43: iconst_0
            ireturn
        end local 3 // java.lang.Class ancestor
        44: .line 321
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // java.lang.Object right
        end local 1 // java.lang.Object left
        end local 0 // org.springframework.expression.EvaluationContext context
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   45     0          context  Lorg/springframework/expression/EvaluationContext;
            0   45     1             left  Ljava/lang/Object;
            0   45     2            right  Ljava/lang/Object;
            2   33     3       leftNumber  Ljava/lang/Number;
            3   33     4      rightNumber  Ljava/lang/Number;
            5    8     5   leftBigDecimal  Ljava/math/BigDecimal;
            6    8     6  rightBigDecimal  Ljava/math/BigDecimal;
           16   19     5   leftBigInteger  Ljava/math/BigInteger;
           17   19     6  rightBigInteger  Ljava/math/BigInteger;
           41   44     3         ancestor  Ljava/lang/Class<*>;
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
        org.springframework.lang.Nullable()
      2:
        org.springframework.lang.Nullable()
    MethodParameters:
         Name  Flags
      context  
      left     
      right    
}
SourceFile: "Operator.java"
NestMembers:
  org.springframework.expression.spel.ast.Operator$DescriptorComparison
InnerClasses:
  protected final DescriptorComparison = org.springframework.expression.spel.ast.Operator$DescriptorComparison of org.springframework.expression.spel.ast.Operator