public abstract class org.springframework.expression.spel.ast.SpelNodeImpl implements org.springframework.expression.spel.SpelNode, org.springframework.asm.Opcodes
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.springframework.expression.spel.ast.SpelNodeImpl
  super_class: java.lang.Object
{
  private static final org.springframework.expression.spel.ast.SpelNodeImpl[] NO_CHILDREN;
    descriptor: [Lorg/springframework/expression/spel/ast/SpelNodeImpl;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final int startPos;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int endPos;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  protected org.springframework.expression.spel.ast.SpelNodeImpl[] children;
    descriptor: [Lorg/springframework/expression/spel/ast/SpelNodeImpl;
    flags: (0x0004) ACC_PROTECTED

  private org.springframework.expression.spel.ast.SpelNodeImpl parent;
    descriptor: Lorg/springframework/expression/spel/ast/SpelNodeImpl;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  protected volatile java.lang.String exitTypeDescriptor;
    descriptor: Ljava/lang/String;
    flags: (0x0044) ACC_PROTECTED, ACC_VOLATILE
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 47
            iconst_0
            anewarray org.springframework.expression.spel.ast.SpelNodeImpl
            putstatic org.springframework.expression.spel.ast.SpelNodeImpl.NO_CHILDREN:[Lorg/springframework/expression/spel/ast/SpelNodeImpl;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(int, int, org.springframework.expression.spel.ast.SpelNodeImpl[]);
    descriptor: (II[Lorg/springframework/expression/spel/ast/SpelNodeImpl;)V
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=2, locals=8, args_size=4
        start local 0 // org.springframework.expression.spel.ast.SpelNodeImpl this
        start local 1 // int startPos
        start local 2 // int endPos
        start local 3 // org.springframework.expression.spel.ast.SpelNodeImpl[] operands
         0: .line 72
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 54
            aload 0 /* this */
            getstatic org.springframework.expression.spel.ast.SpelNodeImpl.NO_CHILDREN:[Lorg/springframework/expression/spel/ast/SpelNodeImpl;
            putfield org.springframework.expression.spel.ast.SpelNodeImpl.children:[Lorg/springframework/expression/spel/ast/SpelNodeImpl;
         2: .line 73
            aload 0 /* this */
            iload 1 /* startPos */
            putfield org.springframework.expression.spel.ast.SpelNodeImpl.startPos:I
         3: .line 74
            aload 0 /* this */
            iload 2 /* endPos */
            putfield org.springframework.expression.spel.ast.SpelNodeImpl.endPos:I
         4: .line 75
            aload 3 /* operands */
            invokestatic org.springframework.util.ObjectUtils.isEmpty:([Ljava/lang/Object;)Z
            ifne 12
         5: .line 76
            aload 0 /* this */
            aload 3 /* operands */
            putfield org.springframework.expression.spel.ast.SpelNodeImpl.children:[Lorg/springframework/expression/spel/ast/SpelNodeImpl;
         6: .line 77
            aload 3 /* operands */
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 11
      StackMap locals: org.springframework.expression.spel.ast.SpelNodeImpl int int org.springframework.expression.spel.ast.SpelNodeImpl[] top int int org.springframework.expression.spel.ast.SpelNodeImpl[]
      StackMap stack:
         7: aload 7
            iload 5
            aaload
            astore 4 /* operand */
        start local 4 // org.springframework.expression.spel.ast.SpelNodeImpl operand
         8: .line 78
            aload 4 /* operand */
            ldc "Operand must not be null"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         9: .line 79
            aload 4 /* operand */
            aload 0 /* this */
            putfield org.springframework.expression.spel.ast.SpelNodeImpl.parent:Lorg/springframework/expression/spel/ast/SpelNodeImpl;
        end local 4 // org.springframework.expression.spel.ast.SpelNodeImpl operand
        10: .line 77
            iinc 5 1
      StackMap locals:
      StackMap stack:
        11: iload 5
            iload 6
            if_icmplt 7
        12: .line 82
      StackMap locals: org.springframework.expression.spel.ast.SpelNodeImpl int int org.springframework.expression.spel.ast.SpelNodeImpl[]
      StackMap stack:
            return
        end local 3 // org.springframework.expression.spel.ast.SpelNodeImpl[] operands
        end local 2 // int endPos
        end local 1 // int startPos
        end local 0 // org.springframework.expression.spel.ast.SpelNodeImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   13     0      this  Lorg/springframework/expression/spel/ast/SpelNodeImpl;
            0   13     1  startPos  I
            0   13     2    endPos  I
            0   13     3  operands  [Lorg/springframework/expression/spel/ast/SpelNodeImpl;
            8   10     4   operand  Lorg/springframework/expression/spel/ast/SpelNodeImpl;
    MethodParameters:
          Name  Flags
      startPos  
      endPos    
      operands  

  protected boolean nextChildIs(java.lang.Class<?>[]);
    descriptor: ([Ljava/lang/Class;)Z
    flags: (0x0084) ACC_PROTECTED, ACC_VARARGS
    Code:
      stack=3, locals=10, args_size=2
        start local 0 // org.springframework.expression.spel.ast.SpelNodeImpl this
        start local 1 // java.lang.Class[] classes
         0: .line 89
            aload 0 /* this */
            getfield org.springframework.expression.spel.ast.SpelNodeImpl.parent:Lorg/springframework/expression/spel/ast/SpelNodeImpl;
            ifnull 18
         1: .line 90
            aload 0 /* this */
            getfield org.springframework.expression.spel.ast.SpelNodeImpl.parent:Lorg/springframework/expression/spel/ast/SpelNodeImpl;
            getfield org.springframework.expression.spel.ast.SpelNodeImpl.children:[Lorg/springframework/expression/spel/ast/SpelNodeImpl;
            astore 2 /* peers */
        start local 2 // org.springframework.expression.spel.ast.SpelNodeImpl[] peers
         2: .line 91
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         3: aload 2 /* peers */
            arraylength
            istore 4 /* max */
        start local 4 // int max
         4: goto 17
         5: .line 92
      StackMap locals: org.springframework.expression.spel.ast.SpelNodeImpl[] int int
      StackMap stack:
            aload 0 /* this */
            aload 2 /* peers */
            iload 3 /* i */
            aaload
            if_acmpne 16
         6: .line 93
            iload 3 /* i */
            iconst_1
            iadd
            iload 4 /* max */
            if_icmplt 8
         7: .line 94
            iconst_0
            ireturn
         8: .line 96
      StackMap locals:
      StackMap stack:
            aload 2 /* peers */
            iload 3 /* i */
            iconst_1
            iadd
            aaload
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            astore 5 /* peerClass */
        start local 5 // java.lang.Class peerClass
         9: .line 97
            aload 1 /* classes */
            dup
            astore 9
            arraylength
            istore 8
            iconst_0
            istore 7
            goto 14
      StackMap locals: org.springframework.expression.spel.ast.SpelNodeImpl java.lang.Class[] org.springframework.expression.spel.ast.SpelNodeImpl[] int int java.lang.Class top int int java.lang.Class[]
      StackMap stack:
        10: aload 9
            iload 7
            aaload
            astore 6 /* desiredClass */
        start local 6 // java.lang.Class desiredClass
        11: .line 98
            aload 5 /* peerClass */
            aload 6 /* desiredClass */
            if_acmpne 13
        12: .line 99
            iconst_1
            ireturn
        end local 6 // java.lang.Class desiredClass
        13: .line 97
      StackMap locals:
      StackMap stack:
            iinc 7 1
      StackMap locals:
      StackMap stack:
        14: iload 7
            iload 8
            if_icmplt 10
        15: .line 102
            iconst_0
            ireturn
        end local 5 // java.lang.Class peerClass
        16: .line 91
      StackMap locals: org.springframework.expression.spel.ast.SpelNodeImpl java.lang.Class[] org.springframework.expression.spel.ast.SpelNodeImpl[] int int
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        17: iload 3 /* i */
            iload 4 /* max */
            if_icmplt 5
        end local 4 // int max
        end local 3 // int i
        end local 2 // org.springframework.expression.spel.ast.SpelNodeImpl[] peers
        18: .line 106
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // java.lang.Class[] classes
        end local 0 // org.springframework.expression.spel.ast.SpelNodeImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   19     0          this  Lorg/springframework/expression/spel/ast/SpelNodeImpl;
            0   19     1       classes  [Ljava/lang/Class;
            2   18     2         peers  [Lorg/springframework/expression/spel/ast/SpelNodeImpl;
            3   18     3             i  I
            4   18     4           max  I
            9   16     5     peerClass  Ljava/lang/Class<*>;
           11   13     6  desiredClass  Ljava/lang/Class<*>;
    Signature: ([Ljava/lang/Class<*>;)Z
    MethodParameters:
         Name  Flags
      classes  

  public final java.lang.Object getValue(org.springframework.expression.spel.ExpressionState);
    descriptor: (Lorg/springframework/expression/spel/ExpressionState;)Ljava/lang/Object;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.expression.spel.ast.SpelNodeImpl this
        start local 1 // org.springframework.expression.spel.ExpressionState expressionState
         0: .line 112
            aload 0 /* this */
            aload 1 /* expressionState */
            invokevirtual org.springframework.expression.spel.ast.SpelNodeImpl.getValueInternal:(Lorg/springframework/expression/spel/ExpressionState;)Lorg/springframework/expression/TypedValue;
            invokevirtual org.springframework.expression.TypedValue.getValue:()Ljava/lang/Object;
            areturn
        end local 1 // org.springframework.expression.spel.ExpressionState expressionState
        end local 0 // org.springframework.expression.spel.ast.SpelNodeImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    1     0             this  Lorg/springframework/expression/spel/ast/SpelNodeImpl;
            0    1     1  expressionState  Lorg/springframework/expression/spel/ExpressionState;
    Exceptions:
      throws org.springframework.expression.EvaluationException
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    MethodParameters:
                 Name  Flags
      expressionState  

  public final org.springframework.expression.TypedValue getTypedValue(org.springframework.expression.spel.ExpressionState);
    descriptor: (Lorg/springframework/expression/spel/ExpressionState;)Lorg/springframework/expression/TypedValue;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.expression.spel.ast.SpelNodeImpl this
        start local 1 // org.springframework.expression.spel.ExpressionState expressionState
         0: .line 117
            aload 0 /* this */
            aload 1 /* expressionState */
            invokevirtual org.springframework.expression.spel.ast.SpelNodeImpl.getValueInternal:(Lorg/springframework/expression/spel/ExpressionState;)Lorg/springframework/expression/TypedValue;
            areturn
        end local 1 // org.springframework.expression.spel.ExpressionState expressionState
        end local 0 // org.springframework.expression.spel.ast.SpelNodeImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    1     0             this  Lorg/springframework/expression/spel/ast/SpelNodeImpl;
            0    1     1  expressionState  Lorg/springframework/expression/spel/ExpressionState;
    Exceptions:
      throws org.springframework.expression.EvaluationException
    MethodParameters:
                 Name  Flags
      expressionState  

  public boolean isWritable(org.springframework.expression.spel.ExpressionState);
    descriptor: (Lorg/springframework/expression/spel/ExpressionState;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.springframework.expression.spel.ast.SpelNodeImpl this
        start local 1 // org.springframework.expression.spel.ExpressionState expressionState
         0: .line 123
            iconst_0
            ireturn
        end local 1 // org.springframework.expression.spel.ExpressionState expressionState
        end local 0 // org.springframework.expression.spel.ast.SpelNodeImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    1     0             this  Lorg/springframework/expression/spel/ast/SpelNodeImpl;
            0    1     1  expressionState  Lorg/springframework/expression/spel/ExpressionState;
    Exceptions:
      throws org.springframework.expression.EvaluationException
    MethodParameters:
                 Name  Flags
      expressionState  

  public void setValue(org.springframework.expression.spel.ExpressionState, java.lang.Object);
    descriptor: (Lorg/springframework/expression/spel/ExpressionState;Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=3, args_size=3
        start local 0 // org.springframework.expression.spel.ast.SpelNodeImpl this
        start local 1 // org.springframework.expression.spel.ExpressionState expressionState
        start local 2 // java.lang.Object newValue
         0: .line 128
            new org.springframework.expression.spel.SpelEvaluationException
            dup
            aload 0 /* this */
            invokevirtual org.springframework.expression.spel.ast.SpelNodeImpl.getStartPosition:()I
            getstatic org.springframework.expression.spel.SpelMessage.SETVALUE_NOT_SUPPORTED:Lorg/springframework/expression/spel/SpelMessage;
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aastore
            invokespecial org.springframework.expression.spel.SpelEvaluationException.<init>:(ILorg/springframework/expression/spel/SpelMessage;[Ljava/lang/Object;)V
            athrow
        end local 2 // java.lang.Object newValue
        end local 1 // org.springframework.expression.spel.ExpressionState expressionState
        end local 0 // org.springframework.expression.spel.ast.SpelNodeImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    1     0             this  Lorg/springframework/expression/spel/ast/SpelNodeImpl;
            0    1     1  expressionState  Lorg/springframework/expression/spel/ExpressionState;
            0    1     2         newValue  Ljava/lang/Object;
    Exceptions:
      throws org.springframework.expression.EvaluationException
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
        org.springframework.lang.Nullable()
    MethodParameters:
                 Name  Flags
      expressionState  
      newValue         

  public org.springframework.expression.spel.SpelNode getChild(int);
    descriptor: (I)Lorg/springframework/expression/spel/SpelNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.expression.spel.ast.SpelNodeImpl this
        start local 1 // int index
         0: .line 133
            aload 0 /* this */
            getfield org.springframework.expression.spel.ast.SpelNodeImpl.children:[Lorg/springframework/expression/spel/ast/SpelNodeImpl;
            iload 1 /* index */
            aaload
            areturn
        end local 1 // int index
        end local 0 // org.springframework.expression.spel.ast.SpelNodeImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lorg/springframework/expression/spel/ast/SpelNodeImpl;
            0    1     1  index  I
    MethodParameters:
       Name  Flags
      index  

  public int getChildCount();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.expression.spel.ast.SpelNodeImpl this
         0: .line 138
            aload 0 /* this */
            getfield org.springframework.expression.spel.ast.SpelNodeImpl.children:[Lorg/springframework/expression/spel/ast/SpelNodeImpl;
            arraylength
            ireturn
        end local 0 // org.springframework.expression.spel.ast.SpelNodeImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/expression/spel/ast/SpelNodeImpl;

  public java.lang.Class<?> getObjectClass();
    descriptor: (Ljava/lang/Object;)Ljava/lang/Class;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.springframework.expression.spel.ast.SpelNodeImpl this
        start local 1 // java.lang.Object obj
         0: .line 144
            aload 1 /* obj */
            ifnonnull 2
         1: .line 145
            aconst_null
            areturn
         2: .line 147
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            instanceof java.lang.Class
            ifeq 3
            aload 1 /* obj */
            checkcast java.lang.Class
            goto 4
      StackMap locals:
      StackMap stack:
         3: aload 1 /* obj */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
      StackMap locals:
      StackMap stack: java.lang.Class
         4: areturn
        end local 1 // java.lang.Object obj
        end local 0 // org.springframework.expression.spel.ast.SpelNodeImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/springframework/expression/spel/ast/SpelNodeImpl;
            0    5     1   obj  Ljava/lang/Object;
    Signature: (Ljava/lang/Object;)Ljava/lang/Class<*>;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
    MethodParameters:
      Name  Flags
      obj   

  public int getStartPosition();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.expression.spel.ast.SpelNodeImpl this
         0: .line 152
            aload 0 /* this */
            getfield org.springframework.expression.spel.ast.SpelNodeImpl.startPos:I
            ireturn
        end local 0 // org.springframework.expression.spel.ast.SpelNodeImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/expression/spel/ast/SpelNodeImpl;

  public int getEndPosition();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.expression.spel.ast.SpelNodeImpl this
         0: .line 157
            aload 0 /* this */
            getfield org.springframework.expression.spel.ast.SpelNodeImpl.endPos:I
            ireturn
        end local 0 // org.springframework.expression.spel.ast.SpelNodeImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/expression/spel/ast/SpelNodeImpl;

  public boolean isCompilable();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.expression.spel.ast.SpelNodeImpl this
         0: .line 167
            iconst_0
            ireturn
        end local 0 // org.springframework.expression.spel.ast.SpelNodeImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/expression/spel/ast/SpelNodeImpl;

  public void generateCode(org.springframework.asm.MethodVisitor, org.springframework.expression.spel.CodeFlow);
    descriptor: (Lorg/springframework/asm/MethodVisitor;Lorg/springframework/expression/spel/CodeFlow;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.springframework.expression.spel.ast.SpelNodeImpl this
        start local 1 // org.springframework.asm.MethodVisitor mv
        start local 2 // org.springframework.expression.spel.CodeFlow cf
         0: .line 178
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " has no generateCode(..) method"
            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
        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.SpelNodeImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/expression/spel/ast/SpelNodeImpl;
            0    1     1    mv  Lorg/springframework/asm/MethodVisitor;
            0    1     2    cf  Lorg/springframework/expression/spel/CodeFlow;
    MethodParameters:
      Name  Flags
      mv    
      cf    

  public java.lang.String getExitDescriptor();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.expression.spel.ast.SpelNodeImpl this
         0: .line 183
            aload 0 /* this */
            getfield org.springframework.expression.spel.ast.SpelNodeImpl.exitTypeDescriptor:Ljava/lang/String;
            areturn
        end local 0 // org.springframework.expression.spel.ast.SpelNodeImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/expression/spel/ast/SpelNodeImpl;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  protected final <T> T getValue(org.springframework.expression.spel.ExpressionState, java.lang.Class<T>);
    descriptor: (Lorg/springframework/expression/spel/ExpressionState;Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.springframework.expression.spel.ast.SpelNodeImpl this
        start local 1 // org.springframework.expression.spel.ExpressionState state
        start local 2 // java.lang.Class desiredReturnType
         0: .line 188
            aload 1 /* state */
            invokevirtual org.springframework.expression.spel.ExpressionState.getEvaluationContext:()Lorg/springframework/expression/EvaluationContext;
            aload 0 /* this */
            aload 1 /* state */
            invokevirtual org.springframework.expression.spel.ast.SpelNodeImpl.getValueInternal:(Lorg/springframework/expression/spel/ExpressionState;)Lorg/springframework/expression/TypedValue;
            aload 2 /* desiredReturnType */
            invokestatic org.springframework.expression.common.ExpressionUtils.convertTypedValue:(Lorg/springframework/expression/EvaluationContext;Lorg/springframework/expression/TypedValue;Ljava/lang/Class;)Ljava/lang/Object;
            areturn
        end local 2 // java.lang.Class desiredReturnType
        end local 1 // org.springframework.expression.spel.ExpressionState state
        end local 0 // org.springframework.expression.spel.ast.SpelNodeImpl this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    1     0               this  Lorg/springframework/expression/spel/ast/SpelNodeImpl;
            0    1     1              state  Lorg/springframework/expression/spel/ExpressionState;
            0    1     2  desiredReturnType  Ljava/lang/Class<TT;>;
    Exceptions:
      throws org.springframework.expression.EvaluationException
    Signature: <T:Ljava/lang/Object;>(Lorg/springframework/expression/spel/ExpressionState;Ljava/lang/Class<TT;>;)TT;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    MethodParameters:
                   Name  Flags
      state              
      desiredReturnType  

  protected org.springframework.expression.spel.ast.ValueRef getValueRef(org.springframework.expression.spel.ExpressionState);
    descriptor: (Lorg/springframework/expression/spel/ExpressionState;)Lorg/springframework/expression/spel/ast/ValueRef;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=8, locals=2, args_size=2
        start local 0 // org.springframework.expression.spel.ast.SpelNodeImpl this
        start local 1 // org.springframework.expression.spel.ExpressionState state
         0: .line 192
            new org.springframework.expression.spel.SpelEvaluationException
            dup
            aload 0 /* this */
            invokevirtual org.springframework.expression.spel.ast.SpelNodeImpl.getStartPosition:()I
            getstatic org.springframework.expression.spel.SpelMessage.NOT_ASSIGNABLE:Lorg/springframework/expression/spel/SpelMessage;
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            invokevirtual org.springframework.expression.spel.ast.SpelNodeImpl.toStringAST:()Ljava/lang/String;
            aastore
            invokespecial org.springframework.expression.spel.SpelEvaluationException.<init>:(ILorg/springframework/expression/spel/SpelMessage;[Ljava/lang/Object;)V
            athrow
        end local 1 // org.springframework.expression.spel.ExpressionState state
        end local 0 // org.springframework.expression.spel.ast.SpelNodeImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lorg/springframework/expression/spel/ast/SpelNodeImpl;
            0    1     1  state  Lorg/springframework/expression/spel/ExpressionState;
    Exceptions:
      throws org.springframework.expression.EvaluationException
    MethodParameters:
       Name  Flags
      state  

  public abstract org.springframework.expression.TypedValue getValueInternal(org.springframework.expression.spel.ExpressionState);
    descriptor: (Lorg/springframework/expression/spel/ExpressionState;)Lorg/springframework/expression/TypedValue;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws org.springframework.expression.EvaluationException
    MethodParameters:
                 Name  Flags
      expressionState  

  protected static void generateCodeForArguments(org.springframework.asm.MethodVisitor, org.springframework.expression.spel.CodeFlow, java.lang.reflect.Member, org.springframework.expression.spel.ast.SpelNodeImpl[]);
    descriptor: (Lorg/springframework/asm/MethodVisitor;Lorg/springframework/expression/spel/CodeFlow;Ljava/lang/reflect/Member;[Lorg/springframework/expression/spel/ast/SpelNodeImpl;)V
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=5, locals=12, args_size=4
        start local 0 // org.springframework.asm.MethodVisitor mv
        start local 1 // org.springframework.expression.spel.CodeFlow cf
        start local 2 // java.lang.reflect.Member member
        start local 3 // org.springframework.expression.spel.ast.SpelNodeImpl[] arguments
         0: .line 208
            aconst_null
            astore 4 /* paramDescriptors */
        start local 4 // java.lang.String[] paramDescriptors
         1: .line 209
            iconst_0
            istore 5 /* isVarargs */
        start local 5 // boolean isVarargs
         2: .line 210
            aload 2 /* member */
            instanceof java.lang.reflect.Constructor
            ifeq 7
         3: .line 211
            aload 2 /* member */
            checkcast java.lang.reflect.Constructor
            astore 6 /* ctor */
        start local 6 // java.lang.reflect.Constructor ctor
         4: .line 212
            aload 6 /* ctor */
            invokevirtual java.lang.reflect.Constructor.getParameterTypes:()[Ljava/lang/Class;
            invokestatic org.springframework.expression.spel.CodeFlow.toDescriptors:([Ljava/lang/Class;)[Ljava/lang/String;
            astore 4 /* paramDescriptors */
         5: .line 213
            aload 6 /* ctor */
            invokevirtual java.lang.reflect.Constructor.isVarArgs:()Z
            istore 5 /* isVarargs */
        end local 6 // java.lang.reflect.Constructor ctor
         6: .line 214
            goto 10
         7: .line 216
      StackMap locals: java.lang.String[] int
      StackMap stack:
            aload 2 /* member */
            checkcast java.lang.reflect.Method
            astore 6 /* method */
        start local 6 // java.lang.reflect.Method method
         8: .line 217
            aload 6 /* method */
            invokevirtual java.lang.reflect.Method.getParameterTypes:()[Ljava/lang/Class;
            invokestatic org.springframework.expression.spel.CodeFlow.toDescriptors:([Ljava/lang/Class;)[Ljava/lang/String;
            astore 4 /* paramDescriptors */
         9: .line 218
            aload 6 /* method */
            invokevirtual java.lang.reflect.Method.isVarArgs:()Z
            istore 5 /* isVarargs */
        end local 6 // java.lang.reflect.Method method
        10: .line 220
      StackMap locals:
      StackMap stack:
            iload 5 /* isVarargs */
            ifeq 36
        11: .line 223
            iconst_0
            istore 6 /* p */
        start local 6 // int p
        12: .line 224
            aload 3 /* arguments */
            arraylength
            istore 7 /* childCount */
        start local 7 // int childCount
        13: .line 227
            iconst_0
            istore 6 /* p */
            goto 16
        14: .line 228
      StackMap locals: int int
      StackMap stack:
            aload 0 /* mv */
            aload 1 /* cf */
            aload 3 /* arguments */
            iload 6 /* p */
            aaload
            aload 4 /* paramDescriptors */
            iload 6 /* p */
            aaload
            invokestatic org.springframework.expression.spel.ast.SpelNodeImpl.generateCodeForArgument:(Lorg/springframework/asm/MethodVisitor;Lorg/springframework/expression/spel/CodeFlow;Lorg/springframework/expression/spel/ast/SpelNodeImpl;Ljava/lang/String;)V
        15: .line 227
            iinc 6 /* p */ 1
      StackMap locals:
      StackMap stack:
        16: iload 6 /* p */
            aload 4 /* paramDescriptors */
            arraylength
            iconst_1
            isub
            if_icmplt 14
        17: .line 231
            iload 7 /* childCount */
            ifne 18
            aconst_null
            goto 19
      StackMap locals:
      StackMap stack:
        18: aload 3 /* arguments */
            iload 7 /* childCount */
            iconst_1
            isub
            aaload
      StackMap locals:
      StackMap stack: org.springframework.expression.spel.ast.SpelNodeImpl
        19: astore 8 /* lastChild */
        start local 8 // org.springframework.expression.spel.ast.SpelNodeImpl lastChild
        20: .line 232
            aload 4 /* paramDescriptors */
            aload 4 /* paramDescriptors */
            arraylength
            iconst_1
            isub
            aaload
            astore 9 /* arrayType */
        start local 9 // java.lang.String arrayType
        21: .line 235
            aload 8 /* lastChild */
            ifnull 24
            aload 9 /* arrayType */
            aload 8 /* lastChild */
            invokevirtual org.springframework.expression.spel.ast.SpelNodeImpl.getExitDescriptor:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 24
        22: .line 236
            aload 0 /* mv */
            aload 1 /* cf */
            aload 8 /* lastChild */
            aload 4 /* paramDescriptors */
            iload 6 /* p */
            aaload
            invokestatic org.springframework.expression.spel.ast.SpelNodeImpl.generateCodeForArgument:(Lorg/springframework/asm/MethodVisitor;Lorg/springframework/expression/spel/CodeFlow;Lorg/springframework/expression/spel/ast/SpelNodeImpl;Ljava/lang/String;)V
        23: .line 237
            goto 41
        24: .line 239
      StackMap locals: org.springframework.expression.spel.ast.SpelNodeImpl java.lang.String
      StackMap stack:
            aload 9 /* arrayType */
            iconst_1
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 9 /* arrayType */
        25: .line 241
            aload 0 /* mv */
            iload 7 /* childCount */
            iload 6 /* p */
            isub
            aload 9 /* arrayType */
            invokestatic org.springframework.expression.spel.CodeFlow.insertNewArrayCode:(Lorg/springframework/asm/MethodVisitor;ILjava/lang/String;)V
        26: .line 243
            iconst_0
            istore 10 /* arrayindex */
        start local 10 // int arrayindex
        27: .line 244
            goto 34
        28: .line 245
      StackMap locals: int
      StackMap stack:
            aload 3 /* arguments */
            iload 6 /* p */
            aaload
            astore 11 /* child */
        start local 11 // org.springframework.expression.spel.ast.SpelNodeImpl child
        29: .line 246
            aload 0 /* mv */
            bipush 89
            invokevirtual org.springframework.asm.MethodVisitor.visitInsn:(I)V
        30: .line 247
            aload 0 /* mv */
            iload 10 /* arrayindex */
            iinc 10 /* arrayindex */ 1
            invokestatic org.springframework.expression.spel.CodeFlow.insertOptimalLoad:(Lorg/springframework/asm/MethodVisitor;I)V
        31: .line 248
            aload 0 /* mv */
            aload 1 /* cf */
            aload 11 /* child */
            aload 9 /* arrayType */
            invokestatic org.springframework.expression.spel.ast.SpelNodeImpl.generateCodeForArgument:(Lorg/springframework/asm/MethodVisitor;Lorg/springframework/expression/spel/CodeFlow;Lorg/springframework/expression/spel/ast/SpelNodeImpl;Ljava/lang/String;)V
        32: .line 249
            aload 0 /* mv */
            aload 9 /* arrayType */
            invokestatic org.springframework.expression.spel.CodeFlow.insertArrayStore:(Lorg/springframework/asm/MethodVisitor;Ljava/lang/String;)V
        33: .line 250
            iinc 6 /* p */ 1
        end local 11 // org.springframework.expression.spel.ast.SpelNodeImpl child
        34: .line 244
      StackMap locals:
      StackMap stack:
            iload 6 /* p */
            iload 7 /* childCount */
            if_icmplt 28
        end local 10 // int arrayindex
        end local 9 // java.lang.String arrayType
        end local 8 // org.springframework.expression.spel.ast.SpelNodeImpl lastChild
        end local 7 // int childCount
        end local 6 // int p
        35: .line 253
            goto 41
        36: .line 255
      StackMap locals: org.springframework.asm.MethodVisitor org.springframework.expression.spel.CodeFlow java.lang.reflect.Member org.springframework.expression.spel.ast.SpelNodeImpl[] java.lang.String[] int
      StackMap stack:
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        37: goto 40
        38: .line 256
      StackMap locals: int
      StackMap stack:
            aload 0 /* mv */
            aload 1 /* cf */
            aload 3 /* arguments */
            iload 6 /* i */
            aaload
            aload 4 /* paramDescriptors */
            iload 6 /* i */
            aaload
            invokestatic org.springframework.expression.spel.ast.SpelNodeImpl.generateCodeForArgument:(Lorg/springframework/asm/MethodVisitor;Lorg/springframework/expression/spel/CodeFlow;Lorg/springframework/expression/spel/ast/SpelNodeImpl;Ljava/lang/String;)V
        39: .line 255
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        40: iload 6 /* i */
            aload 4 /* paramDescriptors */
            arraylength
            if_icmplt 38
        end local 6 // int i
        41: .line 259
      StackMap locals:
      StackMap stack:
            return
        end local 5 // boolean isVarargs
        end local 4 // java.lang.String[] paramDescriptors
        end local 3 // org.springframework.expression.spel.ast.SpelNodeImpl[] arguments
        end local 2 // java.lang.reflect.Member member
        end local 1 // org.springframework.expression.spel.CodeFlow cf
        end local 0 // org.springframework.asm.MethodVisitor mv
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   42     0                mv  Lorg/springframework/asm/MethodVisitor;
            0   42     1                cf  Lorg/springframework/expression/spel/CodeFlow;
            0   42     2            member  Ljava/lang/reflect/Member;
            0   42     3         arguments  [Lorg/springframework/expression/spel/ast/SpelNodeImpl;
            1   42     4  paramDescriptors  [Ljava/lang/String;
            2   42     5         isVarargs  Z
            4    6     6              ctor  Ljava/lang/reflect/Constructor<*>;
            8   10     6            method  Ljava/lang/reflect/Method;
           12   35     6                 p  I
           13   35     7        childCount  I
           20   35     8         lastChild  Lorg/springframework/expression/spel/ast/SpelNodeImpl;
           21   35     9         arrayType  Ljava/lang/String;
           27   35    10        arrayindex  I
           29   34    11             child  Lorg/springframework/expression/spel/ast/SpelNodeImpl;
           37   41     6                 i  I
    MethodParameters:
           Name  Flags
      mv         
      cf         
      member     
      arguments  

  protected static void generateCodeForArgument(org.springframework.asm.MethodVisitor, org.springframework.expression.spel.CodeFlow, org.springframework.expression.spel.ast.SpelNodeImpl, java.lang.String);
    descriptor: (Lorg/springframework/asm/MethodVisitor;Lorg/springframework/expression/spel/CodeFlow;Lorg/springframework/expression/spel/ast/SpelNodeImpl;Ljava/lang/String;)V
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=3, locals=6, args_size=4
        start local 0 // org.springframework.asm.MethodVisitor mv
        start local 1 // org.springframework.expression.spel.CodeFlow cf
        start local 2 // org.springframework.expression.spel.ast.SpelNodeImpl argument
        start local 3 // java.lang.String paramDesc
         0: .line 266
            aload 1 /* cf */
            invokevirtual org.springframework.expression.spel.CodeFlow.enterCompilationScope:()V
         1: .line 267
            aload 2 /* argument */
            aload 0 /* mv */
            aload 1 /* cf */
            invokevirtual org.springframework.expression.spel.ast.SpelNodeImpl.generateCode:(Lorg/springframework/asm/MethodVisitor;Lorg/springframework/expression/spel/CodeFlow;)V
         2: .line 268
            aload 1 /* cf */
            invokevirtual org.springframework.expression.spel.CodeFlow.lastDescriptor:()Ljava/lang/String;
            astore 4 /* lastDesc */
        start local 4 // java.lang.String lastDesc
         3: .line 269
            aload 4 /* lastDesc */
            ifnull 4
            iconst_1
            goto 5
      StackMap locals: java.lang.String
      StackMap stack:
         4: iconst_0
      StackMap locals:
      StackMap stack: int
         5: ldc "No last descriptor"
            invokestatic org.springframework.util.Assert.state:(ZLjava/lang/String;)V
         6: .line 270
            aload 4 /* lastDesc */
            invokestatic org.springframework.expression.spel.CodeFlow.isPrimitive:(Ljava/lang/String;)Z
            istore 5 /* primitiveOnStack */
        start local 5 // boolean primitiveOnStack
         7: .line 272
            iload 5 /* primitiveOnStack */
            ifeq 10
            aload 3 /* paramDesc */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            bipush 76
            if_icmpne 10
         8: .line 273
            aload 0 /* mv */
            aload 4 /* lastDesc */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic org.springframework.expression.spel.CodeFlow.insertBoxIfNecessary:(Lorg/springframework/asm/MethodVisitor;C)V
         9: .line 274
            goto 15
        10: .line 275
      StackMap locals: int
      StackMap stack:
            aload 3 /* paramDesc */
            invokevirtual java.lang.String.length:()I
            iconst_1
            if_icmpne 13
            iload 5 /* primitiveOnStack */
            ifne 13
        11: .line 276
            aload 0 /* mv */
            aload 3 /* paramDesc */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            aload 4 /* lastDesc */
            invokestatic org.springframework.expression.spel.CodeFlow.insertUnboxInsns:(Lorg/springframework/asm/MethodVisitor;CLjava/lang/String;)V
        12: .line 277
            goto 15
        13: .line 278
      StackMap locals:
      StackMap stack:
            aload 3 /* paramDesc */
            aload 4 /* lastDesc */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 15
        14: .line 280
            aload 0 /* mv */
            aload 3 /* paramDesc */
            invokestatic org.springframework.expression.spel.CodeFlow.insertCheckCast:(Lorg/springframework/asm/MethodVisitor;Ljava/lang/String;)V
        15: .line 282
      StackMap locals:
      StackMap stack:
            aload 1 /* cf */
            invokevirtual org.springframework.expression.spel.CodeFlow.exitCompilationScope:()V
        16: .line 283
            return
        end local 5 // boolean primitiveOnStack
        end local 4 // java.lang.String lastDesc
        end local 3 // java.lang.String paramDesc
        end local 2 // org.springframework.expression.spel.ast.SpelNodeImpl argument
        end local 1 // org.springframework.expression.spel.CodeFlow cf
        end local 0 // org.springframework.asm.MethodVisitor mv
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   17     0                mv  Lorg/springframework/asm/MethodVisitor;
            0   17     1                cf  Lorg/springframework/expression/spel/CodeFlow;
            0   17     2          argument  Lorg/springframework/expression/spel/ast/SpelNodeImpl;
            0   17     3         paramDesc  Ljava/lang/String;
            3   17     4          lastDesc  Ljava/lang/String;
            7   17     5  primitiveOnStack  Z
    MethodParameters:
           Name  Flags
      mv         
      cf         
      argument   
      paramDesc  
}
SourceFile: "SpelNodeImpl.java"