public interface jdk.incubator.foreign.MemoryLayout extends java.lang.constant.Constable
  minor version: 0
  major version: 59
  flags: flags: (0x0601) ACC_PUBLIC, ACC_INTERFACE, ACC_ABSTRACT
  this_class: jdk.incubator.foreign.MemoryLayout
  super_class: java.lang.Object
{
  public static final java.lang.String LAYOUT_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "layout/name"

  public abstract java.util.Optional<? extends java.lang.constant.DynamicConstantDesc<? extends jdk.incubator.foreign.MemoryLayout>> describeConstable();
    descriptor: ()Ljava/util/Optional;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: ()Ljava/util/Optional<+Ljava/lang/constant/DynamicConstantDesc<+Ljdk/incubator/foreign/MemoryLayout;>;>;

  public abstract boolean hasSize();
    descriptor: ()Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract long bitSize();
    descriptor: ()J
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public long byteSize();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // jdk.incubator.foreign.MemoryLayout this
         0: .line 226
            aload 0 /* this */
            invokeinterface jdk.incubator.foreign.MemoryLayout.bitSize:()J
         1: .line 227
            invokedynamic get()Ljava/util/function/Supplier;
              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;
                  jdk/incubator/foreign/MemoryLayout.lambda$0()Ljava/lang/RuntimeException; (6 itf)
                  ()Ljava/lang/RuntimeException;
         2: .line 226
            invokestatic jdk.internal.foreign.Utils.bitsToBytesOrThrow:(JLjava/util/function/Supplier;)J
            lreturn
        end local 0 // jdk.incubator.foreign.MemoryLayout this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljdk/incubator/foreign/MemoryLayout;

  public abstract java.util.Optional<java.lang.String> name();
    descriptor: ()Ljava/util/Optional;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: ()Ljava/util/Optional<Ljava/lang/String;>;

  public abstract jdk.incubator.foreign.MemoryLayout withName(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljdk/incubator/foreign/MemoryLayout;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      name  

  public abstract long bitAlignment();
    descriptor: ()J
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public long byteAlignment();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // jdk.incubator.foreign.MemoryLayout this
         0: .line 293
            aload 0 /* this */
            invokeinterface jdk.incubator.foreign.MemoryLayout.bitAlignment:()J
         1: .line 294
            invokedynamic get()Ljava/util/function/Supplier;
              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;
                  jdk/incubator/foreign/MemoryLayout.lambda$1()Ljava/lang/RuntimeException; (6 itf)
                  ()Ljava/lang/RuntimeException;
         2: .line 293
            invokestatic jdk.internal.foreign.Utils.bitsToBytesOrThrow:(JLjava/util/function/Supplier;)J
            lreturn
        end local 0 // jdk.incubator.foreign.MemoryLayout this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljdk/incubator/foreign/MemoryLayout;

  public abstract jdk.incubator.foreign.MemoryLayout withBitAlignment(long);
    descriptor: (J)Ljdk/incubator/foreign/MemoryLayout;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
              Name  Flags
      bitAlignment  

  public abstract java.util.Optional<java.lang.constant.Constable> attribute(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/Optional;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: (Ljava/lang/String;)Ljava/util/Optional<Ljava/lang/constant/Constable;>;
    MethodParameters:
      Name  Flags
      name  

  public abstract jdk.incubator.foreign.MemoryLayout withAttribute(java.lang.String, java.lang.constant.Constable);
    descriptor: (Ljava/lang/String;Ljava/lang/constant/Constable;)Ljdk/incubator/foreign/MemoryLayout;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
       Name  Flags
      name   
      value  

  public abstract java.util.stream.Stream<java.lang.String> attributes();
    descriptor: ()Ljava/util/stream/Stream;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: ()Ljava/util/stream/Stream<Ljava/lang/String;>;

  public long bitOffset(jdk.incubator.foreign.MemoryLayout$PathElement[]);
    descriptor: ([Ljdk/incubator/foreign/MemoryLayout$PathElement;)J
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // jdk.incubator.foreign.MemoryLayout this
        start local 1 // jdk.incubator.foreign.MemoryLayout$PathElement[] elements
         0: .line 347
            aload 0 /* this */
            invokedynamic applyAsLong()Ljava/util/function/ToLongFunction;
              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;)J
                  jdk/incubator/foreign/MemoryLayout.bitSize()J (9 itf)
                  (Ljdk/incubator/foreign/MemoryLayout;)J
            invokestatic jdk.internal.foreign.LayoutPath.rootPath:(Ljdk/incubator/foreign/MemoryLayout;Ljava/util/function/ToLongFunction;)Ljdk/internal/foreign/LayoutPath;
            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;
                  jdk/internal/foreign/LayoutPath.offset()J (5)
                  (Ljdk/internal/foreign/LayoutPath;)Ljava/lang/Long;
            getstatic jdk.internal.foreign.LayoutPath$PathElementImpl$PathKind.SEQUENCE_ELEMENT:Ljdk/internal/foreign/LayoutPath$PathElementImpl$PathKind;
            getstatic jdk.internal.foreign.LayoutPath$PathElementImpl$PathKind.SEQUENCE_RANGE:Ljdk/internal/foreign/LayoutPath$PathElementImpl$PathKind;
            invokestatic java.util.EnumSet.of:(Ljava/lang/Enum;Ljava/lang/Enum;)Ljava/util/EnumSet;
            aload 1 /* elements */
            invokestatic jdk.incubator.foreign.MemoryLayout.computePathOp:(Ljdk/internal/foreign/LayoutPath;Ljava/util/function/Function;Ljava/util/Set;[Ljdk/incubator/foreign/MemoryLayout$PathElement;)Ljava/lang/Object;
            checkcast java.lang.Long
            invokevirtual java.lang.Long.longValue:()J
            lreturn
        end local 1 // jdk.incubator.foreign.MemoryLayout$PathElement[] elements
        end local 0 // jdk.incubator.foreign.MemoryLayout this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Ljdk/incubator/foreign/MemoryLayout;
            0    1     1  elements  [Ljdk/incubator/foreign/MemoryLayout$PathElement;
    MethodParameters:
          Name  Flags
      elements  

  public long byteOffset(jdk.incubator.foreign.MemoryLayout$PathElement[]);
    descriptor: ([Ljdk/incubator/foreign/MemoryLayout$PathElement;)J
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // jdk.incubator.foreign.MemoryLayout this
        start local 1 // jdk.incubator.foreign.MemoryLayout$PathElement[] elements
         0: .line 366
            aload 0 /* this */
            aload 1 /* elements */
            invokeinterface jdk.incubator.foreign.MemoryLayout.bitOffset:([Ljdk/incubator/foreign/MemoryLayout$PathElement;)J
         1: .line 367
            invokedynamic get()Ljava/util/function/Supplier;
              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;
                  jdk/incubator/foreign/MemoryLayout.lambda$4()Ljava/lang/RuntimeException; (6 itf)
                  ()Ljava/lang/RuntimeException;
         2: .line 366
            invokestatic jdk.internal.foreign.Utils.bitsToBytesOrThrow:(JLjava/util/function/Supplier;)J
            lreturn
        end local 1 // jdk.incubator.foreign.MemoryLayout$PathElement[] elements
        end local 0 // jdk.incubator.foreign.MemoryLayout this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Ljdk/incubator/foreign/MemoryLayout;
            0    3     1  elements  [Ljdk/incubator/foreign/MemoryLayout$PathElement;
    MethodParameters:
          Name  Flags
      elements  

  public java.lang.invoke.VarHandle varHandle(java.lang.Class<?>, jdk.incubator.foreign.MemoryLayout$PathElement[]);
    descriptor: (Ljava/lang/Class;[Ljdk/incubator/foreign/MemoryLayout$PathElement;)Ljava/lang/invoke/VarHandle;
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // jdk.incubator.foreign.MemoryLayout this
        start local 1 // java.lang.Class carrier
        start local 2 // jdk.incubator.foreign.MemoryLayout$PathElement[] elements
         0: .line 388
            aload 0 /* this */
            invokedynamic applyAsLong()Ljava/util/function/ToLongFunction;
              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;)J
                  jdk/incubator/foreign/MemoryLayout.bitSize()J (9 itf)
                  (Ljdk/incubator/foreign/MemoryLayout;)J
            invokestatic jdk.internal.foreign.LayoutPath.rootPath:(Ljdk/incubator/foreign/MemoryLayout;Ljava/util/function/ToLongFunction;)Ljdk/internal/foreign/LayoutPath;
            aload 1 /* carrier */
            invokedynamic apply(Ljava/lang/Class;)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;
                  jdk/incubator/foreign/MemoryLayout.lambda$6(Ljava/lang/Class;Ljdk/internal/foreign/LayoutPath;)Ljava/lang/invoke/VarHandle; (6 itf)
                  (Ljdk/internal/foreign/LayoutPath;)Ljava/lang/invoke/VarHandle;
         1: .line 389
            invokestatic java.util.Set.of:()Ljava/util/Set;
            aload 2 /* elements */
         2: .line 388
            invokestatic jdk.incubator.foreign.MemoryLayout.computePathOp:(Ljdk/internal/foreign/LayoutPath;Ljava/util/function/Function;Ljava/util/Set;[Ljdk/incubator/foreign/MemoryLayout$PathElement;)Ljava/lang/Object;
            checkcast java.lang.invoke.VarHandle
            areturn
        end local 2 // jdk.incubator.foreign.MemoryLayout$PathElement[] elements
        end local 1 // java.lang.Class carrier
        end local 0 // jdk.incubator.foreign.MemoryLayout this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Ljdk/incubator/foreign/MemoryLayout;
            0    3     1   carrier  Ljava/lang/Class<*>;
            0    3     2  elements  [Ljdk/incubator/foreign/MemoryLayout$PathElement;
    Signature: (Ljava/lang/Class<*>;[Ljdk/incubator/foreign/MemoryLayout$PathElement;)Ljava/lang/invoke/VarHandle;
    MethodParameters:
          Name  Flags
      carrier   
      elements  

  public jdk.incubator.foreign.MemoryLayout select(jdk.incubator.foreign.MemoryLayout$PathElement[]);
    descriptor: ([Ljdk/incubator/foreign/MemoryLayout$PathElement;)Ljdk/incubator/foreign/MemoryLayout;
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // jdk.incubator.foreign.MemoryLayout this
        start local 1 // jdk.incubator.foreign.MemoryLayout$PathElement[] elements
         0: .line 402
            aload 0 /* this */
            invokedynamic applyAsLong()Ljava/util/function/ToLongFunction;
              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;)J
                  jdk/incubator/foreign/MemoryLayout.lambda$7(Ljdk/incubator/foreign/MemoryLayout;)J (6 itf)
                  (Ljdk/incubator/foreign/MemoryLayout;)J
            invokestatic jdk.internal.foreign.LayoutPath.rootPath:(Ljdk/incubator/foreign/MemoryLayout;Ljava/util/function/ToLongFunction;)Ljdk/internal/foreign/LayoutPath;
            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;
                  jdk/internal/foreign/LayoutPath.layout()Ljdk/incubator/foreign/MemoryLayout; (5)
                  (Ljdk/internal/foreign/LayoutPath;)Ljdk/incubator/foreign/MemoryLayout;
         1: .line 403
            getstatic jdk.internal.foreign.LayoutPath$PathElementImpl$PathKind.SEQUENCE_ELEMENT_INDEX:Ljdk/internal/foreign/LayoutPath$PathElementImpl$PathKind;
            getstatic jdk.internal.foreign.LayoutPath$PathElementImpl$PathKind.SEQUENCE_RANGE:Ljdk/internal/foreign/LayoutPath$PathElementImpl$PathKind;
            invokestatic java.util.EnumSet.of:(Ljava/lang/Enum;Ljava/lang/Enum;)Ljava/util/EnumSet;
            aload 1 /* elements */
         2: .line 402
            invokestatic jdk.incubator.foreign.MemoryLayout.computePathOp:(Ljdk/internal/foreign/LayoutPath;Ljava/util/function/Function;Ljava/util/Set;[Ljdk/incubator/foreign/MemoryLayout$PathElement;)Ljava/lang/Object;
            checkcast jdk.incubator.foreign.MemoryLayout
            areturn
        end local 1 // jdk.incubator.foreign.MemoryLayout$PathElement[] elements
        end local 0 // jdk.incubator.foreign.MemoryLayout this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Ljdk/incubator/foreign/MemoryLayout;
            0    3     1  elements  [Ljdk/incubator/foreign/MemoryLayout$PathElement;
    MethodParameters:
          Name  Flags
      elements  

  public jdk.incubator.foreign.MemoryLayout map(java.util.function.UnaryOperator<jdk.incubator.foreign.MemoryLayout>, jdk.incubator.foreign.MemoryLayout$PathElement[]);
    descriptor: (Ljava/util/function/UnaryOperator;[Ljdk/incubator/foreign/MemoryLayout$PathElement;)Ljdk/incubator/foreign/MemoryLayout;
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // jdk.incubator.foreign.MemoryLayout this
        start local 1 // java.util.function.UnaryOperator op
        start local 2 // jdk.incubator.foreign.MemoryLayout$PathElement[] elements
         0: .line 419
            aload 0 /* this */
            invokedynamic applyAsLong()Ljava/util/function/ToLongFunction;
              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;)J
                  jdk/incubator/foreign/MemoryLayout.lambda$9(Ljdk/incubator/foreign/MemoryLayout;)J (6 itf)
                  (Ljdk/incubator/foreign/MemoryLayout;)J
            invokestatic jdk.internal.foreign.LayoutPath.rootPath:(Ljdk/incubator/foreign/MemoryLayout;Ljava/util/function/ToLongFunction;)Ljdk/internal/foreign/LayoutPath;
            aload 1 /* op */
            invokedynamic apply(Ljava/util/function/UnaryOperator;)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;
                  jdk/incubator/foreign/MemoryLayout.lambda$10(Ljava/util/function/UnaryOperator;Ljdk/internal/foreign/LayoutPath;)Ljdk/incubator/foreign/MemoryLayout; (6 itf)
                  (Ljdk/internal/foreign/LayoutPath;)Ljdk/incubator/foreign/MemoryLayout;
         1: .line 420
            getstatic jdk.internal.foreign.LayoutPath$PathElementImpl$PathKind.SEQUENCE_ELEMENT_INDEX:Ljdk/internal/foreign/LayoutPath$PathElementImpl$PathKind;
            getstatic jdk.internal.foreign.LayoutPath$PathElementImpl$PathKind.SEQUENCE_RANGE:Ljdk/internal/foreign/LayoutPath$PathElementImpl$PathKind;
            invokestatic java.util.EnumSet.of:(Ljava/lang/Enum;Ljava/lang/Enum;)Ljava/util/EnumSet;
            aload 2 /* elements */
         2: .line 419
            invokestatic jdk.incubator.foreign.MemoryLayout.computePathOp:(Ljdk/internal/foreign/LayoutPath;Ljava/util/function/Function;Ljava/util/Set;[Ljdk/incubator/foreign/MemoryLayout$PathElement;)Ljava/lang/Object;
            checkcast jdk.incubator.foreign.MemoryLayout
            areturn
        end local 2 // jdk.incubator.foreign.MemoryLayout$PathElement[] elements
        end local 1 // java.util.function.UnaryOperator op
        end local 0 // jdk.incubator.foreign.MemoryLayout this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Ljdk/incubator/foreign/MemoryLayout;
            0    3     1        op  Ljava/util/function/UnaryOperator<Ljdk/incubator/foreign/MemoryLayout;>;
            0    3     2  elements  [Ljdk/incubator/foreign/MemoryLayout$PathElement;
    Signature: (Ljava/util/function/UnaryOperator<Ljdk/incubator/foreign/MemoryLayout;>;[Ljdk/incubator/foreign/MemoryLayout$PathElement;)Ljdk/incubator/foreign/MemoryLayout;
    MethodParameters:
          Name  Flags
      op        
      elements  

  private static <Z> Z computePathOp(jdk.internal.foreign.LayoutPath, java.util.function.Function<jdk.internal.foreign.LayoutPath, Z>, java.util.Set<jdk.internal.foreign.LayoutPath$PathElementImpl$PathKind>, jdk.incubator.foreign.MemoryLayout$PathElement[]);
    descriptor: (Ljdk/internal/foreign/LayoutPath;Ljava/util/function/Function;Ljava/util/Set;[Ljdk/incubator/foreign/MemoryLayout$PathElement;)Ljava/lang/Object;
    flags: (0x008a) ACC_PRIVATE, ACC_STATIC, ACC_VARARGS
    Code:
      stack=7, locals=9, args_size=4
        start local 0 // jdk.internal.foreign.LayoutPath path
        start local 1 // java.util.function.Function finalizer
        start local 2 // java.util.Set badKinds
        start local 3 // jdk.incubator.foreign.MemoryLayout$PathElement[] elements
         0: .line 425
            aload 3 /* elements */
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 7
      StackMap locals: jdk.internal.foreign.LayoutPath java.util.function.Function java.util.Set jdk.incubator.foreign.MemoryLayout$PathElement[] top int int jdk.incubator.foreign.MemoryLayout$PathElement[]
      StackMap stack:
         1: aload 7
            iload 5
            aaload
            astore 4 /* e */
        start local 4 // jdk.incubator.foreign.MemoryLayout$PathElement e
         2: .line 426
            aload 4 /* e */
            checkcast jdk.internal.foreign.LayoutPath$PathElementImpl
            astore 8 /* pathElem */
        start local 8 // jdk.internal.foreign.LayoutPath$PathElementImpl pathElem
         3: .line 427
            aload 2 /* badKinds */
            aload 8 /* pathElem */
            invokevirtual jdk.internal.foreign.LayoutPath$PathElementImpl.kind:()Ljdk/internal/foreign/LayoutPath$PathElementImpl$PathKind;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 5
         4: .line 428
            new java.lang.IllegalArgumentException
            dup
            ldc "Invalid %s selection in layout path"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 8 /* pathElem */
            invokevirtual jdk.internal.foreign.LayoutPath$PathElementImpl.kind:()Ljdk/internal/foreign/LayoutPath$PathElementImpl$PathKind;
            invokevirtual jdk.internal.foreign.LayoutPath$PathElementImpl$PathKind.description:()Ljava/lang/String;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 430
      StackMap locals: jdk.internal.foreign.LayoutPath java.util.function.Function java.util.Set jdk.incubator.foreign.MemoryLayout$PathElement[] jdk.incubator.foreign.MemoryLayout$PathElement int int jdk.incubator.foreign.MemoryLayout$PathElement[] jdk.internal.foreign.LayoutPath$PathElementImpl
      StackMap stack:
            aload 8 /* pathElem */
            aload 0 /* path */
            invokevirtual jdk.internal.foreign.LayoutPath$PathElementImpl.apply:(Ljdk/internal/foreign/LayoutPath;)Ljdk/internal/foreign/LayoutPath;
            astore 0 /* path */
        end local 8 // jdk.internal.foreign.LayoutPath$PathElementImpl pathElem
        end local 4 // jdk.incubator.foreign.MemoryLayout$PathElement e
         6: .line 425
            iinc 5 1
      StackMap locals: jdk.internal.foreign.LayoutPath java.util.function.Function java.util.Set jdk.incubator.foreign.MemoryLayout$PathElement[] top int int jdk.incubator.foreign.MemoryLayout$PathElement[]
      StackMap stack:
         7: iload 5
            iload 6
            if_icmplt 1
         8: .line 432
            aload 1 /* finalizer */
            aload 0 /* path */
            invokeinterface java.util.function.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 3 // jdk.incubator.foreign.MemoryLayout$PathElement[] elements
        end local 2 // java.util.Set badKinds
        end local 1 // java.util.function.Function finalizer
        end local 0 // jdk.internal.foreign.LayoutPath path
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    9     0       path  Ljdk/internal/foreign/LayoutPath;
            0    9     1  finalizer  Ljava/util/function/Function<Ljdk/internal/foreign/LayoutPath;TZ;>;
            0    9     2   badKinds  Ljava/util/Set<Ljdk/internal/foreign/LayoutPath$PathElementImpl$PathKind;>;
            0    9     3   elements  [Ljdk/incubator/foreign/MemoryLayout$PathElement;
            2    6     4          e  Ljdk/incubator/foreign/MemoryLayout$PathElement;
            3    6     8   pathElem  Ljdk/internal/foreign/LayoutPath$PathElementImpl;
    Signature: <Z:Ljava/lang/Object;>(Ljdk/internal/foreign/LayoutPath;Ljava/util/function/Function<Ljdk/internal/foreign/LayoutPath;TZ;>;Ljava/util/Set<Ljdk/internal/foreign/LayoutPath$PathElementImpl$PathKind;>;[Ljdk/incubator/foreign/MemoryLayout$PathElement;)TZ;
    MethodParameters:
           Name  Flags
      path       
      finalizer  
      badKinds   
      elements   

  public abstract boolean isPadding();
    descriptor: ()Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      that  

  public abstract int hashCode();
    descriptor: ()I
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public static jdk.incubator.foreign.MemoryLayout ofPaddingBits(long);
    descriptor: (J)Ljdk/incubator/foreign/MemoryLayout;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // long size
         0: .line 579
            lload 0 /* size */
            invokestatic jdk.incubator.foreign.AbstractLayout.checkSize:(J)V
         1: .line 580
            new jdk.incubator.foreign.PaddingLayout
            dup
            lload 0 /* size */
            invokespecial jdk.incubator.foreign.PaddingLayout.<init>:(J)V
            areturn
        end local 0 // long size
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  size  J
    MethodParameters:
      Name  Flags
      size  

  public static jdk.incubator.foreign.ValueLayout ofValueBits(long, java.nio.ByteOrder);
    descriptor: (JLjava/nio/ByteOrder;)Ljdk/incubator/foreign/ValueLayout;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // long size
        start local 2 // java.nio.ByteOrder order
         0: .line 592
            lload 0 /* size */
            invokestatic jdk.incubator.foreign.AbstractLayout.checkSize:(J)V
         1: .line 593
            new jdk.incubator.foreign.ValueLayout
            dup
            aload 2 /* order */
            lload 0 /* size */
            invokespecial jdk.incubator.foreign.ValueLayout.<init>:(Ljava/nio/ByteOrder;J)V
            areturn
        end local 2 // java.nio.ByteOrder order
        end local 0 // long size
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   size  J
            0    2     2  order  Ljava/nio/ByteOrder;
    MethodParameters:
       Name  Flags
      size   
      order  

  public static jdk.incubator.foreign.SequenceLayout ofSequence(long, jdk.incubator.foreign.MemoryLayout);
    descriptor: (JLjdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/SequenceLayout;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // long elementCount
        start local 2 // jdk.incubator.foreign.MemoryLayout elementLayout
         0: .line 605
            lload 0 /* elementCount */
            iconst_1
            invokestatic jdk.incubator.foreign.AbstractLayout.checkSize:(JZ)V
         1: .line 606
            lload 0 /* elementCount */
            invokestatic java.util.OptionalLong.of:(J)Ljava/util/OptionalLong;
            astore 3 /* size */
        start local 3 // java.util.OptionalLong size
         2: .line 607
            new jdk.incubator.foreign.SequenceLayout
            dup
            aload 3 /* size */
            aload 2 /* elementLayout */
            invokespecial jdk.incubator.foreign.SequenceLayout.<init>:(Ljava/util/OptionalLong;Ljdk/incubator/foreign/MemoryLayout;)V
            areturn
        end local 3 // java.util.OptionalLong size
        end local 2 // jdk.incubator.foreign.MemoryLayout elementLayout
        end local 0 // long elementCount
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0   elementCount  J
            0    3     2  elementLayout  Ljdk/incubator/foreign/MemoryLayout;
            2    3     3           size  Ljava/util/OptionalLong;
    MethodParameters:
               Name  Flags
      elementCount   
      elementLayout  

  public static jdk.incubator.foreign.SequenceLayout ofSequence(jdk.incubator.foreign.MemoryLayout);
    descriptor: (Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/SequenceLayout;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // jdk.incubator.foreign.MemoryLayout elementLayout
         0: .line 617
            new jdk.incubator.foreign.SequenceLayout
            dup
            invokestatic java.util.OptionalLong.empty:()Ljava/util/OptionalLong;
            aload 0 /* elementLayout */
            invokespecial jdk.incubator.foreign.SequenceLayout.<init>:(Ljava/util/OptionalLong;Ljdk/incubator/foreign/MemoryLayout;)V
            areturn
        end local 0 // jdk.incubator.foreign.MemoryLayout elementLayout
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0  elementLayout  Ljdk/incubator/foreign/MemoryLayout;
    MethodParameters:
               Name  Flags
      elementLayout  

  public static jdk.incubator.foreign.GroupLayout ofStruct(jdk.incubator.foreign.MemoryLayout[]);
    descriptor: ([Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/GroupLayout;
    flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // jdk.incubator.foreign.MemoryLayout[] elements
         0: .line 627
            new jdk.incubator.foreign.GroupLayout
            dup
            getstatic jdk.incubator.foreign.GroupLayout$Kind.STRUCT:Ljdk/incubator/foreign/GroupLayout$Kind;
            aload 0 /* elements */
            invokestatic java.util.List.of:([Ljava/lang/Object;)Ljava/util/List;
            invokespecial jdk.incubator.foreign.GroupLayout.<init>:(Ljdk/incubator/foreign/GroupLayout$Kind;Ljava/util/List;)V
            areturn
        end local 0 // jdk.incubator.foreign.MemoryLayout[] elements
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  elements  [Ljdk/incubator/foreign/MemoryLayout;
    MethodParameters:
          Name  Flags
      elements  

  public static jdk.incubator.foreign.GroupLayout ofUnion(jdk.incubator.foreign.MemoryLayout[]);
    descriptor: ([Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/GroupLayout;
    flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // jdk.incubator.foreign.MemoryLayout[] elements
         0: .line 637
            new jdk.incubator.foreign.GroupLayout
            dup
            getstatic jdk.incubator.foreign.GroupLayout$Kind.UNION:Ljdk/incubator/foreign/GroupLayout$Kind;
            aload 0 /* elements */
            invokestatic java.util.List.of:([Ljava/lang/Object;)Ljava/util/List;
            invokespecial jdk.incubator.foreign.GroupLayout.<init>:(Ljdk/incubator/foreign/GroupLayout$Kind;Ljava/util/List;)V
            areturn
        end local 0 // jdk.incubator.foreign.MemoryLayout[] elements
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  elements  [Ljdk/incubator/foreign/MemoryLayout;
    MethodParameters:
          Name  Flags
      elements  

  private static java.lang.RuntimeException lambda$0();
    descriptor: ()Ljava/lang/RuntimeException;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 227
            new java.lang.UnsupportedOperationException
            dup
            ldc "Cannot compute byte size; bit size is not a multiple of 8"
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static java.lang.RuntimeException lambda$1();
    descriptor: ()Ljava/lang/RuntimeException;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 294
            new java.lang.UnsupportedOperationException
            dup
            ldc "Cannot compute byte alignment; bit alignment is not a multiple of 8"
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static java.lang.RuntimeException lambda$4();
    descriptor: ()Ljava/lang/RuntimeException;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 367
            new java.lang.UnsupportedOperationException
            dup
            ldc "Cannot compute byte offset; bit offset is not a multiple of 8"
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static java.lang.invoke.VarHandle lambda$6(java.lang.Class, jdk.internal.foreign.LayoutPath);
    descriptor: (Ljava/lang/Class;Ljdk/internal/foreign/LayoutPath;)Ljava/lang/invoke/VarHandle;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // jdk.internal.foreign.LayoutPath path
         0: .line 388
            aload 1 /* path */
            aload 0
            invokevirtual jdk.internal.foreign.LayoutPath.dereferenceHandle:(Ljava/lang/Class;)Ljava/lang/invoke/VarHandle;
            areturn
        end local 1 // jdk.internal.foreign.LayoutPath path
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1  path  Ljdk/internal/foreign/LayoutPath;

  private static long lambda$7(jdk.incubator.foreign.MemoryLayout);
    descriptor: (Ljdk/incubator/foreign/MemoryLayout;)J
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // jdk.incubator.foreign.MemoryLayout l
         0: .line 402
            lconst_0
            lreturn
        end local 0 // jdk.incubator.foreign.MemoryLayout l
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     l  Ljdk/incubator/foreign/MemoryLayout;

  private static long lambda$9(jdk.incubator.foreign.MemoryLayout);
    descriptor: (Ljdk/incubator/foreign/MemoryLayout;)J
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // jdk.incubator.foreign.MemoryLayout l
         0: .line 419
            lconst_0
            lreturn
        end local 0 // jdk.incubator.foreign.MemoryLayout l
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     l  Ljdk/incubator/foreign/MemoryLayout;

  private static jdk.incubator.foreign.MemoryLayout lambda$10(java.util.function.UnaryOperator, jdk.internal.foreign.LayoutPath);
    descriptor: (Ljava/util/function/UnaryOperator;Ljdk/internal/foreign/LayoutPath;)Ljdk/incubator/foreign/MemoryLayout;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // jdk.internal.foreign.LayoutPath path
         0: .line 419
            aload 1 /* path */
            aload 0
            invokevirtual jdk.internal.foreign.LayoutPath.map:(Ljava/util/function/UnaryOperator;)Ljdk/incubator/foreign/MemoryLayout;
            areturn
        end local 1 // jdk.internal.foreign.LayoutPath path
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1  path  Ljdk/internal/foreign/LayoutPath;
}
SourceFile: "MemoryLayout.java"
NestMembers:
  jdk.incubator.foreign.MemoryLayout$PathElement
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  final Kind = jdk.incubator.foreign.GroupLayout$Kind of jdk.incubator.foreign.GroupLayout
  public abstract PathElement = jdk.incubator.foreign.MemoryLayout$PathElement of jdk.incubator.foreign.MemoryLayout
  public PathElementImpl = jdk.internal.foreign.LayoutPath$PathElementImpl of jdk.internal.foreign.LayoutPath
  public final PathKind = jdk.internal.foreign.LayoutPath$PathElementImpl$PathKind of jdk.internal.foreign.LayoutPath$PathElementImpl