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, org.springframework.expression.spel.ast.SpelNodeImpl[]);
    descriptor: (Ljava/lang/String;I[Lorg/springframework/expression/spel/ast/SpelNodeImpl;)V
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // org.springframework.expression.spel.ast.Operator this
        start local 1 // java.lang.String payload
        start local 2 // int pos
        start local 3 // org.springframework.expression.spel.ast.SpelNodeImpl[] operands
         0: .line 58
            aload 0 /* this */
            iload 2 /* pos */
            aload 3 /* operands */
            invokespecial org.springframework.expression.spel.ast.SpelNodeImpl.<init>:(I[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 3 // org.springframework.expression.spel.ast.SpelNodeImpl[] operands
        end local 2 // int pos
        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       pos  I
            0    3     3  operands  [Lorg/springframework/expression/spel/ast/SpelNodeImpl;
    MethodParameters:
          Name  Flags
      payload   
      pos       
      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=15, 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 117
            aload 7 /* leftDesc */
            invokestatic org.springframework.expression.spel.CodeFlow.isPrimitive:(Ljava/lang/String;)Z
            ifeq 5
            iconst_0
            goto 6
      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
      StackMap stack:
         5: iconst_1
      StackMap locals:
      StackMap stack: int
         6: istore 9 /* unboxLeft */
        start local 9 // boolean unboxLeft
         7: .line 118
            aload 8 /* rightDesc */
            invokestatic org.springframework.expression.spel.CodeFlow.isPrimitive:(Ljava/lang/String;)Z
            ifeq 8
            iconst_0
            goto 9
      StackMap locals: int
      StackMap stack:
         8: iconst_1
      StackMap locals:
      StackMap stack: int
         9: istore 10 /* unboxRight */
        start local 10 // boolean unboxRight
        10: .line 120
            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;
        11: .line 119
            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 11 /* dc */
        start local 11 // org.springframework.expression.spel.ast.Operator$DescriptorComparison dc
        12: .line 121
            aload 11 /* dc */
            getfield org.springframework.expression.spel.ast.Operator$DescriptorComparison.compatibleType:C
            istore 12 /* targetType */
        start local 12 // char targetType
        13: .line 123
            aload 2 /* cf */
            invokevirtual org.springframework.expression.spel.CodeFlow.enterCompilationScope:()V
        14: .line 124
            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
        15: .line 125
            aload 2 /* cf */
            invokevirtual org.springframework.expression.spel.CodeFlow.exitCompilationScope:()V
        16: .line 126
            iload 9 /* unboxLeft */
            ifeq 18
        17: .line 127
            aload 1 /* mv */
            iload 12 /* targetType */
            aload 7 /* leftDesc */
            invokestatic org.springframework.expression.spel.CodeFlow.insertUnboxInsns:(Lorg/springframework/asm/MethodVisitor;CLjava/lang/String;)V
        18: .line 130
      StackMap locals: int org.springframework.expression.spel.ast.Operator$DescriptorComparison int
      StackMap stack:
            aload 2 /* cf */
            invokevirtual org.springframework.expression.spel.CodeFlow.enterCompilationScope:()V
        19: .line 131
            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
        20: .line 132
            aload 2 /* cf */
            invokevirtual org.springframework.expression.spel.CodeFlow.exitCompilationScope:()V
        21: .line 133
            iload 10 /* unboxRight */
            ifeq 23
        22: .line 134
            aload 1 /* mv */
            iload 12 /* targetType */
            aload 8 /* rightDesc */
            invokestatic org.springframework.expression.spel.CodeFlow.insertUnboxInsns:(Lorg/springframework/asm/MethodVisitor;CLjava/lang/String;)V
        23: .line 138
      StackMap locals:
      StackMap stack:
            new org.springframework.asm.Label
            dup
            invokespecial org.springframework.asm.Label.<init>:()V
            astore 13 /* elseTarget */
        start local 13 // org.springframework.asm.Label elseTarget
        24: .line 139
            new org.springframework.asm.Label
            dup
            invokespecial org.springframework.asm.Label.<init>:()V
            astore 14 /* endOfIf */
        start local 14 // org.springframework.asm.Label endOfIf
        25: .line 140
            iload 12 /* targetType */
            bipush 68
            if_icmpne 29
        26: .line 141
            aload 1 /* mv */
            sipush 152
            invokevirtual org.springframework.asm.MethodVisitor.visitInsn:(I)V
        27: .line 142
            aload 1 /* mv */
            iload 3 /* compInstruction1 */
            aload 13 /* elseTarget */
            invokevirtual org.springframework.asm.MethodVisitor.visitJumpInsn:(ILorg/springframework/asm/Label;)V
        28: .line 143
            goto 41
        29: .line 144
      StackMap locals: org.springframework.asm.Label org.springframework.asm.Label
      StackMap stack:
            iload 12 /* targetType */
            bipush 70
            if_icmpne 33
        30: .line 145
            aload 1 /* mv */
            sipush 150
            invokevirtual org.springframework.asm.MethodVisitor.visitInsn:(I)V
        31: .line 146
            aload 1 /* mv */
            iload 3 /* compInstruction1 */
            aload 13 /* elseTarget */
            invokevirtual org.springframework.asm.MethodVisitor.visitJumpInsn:(ILorg/springframework/asm/Label;)V
        32: .line 147
            goto 41
        33: .line 148
      StackMap locals:
      StackMap stack:
            iload 12 /* targetType */
            bipush 74
            if_icmpne 37
        34: .line 149
            aload 1 /* mv */
            sipush 148
            invokevirtual org.springframework.asm.MethodVisitor.visitInsn:(I)V
        35: .line 150
            aload 1 /* mv */
            iload 3 /* compInstruction1 */
            aload 13 /* elseTarget */
            invokevirtual org.springframework.asm.MethodVisitor.visitJumpInsn:(ILorg/springframework/asm/Label;)V
        36: .line 151
            goto 41
        37: .line 152
      StackMap locals:
      StackMap stack:
            iload 12 /* targetType */
            bipush 73
            if_icmpne 40
        38: .line 153
            aload 1 /* mv */
            iload 4 /* compInstruction2 */
            aload 13 /* elseTarget */
            invokevirtual org.springframework.asm.MethodVisitor.visitJumpInsn:(ILorg/springframework/asm/Label;)V
        39: .line 154
            goto 41
        40: .line 156
      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
        41: .line 160
      StackMap locals:
      StackMap stack:
            aload 1 /* mv */
            iconst_4
            invokevirtual org.springframework.asm.MethodVisitor.visitInsn:(I)V
        42: .line 161
            aload 1 /* mv */
            sipush 167
            aload 14 /* endOfIf */
            invokevirtual org.springframework.asm.MethodVisitor.visitJumpInsn:(ILorg/springframework/asm/Label;)V
        43: .line 162
            aload 1 /* mv */
            aload 13 /* elseTarget */
            invokevirtual org.springframework.asm.MethodVisitor.visitLabel:(Lorg/springframework/asm/Label;)V
        44: .line 163
            aload 1 /* mv */
            iconst_3
            invokevirtual org.springframework.asm.MethodVisitor.visitInsn:(I)V
        45: .line 164
            aload 1 /* mv */
            aload 14 /* endOfIf */
            invokevirtual org.springframework.asm.MethodVisitor.visitLabel:(Lorg/springframework/asm/Label;)V
        46: .line 165
            aload 2 /* cf */
            ldc "Z"
            invokevirtual org.springframework.expression.spel.CodeFlow.pushDescriptor:(Ljava/lang/String;)V
        47: .line 166
            return
        end local 14 // org.springframework.asm.Label endOfIf
        end local 13 // org.springframework.asm.Label elseTarget
        end local 12 // char targetType
        end local 11 // org.springframework.expression.spel.ast.Operator$DescriptorComparison dc
        end local 10 // boolean unboxRight
        end local 9 // boolean unboxLeft
        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   48     0              this  Lorg/springframework/expression/spel/ast/Operator;
            0   48     1                mv  Lorg/springframework/asm/MethodVisitor;
            0   48     2                cf  Lorg/springframework/expression/spel/CodeFlow;
            0   48     3  compInstruction1  I
            0   48     4  compInstruction2  I
            1   48     5              left  Lorg/springframework/expression/spel/ast/SpelNodeImpl;
            2   48     6             right  Lorg/springframework/expression/spel/ast/SpelNodeImpl;
            3   48     7          leftDesc  Ljava/lang/String;
            4   48     8         rightDesc  Ljava/lang/String;
            7   48     9         unboxLeft  Z
           10   48    10        unboxRight  Z
           12   48    11                dc  Lorg/springframework/expression/spel/ast/Operator$DescriptorComparison;
           13   48    12        targetType  C
           24   48    13        elseTarget  Lorg/springframework/asm/Label;
           25   48    14           endOfIf  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 179
            aload 1 /* left */
            instanceof java.lang.Number
            ifeq 33
            aload 2 /* right */
            instanceof java.lang.Number
            ifeq 33
         1: .line 180
            aload 1 /* left */
            checkcast java.lang.Number
            astore 3 /* leftNumber */
        start local 3 // java.lang.Number leftNumber
         2: .line 181
            aload 2 /* right */
            checkcast java.lang.Number
            astore 4 /* rightNumber */
        start local 4 // java.lang.Number rightNumber
         3: .line 183
            aload 3 /* leftNumber */
            instanceof java.math.BigDecimal
            ifne 4
            aload 4 /* rightNumber */
            instanceof java.math.BigDecimal
            ifeq 8
         4: .line 184
      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 185
            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 186
            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 188
      StackMap locals:
      StackMap stack:
            aload 3 /* leftNumber */
            instanceof java.lang.Double
            ifne 9
            aload 4 /* rightNumber */
            instanceof java.lang.Double
            ifeq 11
         9: .line 189
      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 191
      StackMap locals:
      StackMap stack:
            aload 3 /* leftNumber */
            instanceof java.lang.Float
            ifne 12
            aload 4 /* rightNumber */
            instanceof java.lang.Float
            ifeq 14
        12: .line 192
      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 194
      StackMap locals:
      StackMap stack:
            aload 3 /* leftNumber */
            instanceof java.math.BigInteger
            ifne 15
            aload 4 /* rightNumber */
            instanceof java.math.BigInteger
            ifeq 19
        15: .line 195
      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 196
            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 197
            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 199
      StackMap locals:
      StackMap stack:
            aload 3 /* leftNumber */
            instanceof java.lang.Long
            ifne 20
            aload 4 /* rightNumber */
            instanceof java.lang.Long
            ifeq 22
        20: .line 200
      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 202
      StackMap locals:
      StackMap stack:
            aload 3 /* leftNumber */
            instanceof java.lang.Integer
            ifne 23
            aload 4 /* rightNumber */
            instanceof java.lang.Integer
            ifeq 25
        23: .line 203
      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 205
      StackMap locals:
      StackMap stack:
            aload 3 /* leftNumber */
            instanceof java.lang.Short
            ifne 26
            aload 4 /* rightNumber */
            instanceof java.lang.Short
            ifeq 28
        26: .line 206
      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 208
      StackMap locals:
      StackMap stack:
            aload 3 /* leftNumber */
            instanceof java.lang.Byte
            ifne 29
            aload 4 /* rightNumber */
            instanceof java.lang.Byte
            ifeq 31
        29: .line 209
      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 213
      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 217
      StackMap locals:
      StackMap stack:
            aload 1 /* left */
            instanceof java.lang.CharSequence
            ifeq 35
            aload 2 /* right */
            instanceof java.lang.CharSequence
            ifeq 35
        34: .line 218
            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 221
      StackMap locals:
      StackMap stack:
            aload 1 /* left */
            instanceof java.lang.Boolean
            ifeq 37
            aload 2 /* right */
            instanceof java.lang.Boolean
            ifeq 37
        36: .line 222
            aload 1 /* left */
            aload 2 /* right */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ireturn
        37: .line 225
      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 226
            iconst_1
            ireturn
        39: .line 229
      StackMap locals:
      StackMap stack:
            aload 1 /* left */
            instanceof java.lang.Comparable
            ifeq 44
            aload 2 /* right */
            instanceof java.lang.Comparable
            ifeq 44
        40: .line 230
            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 231
            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 232
            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 236
      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