public class org.apache.cassandra.cql3.functions.FunctionCall$Raw extends org.apache.cassandra.cql3.Term$Raw
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.cassandra.cql3.functions.FunctionCall$Raw
  super_class: org.apache.cassandra.cql3.Term$Raw
{
  private org.apache.cassandra.cql3.functions.FunctionName name;
    descriptor: Lorg/apache/cassandra/cql3/functions/FunctionName;
    flags: (0x0002) ACC_PRIVATE

  private final java.util.List<org.apache.cassandra.cql3.Term$Raw> terms;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Lorg/apache/cassandra/cql3/Term$Raw;>;

  public void <init>(org.apache.cassandra.cql3.functions.FunctionName, java.util.List<org.apache.cassandra.cql3.Term$Raw>);
    descriptor: (Lorg/apache/cassandra/cql3/functions/FunctionName;Ljava/util/List;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.apache.cassandra.cql3.functions.FunctionCall$Raw this
        start local 1 // org.apache.cassandra.cql3.functions.FunctionName name
        start local 2 // java.util.List terms
         0: .line 129
            aload 0 /* this */
            invokespecial org.apache.cassandra.cql3.Term$Raw.<init>:()V
         1: .line 131
            aload 0 /* this */
            aload 1 /* name */
            putfield org.apache.cassandra.cql3.functions.FunctionCall$Raw.name:Lorg/apache/cassandra/cql3/functions/FunctionName;
         2: .line 132
            aload 0 /* this */
            aload 2 /* terms */
            putfield org.apache.cassandra.cql3.functions.FunctionCall$Raw.terms:Ljava/util/List;
         3: .line 133
            return
        end local 2 // java.util.List terms
        end local 1 // org.apache.cassandra.cql3.functions.FunctionName name
        end local 0 // org.apache.cassandra.cql3.functions.FunctionCall$Raw this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lorg/apache/cassandra/cql3/functions/FunctionCall$Raw;
            0    4     1   name  Lorg/apache/cassandra/cql3/functions/FunctionName;
            0    4     2  terms  Ljava/util/List<Lorg/apache/cassandra/cql3/Term$Raw;>;
    Signature: (Lorg/apache/cassandra/cql3/functions/FunctionName;Ljava/util/List<Lorg/apache/cassandra/cql3/Term$Raw;>;)V
    MethodParameters:
       Name  Flags
      name   
      terms  

  public org.apache.cassandra.cql3.Term prepare(java.lang.String, org.apache.cassandra.cql3.ColumnSpecification);
    descriptor: (Ljava/lang/String;Lorg/apache/cassandra/cql3/ColumnSpecification;)Lorg/apache/cassandra/cql3/Term;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=8, args_size=3
        start local 0 // org.apache.cassandra.cql3.functions.FunctionCall$Raw this
        start local 1 // java.lang.String keyspace
        start local 2 // org.apache.cassandra.cql3.ColumnSpecification receiver
         0: .line 137
            aload 1 /* keyspace */
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.functions.FunctionCall$Raw.name:Lorg/apache/cassandra/cql3/functions/FunctionName;
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.functions.FunctionCall$Raw.terms:Ljava/util/List;
            aload 2 /* receiver */
            getfield org.apache.cassandra.cql3.ColumnSpecification.ksName:Ljava/lang/String;
            aload 2 /* receiver */
            getfield org.apache.cassandra.cql3.ColumnSpecification.cfName:Ljava/lang/String;
            aload 2 /* receiver */
            getfield org.apache.cassandra.cql3.ColumnSpecification.type:Lorg/apache/cassandra/db/marshal/AbstractType;
            invokestatic org.apache.cassandra.cql3.functions.FunctionResolver.get:(Ljava/lang/String;Lorg/apache/cassandra/cql3/functions/FunctionName;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Lorg/apache/cassandra/db/marshal/AbstractType;)Lorg/apache/cassandra/cql3/functions/Function;
            astore 3 /* fun */
        start local 3 // org.apache.cassandra.cql3.functions.Function fun
         1: .line 138
            aload 3 /* fun */
            ifnonnull 3
         2: .line 139
            new org.apache.cassandra.exceptions.InvalidRequestException
            dup
            ldc "Unknown function %s called"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.functions.FunctionCall$Raw.name:Lorg/apache/cassandra/cql3/functions/FunctionName;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial org.apache.cassandra.exceptions.InvalidRequestException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 140
      StackMap locals: org.apache.cassandra.cql3.functions.Function
      StackMap stack:
            aload 3 /* fun */
            invokeinterface org.apache.cassandra.cql3.functions.Function.isAggregate:()Z
            ifeq 5
         4: .line 141
            new org.apache.cassandra.exceptions.InvalidRequestException
            dup
            ldc "Aggregation function are not supported in the where clause"
            invokespecial org.apache.cassandra.exceptions.InvalidRequestException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 143
      StackMap locals:
      StackMap stack:
            aload 3 /* fun */
            checkcast org.apache.cassandra.cql3.functions.ScalarFunction
            astore 4 /* scalarFun */
        start local 4 // org.apache.cassandra.cql3.functions.ScalarFunction scalarFun
         6: .line 147
            aload 4 /* scalarFun */
            aload 1 /* keyspace */
            aload 2 /* receiver */
            invokeinterface org.apache.cassandra.cql3.functions.ScalarFunction.testAssignment:(Ljava/lang/String;Lorg/apache/cassandra/cql3/ColumnSpecification;)Lorg/apache/cassandra/cql3/AssignmentTestable$TestResult;
            invokevirtual org.apache.cassandra.cql3.AssignmentTestable$TestResult.isAssignable:()Z
            ifne 11
         7: .line 148
            new org.apache.cassandra.exceptions.InvalidRequestException
            dup
            ldc "Type error: cannot assign result of function %s (type %s) to %s (type %s)"
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
         8: .line 149
            aload 4 /* scalarFun */
            invokeinterface org.apache.cassandra.cql3.functions.ScalarFunction.name:()Lorg/apache/cassandra/cql3/functions/FunctionName;
            aastore
            dup
            iconst_1
            aload 4 /* scalarFun */
            invokeinterface org.apache.cassandra.cql3.functions.ScalarFunction.returnType:()Lorg/apache/cassandra/db/marshal/AbstractType;
            invokevirtual org.apache.cassandra.db.marshal.AbstractType.asCQL3Type:()Lorg/apache/cassandra/cql3/CQL3Type;
            aastore
            dup
            iconst_2
         9: .line 150
            aload 2 /* receiver */
            getfield org.apache.cassandra.cql3.ColumnSpecification.name:Lorg/apache/cassandra/cql3/ColumnIdentifier;
            aastore
            dup
            iconst_3
            aload 2 /* receiver */
            getfield org.apache.cassandra.cql3.ColumnSpecification.type:Lorg/apache/cassandra/db/marshal/AbstractType;
            invokevirtual org.apache.cassandra.db.marshal.AbstractType.asCQL3Type:()Lorg/apache/cassandra/cql3/CQL3Type;
            aastore
        10: .line 148
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial org.apache.cassandra.exceptions.InvalidRequestException.<init>:(Ljava/lang/String;)V
            athrow
        11: .line 152
      StackMap locals: org.apache.cassandra.cql3.functions.ScalarFunction
      StackMap stack:
            aload 3 /* fun */
            invokeinterface org.apache.cassandra.cql3.functions.Function.argTypes:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.functions.FunctionCall$Raw.terms:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            if_icmpeq 15
        12: .line 153
            new org.apache.cassandra.exceptions.InvalidRequestException
            dup
            ldc "Incorrect number of arguments specified for function %s (expected %d, found %d)"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
        13: .line 154
            aload 3 /* fun */
            aastore
            dup
            iconst_1
            aload 3 /* fun */
            invokeinterface org.apache.cassandra.cql3.functions.Function.argTypes:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.functions.FunctionCall$Raw.terms:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
        14: .line 153
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial org.apache.cassandra.exceptions.InvalidRequestException.<init>:(Ljava/lang/String;)V
            athrow
        15: .line 156
      StackMap locals:
      StackMap stack:
            new java.util.ArrayList
            dup
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.functions.FunctionCall$Raw.terms:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 5 /* parameters */
        start local 5 // java.util.List parameters
        16: .line 157
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        17: goto 21
        18: .line 159
      StackMap locals: java.util.List int
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.functions.FunctionCall$Raw.terms:Ljava/util/List;
            iload 6 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.apache.cassandra.cql3.Term$Raw
            aload 1 /* keyspace */
            aload 2 /* receiver */
            getfield org.apache.cassandra.cql3.ColumnSpecification.ksName:Ljava/lang/String;
            aload 2 /* receiver */
            getfield org.apache.cassandra.cql3.ColumnSpecification.cfName:Ljava/lang/String;
            aload 4 /* scalarFun */
            iload 6 /* i */
            invokestatic org.apache.cassandra.cql3.functions.FunctionResolver.makeArgSpec:(Ljava/lang/String;Ljava/lang/String;Lorg/apache/cassandra/cql3/functions/Function;I)Lorg/apache/cassandra/cql3/ColumnSpecification;
            invokevirtual org.apache.cassandra.cql3.Term$Raw.prepare:(Ljava/lang/String;Lorg/apache/cassandra/cql3/ColumnSpecification;)Lorg/apache/cassandra/cql3/Term;
            astore 7 /* t */
        start local 7 // org.apache.cassandra.cql3.Term t
        19: .line 160
            aload 5 /* parameters */
            aload 7 /* t */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 7 // org.apache.cassandra.cql3.Term t
        20: .line 157
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        21: iload 6 /* i */
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.functions.FunctionCall$Raw.terms:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            if_icmplt 18
        end local 6 // int i
        22: .line 163
            new org.apache.cassandra.cql3.functions.FunctionCall
            dup
            aload 4 /* scalarFun */
            aload 5 /* parameters */
            invokespecial org.apache.cassandra.cql3.functions.FunctionCall.<init>:(Lorg/apache/cassandra/cql3/functions/ScalarFunction;Ljava/util/List;)V
            areturn
        end local 5 // java.util.List parameters
        end local 4 // org.apache.cassandra.cql3.functions.ScalarFunction scalarFun
        end local 3 // org.apache.cassandra.cql3.functions.Function fun
        end local 2 // org.apache.cassandra.cql3.ColumnSpecification receiver
        end local 1 // java.lang.String keyspace
        end local 0 // org.apache.cassandra.cql3.functions.FunctionCall$Raw this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   23     0        this  Lorg/apache/cassandra/cql3/functions/FunctionCall$Raw;
            0   23     1    keyspace  Ljava/lang/String;
            0   23     2    receiver  Lorg/apache/cassandra/cql3/ColumnSpecification;
            1   23     3         fun  Lorg/apache/cassandra/cql3/functions/Function;
            6   23     4   scalarFun  Lorg/apache/cassandra/cql3/functions/ScalarFunction;
           16   23     5  parameters  Ljava/util/List<Lorg/apache/cassandra/cql3/Term;>;
           17   22     6           i  I
           19   20     7           t  Lorg/apache/cassandra/cql3/Term;
    Exceptions:
      throws org.apache.cassandra.exceptions.InvalidRequestException
    MethodParameters:
          Name  Flags
      keyspace  
      receiver  

  public org.apache.cassandra.cql3.AssignmentTestable$TestResult testAssignment(java.lang.String, org.apache.cassandra.cql3.ColumnSpecification);
    descriptor: (Ljava/lang/String;Lorg/apache/cassandra/cql3/ColumnSpecification;)Lorg/apache/cassandra/cql3/AssignmentTestable$TestResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // org.apache.cassandra.cql3.functions.FunctionCall$Raw this
        start local 1 // java.lang.String keyspace
        start local 2 // org.apache.cassandra.cql3.ColumnSpecification receiver
         0: .line 174
            aload 1 /* keyspace */
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.functions.FunctionCall$Raw.name:Lorg/apache/cassandra/cql3/functions/FunctionName;
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.functions.FunctionCall$Raw.terms:Ljava/util/List;
            aload 2 /* receiver */
            getfield org.apache.cassandra.cql3.ColumnSpecification.ksName:Ljava/lang/String;
            aload 2 /* receiver */
            getfield org.apache.cassandra.cql3.ColumnSpecification.cfName:Ljava/lang/String;
            aload 2 /* receiver */
            getfield org.apache.cassandra.cql3.ColumnSpecification.type:Lorg/apache/cassandra/db/marshal/AbstractType;
            invokestatic org.apache.cassandra.cql3.functions.FunctionResolver.get:(Ljava/lang/String;Lorg/apache/cassandra/cql3/functions/FunctionName;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Lorg/apache/cassandra/db/marshal/AbstractType;)Lorg/apache/cassandra/cql3/functions/Function;
            astore 3 /* fun */
        start local 3 // org.apache.cassandra.cql3.functions.Function fun
         1: .line 179
            aload 3 /* fun */
            ifnull 4
            aload 3 /* fun */
            invokeinterface org.apache.cassandra.cql3.functions.Function.name:()Lorg/apache/cassandra/cql3/functions/FunctionName;
            getstatic org.apache.cassandra.cql3.functions.FromJsonFct.NAME:Lorg/apache/cassandra/cql3/functions/FunctionName;
            invokevirtual org.apache.cassandra.cql3.functions.FunctionName.equals:(Ljava/lang/Object;)Z
            ifeq 4
         2: .line 180
            getstatic org.apache.cassandra.cql3.AssignmentTestable$TestResult.WEAKLY_ASSIGNABLE:Lorg/apache/cassandra/cql3/AssignmentTestable$TestResult;
         3: areturn
         4: .line 182
      StackMap locals: org.apache.cassandra.cql3.functions.Function
      StackMap stack:
            aload 3 /* fun */
            ifnull 7
            aload 2 /* receiver */
            getfield org.apache.cassandra.cql3.ColumnSpecification.type:Lorg/apache/cassandra/db/marshal/AbstractType;
            aload 3 /* fun */
            invokeinterface org.apache.cassandra.cql3.functions.Function.returnType:()Lorg/apache/cassandra/db/marshal/AbstractType;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 7
         5: .line 183
            getstatic org.apache.cassandra.cql3.AssignmentTestable$TestResult.EXACT_MATCH:Lorg/apache/cassandra/cql3/AssignmentTestable$TestResult;
         6: areturn
         7: .line 184
      StackMap locals:
      StackMap stack:
            aload 3 /* fun */
            ifnull 8
            aload 2 /* receiver */
            getfield org.apache.cassandra.cql3.ColumnSpecification.type:Lorg/apache/cassandra/db/marshal/AbstractType;
            aload 3 /* fun */
            invokeinterface org.apache.cassandra.cql3.functions.Function.returnType:()Lorg/apache/cassandra/db/marshal/AbstractType;
            invokevirtual org.apache.cassandra.db.marshal.AbstractType.isValueCompatibleWith:(Lorg/apache/cassandra/db/marshal/AbstractType;)Z
            ifeq 10
         8: .line 185
      StackMap locals:
      StackMap stack:
            getstatic org.apache.cassandra.cql3.AssignmentTestable$TestResult.WEAKLY_ASSIGNABLE:Lorg/apache/cassandra/cql3/AssignmentTestable$TestResult;
         9: areturn
        10: .line 187
      StackMap locals:
      StackMap stack:
            getstatic org.apache.cassandra.cql3.AssignmentTestable$TestResult.NOT_ASSIGNABLE:Lorg/apache/cassandra/cql3/AssignmentTestable$TestResult;
        11: areturn
        end local 3 // org.apache.cassandra.cql3.functions.Function fun
        12: .line 189
      StackMap locals: org.apache.cassandra.cql3.functions.FunctionCall$Raw java.lang.String org.apache.cassandra.cql3.ColumnSpecification
      StackMap stack: org.apache.cassandra.exceptions.InvalidRequestException
            pop
        13: .line 191
            getstatic org.apache.cassandra.cql3.AssignmentTestable$TestResult.WEAKLY_ASSIGNABLE:Lorg/apache/cassandra/cql3/AssignmentTestable$TestResult;
            areturn
        end local 2 // org.apache.cassandra.cql3.ColumnSpecification receiver
        end local 1 // java.lang.String keyspace
        end local 0 // org.apache.cassandra.cql3.functions.FunctionCall$Raw this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   14     0      this  Lorg/apache/cassandra/cql3/functions/FunctionCall$Raw;
            0   14     1  keyspace  Ljava/lang/String;
            0   14     2  receiver  Lorg/apache/cassandra/cql3/ColumnSpecification;
            1   12     3       fun  Lorg/apache/cassandra/cql3/functions/Function;
      Exception table:
        from    to  target  type
           0     3      12  Class org.apache.cassandra.exceptions.InvalidRequestException
           4     6      12  Class org.apache.cassandra.exceptions.InvalidRequestException
           7     9      12  Class org.apache.cassandra.exceptions.InvalidRequestException
          10    11      12  Class org.apache.cassandra.exceptions.InvalidRequestException
    MethodParameters:
          Name  Flags
      keyspace  
      receiver  

  public org.apache.cassandra.db.marshal.AbstractType<?> getExactTypeIfKnown(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/apache/cassandra/db/marshal/AbstractType;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.cassandra.cql3.functions.FunctionCall$Raw this
        start local 1 // java.lang.String keyspace
         0: .line 202
            new java.lang.UnsupportedOperationException
            dup
            invokespecial java.lang.UnsupportedOperationException.<init>:()V
            athrow
        end local 1 // java.lang.String keyspace
        end local 0 // org.apache.cassandra.cql3.functions.FunctionCall$Raw this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lorg/apache/cassandra/cql3/functions/FunctionCall$Raw;
            0    1     1  keyspace  Ljava/lang/String;
    Signature: (Ljava/lang/String;)Lorg/apache/cassandra/db/marshal/AbstractType<*>;
    MethodParameters:
          Name  Flags
      keyspace  

  public java.lang.String getText();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // org.apache.cassandra.cql3.functions.FunctionCall$Raw this
         0: .line 207
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.functions.FunctionCall$Raw.name:Lorg/apache/cassandra/cql3/functions/FunctionName;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.functions.FunctionCall$Raw.terms:Ljava/util/List;
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  org/apache/cassandra/cql3/Term$Raw.getText()Ljava/lang/String; (5)
                  (Lorg/apache/cassandra/cql3/Term$Raw;)Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
            ldc ", "
            ldc "("
            ldc ")"
            invokestatic java.util.stream.Collectors.joining:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // org.apache.cassandra.cql3.functions.FunctionCall$Raw this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/cql3/functions/FunctionCall$Raw;
}
SourceFile: "FunctionCall.java"
NestHost: org.apache.cassandra.cql3.functions.FunctionCall
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public final TestResult = org.apache.cassandra.cql3.AssignmentTestable$TestResult of org.apache.cassandra.cql3.AssignmentTestable
  public abstract Raw = org.apache.cassandra.cql3.Term$Raw of org.apache.cassandra.cql3.Term
  public Raw = org.apache.cassandra.cql3.functions.FunctionCall$Raw of org.apache.cassandra.cql3.functions.FunctionCall