public class jdk.internal.foreign.abi.CallingSequence
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: jdk.internal.foreign.abi.CallingSequence
  super_class: java.lang.Object
{
  private final java.lang.invoke.MethodType mt;
    descriptor: Ljava/lang/invoke/MethodType;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final jdk.incubator.foreign.FunctionDescriptor desc;
    descriptor: Ljdk/incubator/foreign/FunctionDescriptor;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean isTrivial;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.List<jdk.internal.foreign.abi.Binding> returnBindings;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Ljdk/internal/foreign/abi/Binding;>;

  private final java.util.List<java.util.List<jdk.internal.foreign.abi.Binding>> argumentBindings;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Ljava/util/List<Ljdk/internal/foreign/abi/Binding;>;>;

  public void <init>(java.lang.invoke.MethodType, jdk.incubator.foreign.FunctionDescriptor, boolean, java.util.List<java.util.List<jdk.internal.foreign.abi.Binding>>, java.util.List<jdk.internal.foreign.abi.Binding>);
    descriptor: (Ljava/lang/invoke/MethodType;Ljdk/incubator/foreign/FunctionDescriptor;ZLjava/util/List;Ljava/util/List;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=6, args_size=6
        start local 0 // jdk.internal.foreign.abi.CallingSequence this
        start local 1 // java.lang.invoke.MethodType mt
        start local 2 // jdk.incubator.foreign.FunctionDescriptor desc
        start local 3 // boolean isTrivial
        start local 4 // java.util.List argumentBindings
        start local 5 // java.util.List returnBindings
         0: .line 42
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 44
            aload 0 /* this */
            aload 1 /* mt */
            putfield jdk.internal.foreign.abi.CallingSequence.mt:Ljava/lang/invoke/MethodType;
         2: .line 45
            aload 0 /* this */
            aload 2 /* desc */
            putfield jdk.internal.foreign.abi.CallingSequence.desc:Ljdk/incubator/foreign/FunctionDescriptor;
         3: .line 46
            aload 0 /* this */
            iload 3 /* isTrivial */
            putfield jdk.internal.foreign.abi.CallingSequence.isTrivial:Z
         4: .line 47
            aload 0 /* this */
            aload 5 /* returnBindings */
            putfield jdk.internal.foreign.abi.CallingSequence.returnBindings:Ljava/util/List;
         5: .line 48
            aload 0 /* this */
            aload 4 /* argumentBindings */
            putfield jdk.internal.foreign.abi.CallingSequence.argumentBindings:Ljava/util/List;
         6: .line 49
            return
        end local 5 // java.util.List returnBindings
        end local 4 // java.util.List argumentBindings
        end local 3 // boolean isTrivial
        end local 2 // jdk.incubator.foreign.FunctionDescriptor desc
        end local 1 // java.lang.invoke.MethodType mt
        end local 0 // jdk.internal.foreign.abi.CallingSequence this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    7     0              this  Ljdk/internal/foreign/abi/CallingSequence;
            0    7     1                mt  Ljava/lang/invoke/MethodType;
            0    7     2              desc  Ljdk/incubator/foreign/FunctionDescriptor;
            0    7     3         isTrivial  Z
            0    7     4  argumentBindings  Ljava/util/List<Ljava/util/List<Ljdk/internal/foreign/abi/Binding;>;>;
            0    7     5    returnBindings  Ljava/util/List<Ljdk/internal/foreign/abi/Binding;>;
    Signature: (Ljava/lang/invoke/MethodType;Ljdk/incubator/foreign/FunctionDescriptor;ZLjava/util/List<Ljava/util/List<Ljdk/internal/foreign/abi/Binding;>;>;Ljava/util/List<Ljdk/internal/foreign/abi/Binding;>;)V
    MethodParameters:
                  Name  Flags
      mt                
      desc              
      isTrivial         
      argumentBindings  
      returnBindings    

  public int argumentCount();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.internal.foreign.abi.CallingSequence this
         0: .line 52
            aload 0 /* this */
            getfield jdk.internal.foreign.abi.CallingSequence.argumentBindings:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            ireturn
        end local 0 // jdk.internal.foreign.abi.CallingSequence this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/internal/foreign/abi/CallingSequence;

  public java.util.List<jdk.internal.foreign.abi.Binding> argumentBindings(int);
    descriptor: (I)Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.internal.foreign.abi.CallingSequence this
        start local 1 // int i
         0: .line 56
            aload 0 /* this */
            getfield jdk.internal.foreign.abi.CallingSequence.argumentBindings:Ljava/util/List;
            iload 1 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.util.List
            areturn
        end local 1 // int i
        end local 0 // jdk.internal.foreign.abi.CallingSequence this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/internal/foreign/abi/CallingSequence;
            0    1     1     i  I
    Signature: (I)Ljava/util/List<Ljdk/internal/foreign/abi/Binding;>;
    MethodParameters:
      Name  Flags
      i     

  public java.util.stream.Stream<jdk.internal.foreign.abi.Binding> argumentBindings();
    descriptor: ()Ljava/util/stream/Stream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // jdk.internal.foreign.abi.CallingSequence this
         0: .line 60
            aload 0 /* this */
            getfield jdk.internal.foreign.abi.CallingSequence.argumentBindings: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;
                  java/util/Collection.stream()Ljava/util/stream/Stream; (9 itf)
                  (Ljava/util/List;)Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.flatMap:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
            areturn
        end local 0 // jdk.internal.foreign.abi.CallingSequence this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/internal/foreign/abi/CallingSequence;
    Signature: ()Ljava/util/stream/Stream<Ljdk/internal/foreign/abi/Binding;>;

  public java.util.List<jdk.internal.foreign.abi.Binding> returnBindings();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.internal.foreign.abi.CallingSequence this
         0: .line 64
            aload 0 /* this */
            getfield jdk.internal.foreign.abi.CallingSequence.returnBindings:Ljava/util/List;
            areturn
        end local 0 // jdk.internal.foreign.abi.CallingSequence this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/internal/foreign/abi/CallingSequence;
    Signature: ()Ljava/util/List<Ljdk/internal/foreign/abi/Binding;>;

  public java.lang.String asString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // jdk.internal.foreign.abi.CallingSequence this
         0: .line 68
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 1 /* sb */
        start local 1 // java.lang.StringBuilder sb
         1: .line 70
            aload 1 /* sb */
            ldc "CallingSequence: {\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         2: .line 71
            aload 1 /* sb */
            ldc "  MethodType: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield jdk.internal.foreign.abi.CallingSequence.mt:Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            pop
         3: .line 72
            aload 1 /* sb */
            ldc "  FunctionDescriptor: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield jdk.internal.foreign.abi.CallingSequence.desc:Ljdk/incubator/foreign/FunctionDescriptor;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            pop
         4: .line 73
            aload 1 /* sb */
            ldc "  Argument Bindings:\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         5: .line 74
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         6: goto 9
         7: .line 75
      StackMap locals: java.lang.StringBuilder int
      StackMap stack:
            aload 1 /* sb */
            ldc "    "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 2 /* i */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ": "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield jdk.internal.foreign.abi.CallingSequence.argumentBindings:Ljava/util/List;
            iload 2 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         8: .line 74
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 2 /* i */
            aload 0 /* this */
            getfield jdk.internal.foreign.abi.CallingSequence.mt:Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            if_icmplt 7
        end local 2 // int i
        10: .line 77
            aload 0 /* this */
            getfield jdk.internal.foreign.abi.CallingSequence.mt:Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            if_acmpeq 12
        11: .line 78
            aload 1 /* sb */
            ldc "    "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "Return: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield jdk.internal.foreign.abi.CallingSequence.returnBindings:Ljava/util/List;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        12: .line 80
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            ldc "}\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        13: .line 82
            aload 1 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StringBuilder sb
        end local 0 // jdk.internal.foreign.abi.CallingSequence this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0  this  Ljdk/internal/foreign/abi/CallingSequence;
            1   14     1    sb  Ljava/lang/StringBuilder;
            6   10     2     i  I

  public java.lang.invoke.MethodType methodType();
    descriptor: ()Ljava/lang/invoke/MethodType;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.internal.foreign.abi.CallingSequence this
         0: .line 86
            aload 0 /* this */
            getfield jdk.internal.foreign.abi.CallingSequence.mt:Ljava/lang/invoke/MethodType;
            areturn
        end local 0 // jdk.internal.foreign.abi.CallingSequence this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/internal/foreign/abi/CallingSequence;

  public jdk.incubator.foreign.FunctionDescriptor functionDesc();
    descriptor: ()Ljdk/incubator/foreign/FunctionDescriptor;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.internal.foreign.abi.CallingSequence this
         0: .line 90
            aload 0 /* this */
            getfield jdk.internal.foreign.abi.CallingSequence.desc:Ljdk/incubator/foreign/FunctionDescriptor;
            areturn
        end local 0 // jdk.internal.foreign.abi.CallingSequence this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/internal/foreign/abi/CallingSequence;

  public boolean isTrivial();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.internal.foreign.abi.CallingSequence this
         0: .line 94
            aload 0 /* this */
            getfield jdk.internal.foreign.abi.CallingSequence.isTrivial:Z
            ireturn
        end local 0 // jdk.internal.foreign.abi.CallingSequence this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/internal/foreign/abi/CallingSequence;
}
SourceFile: "CallingSequence.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles