public class jdk.internal.foreign.LayoutPath
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: jdk.internal.foreign.LayoutPath
  super_class: java.lang.Object
{
  private static final jdk.internal.access.JavaLangInvokeAccess JLI;
    descriptor: Ljdk/internal/access/JavaLangInvokeAccess;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.invoke.MethodHandle ADD_STRIDE;
    descriptor: Ljava/lang/invoke/MethodHandle;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.invoke.MethodHandle MH_ADD_SCALED_OFFSET;
    descriptor: Ljava/lang/invoke/MethodHandle;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final int UNSPECIFIED_ELEM_INDEX;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: -1

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

  private final long offset;
    descriptor: J
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final jdk.internal.foreign.LayoutPath enclosing;
    descriptor: Ljdk/internal/foreign/LayoutPath;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final long[] strides;
    descriptor: [J
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final long elementIndex;
    descriptor: J
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.function.ToLongFunction<jdk.incubator.foreign.MemoryLayout> sizeFunc;
    descriptor: Ljava/util/function/ToLongFunction;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/function/ToLongFunction<Ljdk/incubator/foreign/MemoryLayout;>;

  private static final long[] EMPTY_STRIDES;
    descriptor: [J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=9, locals=1, args_size=0
         0: .line 61
            invokestatic jdk.internal.access.SharedSecrets.getJavaLangInvokeAccess:()Ljdk/internal/access/JavaLangInvokeAccess;
            putstatic jdk.internal.foreign.LayoutPath.JLI:Ljdk/internal/access/JavaLangInvokeAccess;
         1: .line 70
            invokestatic java.lang.invoke.MethodHandles.lookup:()Ljava/lang/invoke/MethodHandles$Lookup;
            astore 0 /* lookup */
        start local 0 // java.lang.invoke.MethodHandles$Lookup lookup
         2: .line 71
            aload 0 /* lookup */
            ldc Ljdk/internal/foreign/LayoutPath;
            ldc "addStride"
         3: .line 72
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            ldc Ljdk/incubator/foreign/MemorySegment;
            iconst_3
            anewarray java.lang.Class
            dup
            iconst_0
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            aastore
            dup
            iconst_1
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            aastore
            dup
            iconst_2
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            aastore
            invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
         4: .line 71
            invokevirtual java.lang.invoke.MethodHandles$Lookup.findStatic:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            putstatic jdk.internal.foreign.LayoutPath.ADD_STRIDE:Ljava/lang/invoke/MethodHandle;
         5: .line 73
            aload 0 /* lookup */
            ldc Ljdk/internal/foreign/LayoutPath;
            ldc "addScaledOffset"
         6: .line 74
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            iconst_2
            anewarray java.lang.Class
            dup
            iconst_0
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            aastore
            dup
            iconst_1
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            aastore
            invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
         7: .line 73
            invokevirtual java.lang.invoke.MethodHandles$Lookup.findStatic:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            putstatic jdk.internal.foreign.LayoutPath.MH_ADD_SCALED_OFFSET:Ljava/lang/invoke/MethodHandle;
        end local 0 // java.lang.invoke.MethodHandles$Lookup lookup
         8: .line 75
            goto 11
      StackMap locals:
      StackMap stack: java.lang.Throwable
         9: astore 0 /* ex */
        start local 0 // java.lang.Throwable ex
        10: .line 76
            new java.lang.ExceptionInInitializerError
            dup
            aload 0 /* ex */
            invokespecial java.lang.ExceptionInInitializerError.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 0 // java.lang.Throwable ex
        11: .line 296
      StackMap locals:
      StackMap stack:
            iconst_0
            newarray 11
            putstatic jdk.internal.foreign.LayoutPath.EMPTY_STRIDES:[J
            return
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            2    8     0  lookup  Ljava/lang/invoke/MethodHandles$Lookup;
           10   11     0      ex  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           1     8       9  Class java.lang.Throwable

  private void <init>(jdk.incubator.foreign.MemoryLayout, long, long[], long, jdk.internal.foreign.LayoutPath, java.util.function.ToLongFunction<jdk.incubator.foreign.MemoryLayout>);
    descriptor: (Ljdk/incubator/foreign/MemoryLayout;J[JJLjdk/internal/foreign/LayoutPath;Ljava/util/function/ToLongFunction;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=9, args_size=7
        start local 0 // jdk.internal.foreign.LayoutPath this
        start local 1 // jdk.incubator.foreign.MemoryLayout layout
        start local 2 // long offset
        start local 4 // long[] strides
        start local 5 // long elementIndex
        start local 7 // jdk.internal.foreign.LayoutPath enclosing
        start local 8 // java.util.function.ToLongFunction sizeFunc
         0: .line 87
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 88
            aload 0 /* this */
            aload 1 /* layout */
            putfield jdk.internal.foreign.LayoutPath.layout:Ljdk/incubator/foreign/MemoryLayout;
         2: .line 89
            aload 0 /* this */
            lload 2 /* offset */
            putfield jdk.internal.foreign.LayoutPath.offset:J
         3: .line 90
            aload 0 /* this */
            aload 4 /* strides */
            putfield jdk.internal.foreign.LayoutPath.strides:[J
         4: .line 91
            aload 0 /* this */
            aload 7 /* enclosing */
            putfield jdk.internal.foreign.LayoutPath.enclosing:Ljdk/internal/foreign/LayoutPath;
         5: .line 92
            aload 0 /* this */
            lload 5 /* elementIndex */
            putfield jdk.internal.foreign.LayoutPath.elementIndex:J
         6: .line 93
            aload 0 /* this */
            aload 8 /* sizeFunc */
            putfield jdk.internal.foreign.LayoutPath.sizeFunc:Ljava/util/function/ToLongFunction;
         7: .line 94
            return
        end local 8 // java.util.function.ToLongFunction sizeFunc
        end local 7 // jdk.internal.foreign.LayoutPath enclosing
        end local 5 // long elementIndex
        end local 4 // long[] strides
        end local 2 // long offset
        end local 1 // jdk.incubator.foreign.MemoryLayout layout
        end local 0 // jdk.internal.foreign.LayoutPath this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    8     0          this  Ljdk/internal/foreign/LayoutPath;
            0    8     1        layout  Ljdk/incubator/foreign/MemoryLayout;
            0    8     2        offset  J
            0    8     4       strides  [J
            0    8     5  elementIndex  J
            0    8     7     enclosing  Ljdk/internal/foreign/LayoutPath;
            0    8     8      sizeFunc  Ljava/util/function/ToLongFunction<Ljdk/incubator/foreign/MemoryLayout;>;
    Signature: (Ljdk/incubator/foreign/MemoryLayout;J[JJLjdk/internal/foreign/LayoutPath;Ljava/util/function/ToLongFunction<Ljdk/incubator/foreign/MemoryLayout;>;)V
    MethodParameters:
              Name  Flags
      layout        
      offset        
      strides       
      elementIndex  
      enclosing     
      sizeFunc      

  public jdk.internal.foreign.LayoutPath sequenceElement();
    descriptor: ()Ljdk/internal/foreign/LayoutPath;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=3, args_size=1
        start local 0 // jdk.internal.foreign.LayoutPath this
         0: .line 99
            aload 0 /* this */
            ldc Ljdk/incubator/foreign/SequenceLayout;
            ldc "attempting to select a sequence element from a non-sequence layout"
            invokevirtual jdk.internal.foreign.LayoutPath.check:(Ljava/lang/Class;Ljava/lang/String;)V
         1: .line 100
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.layout:Ljdk/incubator/foreign/MemoryLayout;
            checkcast jdk.incubator.foreign.SequenceLayout
            astore 1 /* seq */
        start local 1 // jdk.incubator.foreign.SequenceLayout seq
         2: .line 101
            aload 1 /* seq */
            invokevirtual jdk.incubator.foreign.SequenceLayout.elementLayout:()Ljdk/incubator/foreign/MemoryLayout;
            astore 2 /* elem */
        start local 2 // jdk.incubator.foreign.MemoryLayout elem
         3: .line 102
            aload 2 /* elem */
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.offset:J
            aload 0 /* this */
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.sizeFunc:Ljava/util/function/ToLongFunction;
            aload 2 /* elem */
            invokeinterface java.util.function.ToLongFunction.applyAsLong:(Ljava/lang/Object;)J
            invokevirtual jdk.internal.foreign.LayoutPath.addStride:(J)[J
            ldc -1
            aload 0 /* this */
            invokestatic jdk.internal.foreign.LayoutPath.nestedPath:(Ljdk/incubator/foreign/MemoryLayout;J[JJLjdk/internal/foreign/LayoutPath;)Ljdk/internal/foreign/LayoutPath;
            areturn
        end local 2 // jdk.incubator.foreign.MemoryLayout elem
        end local 1 // jdk.incubator.foreign.SequenceLayout seq
        end local 0 // jdk.internal.foreign.LayoutPath this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljdk/internal/foreign/LayoutPath;
            2    4     1   seq  Ljdk/incubator/foreign/SequenceLayout;
            3    4     2  elem  Ljdk/incubator/foreign/MemoryLayout;

  public jdk.internal.foreign.LayoutPath sequenceElement(long, long);
    descriptor: (JJ)Ljdk/internal/foreign/LayoutPath;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=9, args_size=3
        start local 0 // jdk.internal.foreign.LayoutPath this
        start local 1 // long start
        start local 3 // long step
         0: .line 106
            aload 0 /* this */
            ldc Ljdk/incubator/foreign/SequenceLayout;
            ldc "attempting to select a sequence element from a non-sequence layout"
            invokevirtual jdk.internal.foreign.LayoutPath.check:(Ljava/lang/Class;Ljava/lang/String;)V
         1: .line 107
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.layout:Ljdk/incubator/foreign/MemoryLayout;
            checkcast jdk.incubator.foreign.SequenceLayout
            astore 5 /* seq */
        start local 5 // jdk.incubator.foreign.SequenceLayout seq
         2: .line 108
            aload 0 /* this */
            aload 5 /* seq */
            lload 1 /* start */
            invokevirtual jdk.internal.foreign.LayoutPath.checkSequenceBounds:(Ljdk/incubator/foreign/SequenceLayout;J)V
         3: .line 109
            aload 5 /* seq */
            invokevirtual jdk.incubator.foreign.SequenceLayout.elementLayout:()Ljdk/incubator/foreign/MemoryLayout;
            astore 6 /* elem */
        start local 6 // jdk.incubator.foreign.MemoryLayout elem
         4: .line 110
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.sizeFunc:Ljava/util/function/ToLongFunction;
            aload 6 /* elem */
            invokeinterface java.util.function.ToLongFunction.applyAsLong:(Ljava/lang/Object;)J
            lstore 7 /* elemSize */
        start local 7 // long elemSize
         5: .line 111
            aload 6 /* elem */
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.offset:J
            lload 1 /* start */
            lload 7 /* elemSize */
            lmul
            ladd
            aload 0 /* this */
            lload 7 /* elemSize */
            lload 3 /* step */
            lmul
            invokevirtual jdk.internal.foreign.LayoutPath.addStride:(J)[J
         6: .line 112
            ldc -1
            aload 0 /* this */
         7: .line 111
            invokestatic jdk.internal.foreign.LayoutPath.nestedPath:(Ljdk/incubator/foreign/MemoryLayout;J[JJLjdk/internal/foreign/LayoutPath;)Ljdk/internal/foreign/LayoutPath;
            areturn
        end local 7 // long elemSize
        end local 6 // jdk.incubator.foreign.MemoryLayout elem
        end local 5 // jdk.incubator.foreign.SequenceLayout seq
        end local 3 // long step
        end local 1 // long start
        end local 0 // jdk.internal.foreign.LayoutPath this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0      this  Ljdk/internal/foreign/LayoutPath;
            0    8     1     start  J
            0    8     3      step  J
            2    8     5       seq  Ljdk/incubator/foreign/SequenceLayout;
            4    8     6      elem  Ljdk/incubator/foreign/MemoryLayout;
            5    8     7  elemSize  J
    MethodParameters:
       Name  Flags
      start  
      step   

  public jdk.internal.foreign.LayoutPath sequenceElement(long);
    descriptor: (J)Ljdk/internal/foreign/LayoutPath;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=8, args_size=2
        start local 0 // jdk.internal.foreign.LayoutPath this
        start local 1 // long index
         0: .line 116
            aload 0 /* this */
            ldc Ljdk/incubator/foreign/SequenceLayout;
            ldc "attempting to select a sequence element from a non-sequence layout"
            invokevirtual jdk.internal.foreign.LayoutPath.check:(Ljava/lang/Class;Ljava/lang/String;)V
         1: .line 117
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.layout:Ljdk/incubator/foreign/MemoryLayout;
            checkcast jdk.incubator.foreign.SequenceLayout
            astore 3 /* seq */
        start local 3 // jdk.incubator.foreign.SequenceLayout seq
         2: .line 118
            aload 0 /* this */
            aload 3 /* seq */
            lload 1 /* index */
            invokevirtual jdk.internal.foreign.LayoutPath.checkSequenceBounds:(Ljdk/incubator/foreign/SequenceLayout;J)V
         3: .line 119
            lconst_0
            lstore 4 /* elemOffset */
        start local 4 // long elemOffset
         4: .line 120
            lload 1 /* index */
            lconst_0
            lcmp
            ifle 7
         5: .line 122
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.sizeFunc:Ljava/util/function/ToLongFunction;
            aload 3 /* seq */
            invokevirtual jdk.incubator.foreign.SequenceLayout.elementLayout:()Ljdk/incubator/foreign/MemoryLayout;
            invokeinterface java.util.function.ToLongFunction.applyAsLong:(Ljava/lang/Object;)J
            lstore 6 /* elemSize */
        start local 6 // long elemSize
         6: .line 123
            lload 6 /* elemSize */
            lload 1 /* index */
            lmul
            lstore 4 /* elemOffset */
        end local 6 // long elemSize
         7: .line 125
      StackMap locals: jdk.incubator.foreign.SequenceLayout long
      StackMap stack:
            aload 3 /* seq */
            invokevirtual jdk.incubator.foreign.SequenceLayout.elementLayout:()Ljdk/incubator/foreign/MemoryLayout;
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.offset:J
            lload 4 /* elemOffset */
            ladd
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.strides:[J
            lload 1 /* index */
            aload 0 /* this */
            invokestatic jdk.internal.foreign.LayoutPath.nestedPath:(Ljdk/incubator/foreign/MemoryLayout;J[JJLjdk/internal/foreign/LayoutPath;)Ljdk/internal/foreign/LayoutPath;
            areturn
        end local 4 // long elemOffset
        end local 3 // jdk.incubator.foreign.SequenceLayout seq
        end local 1 // long index
        end local 0 // jdk.internal.foreign.LayoutPath this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    8     0        this  Ljdk/internal/foreign/LayoutPath;
            0    8     1       index  J
            2    8     3         seq  Ljdk/incubator/foreign/SequenceLayout;
            4    8     4  elemOffset  J
            6    7     6    elemSize  J
    MethodParameters:
       Name  Flags
      index  

  public jdk.internal.foreign.LayoutPath groupElement(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljdk/internal/foreign/LayoutPath;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=9, args_size=2
        start local 0 // jdk.internal.foreign.LayoutPath this
        start local 1 // java.lang.String name
         0: .line 129
            aload 0 /* this */
            ldc Ljdk/incubator/foreign/GroupLayout;
            ldc "attempting to select a group element from a non-group layout"
            invokevirtual jdk.internal.foreign.LayoutPath.check:(Ljava/lang/Class;Ljava/lang/String;)V
         1: .line 130
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.layout:Ljdk/incubator/foreign/MemoryLayout;
            checkcast jdk.incubator.foreign.GroupLayout
            astore 2 /* g */
        start local 2 // jdk.incubator.foreign.GroupLayout g
         2: .line 131
            lconst_0
            lstore 3 /* offset */
        start local 3 // long offset
         3: .line 132
            aconst_null
            astore 5 /* elem */
        start local 5 // jdk.incubator.foreign.MemoryLayout elem
         4: .line 133
            iconst_m1
            istore 6 /* index */
        start local 6 // int index
         5: .line 134
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         6: goto 16
         7: .line 135
      StackMap locals: jdk.internal.foreign.LayoutPath java.lang.String jdk.incubator.foreign.GroupLayout long jdk.incubator.foreign.MemoryLayout int int
      StackMap stack:
            aload 2 /* g */
            invokevirtual jdk.incubator.foreign.GroupLayout.memberLayouts:()Ljava/util/List;
            iload 7 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast jdk.incubator.foreign.MemoryLayout
            astore 8 /* l */
        start local 8 // jdk.incubator.foreign.MemoryLayout l
         8: .line 136
            aload 8 /* l */
            invokeinterface jdk.incubator.foreign.MemoryLayout.name:()Ljava/util/Optional;
            invokevirtual java.util.Optional.isPresent:()Z
            ifeq 13
         9: .line 137
            aload 8 /* l */
            invokeinterface jdk.incubator.foreign.MemoryLayout.name:()Ljava/util/Optional;
            invokevirtual java.util.Optional.get:()Ljava/lang/Object;
            checkcast java.lang.String
            aload 1 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 13
        10: .line 138
            aload 8 /* l */
            astore 5 /* elem */
        11: .line 139
            iload 7 /* i */
            istore 6 /* index */
        12: .line 140
            goto 17
        13: .line 141
      StackMap locals: jdk.incubator.foreign.MemoryLayout
      StackMap stack:
            aload 2 /* g */
            invokevirtual jdk.incubator.foreign.GroupLayout.isStruct:()Z
            ifeq 15
        14: .line 142
            lload 3 /* offset */
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.sizeFunc:Ljava/util/function/ToLongFunction;
            aload 8 /* l */
            invokeinterface java.util.function.ToLongFunction.applyAsLong:(Ljava/lang/Object;)J
            ladd
            lstore 3 /* offset */
        end local 8 // jdk.incubator.foreign.MemoryLayout l
        15: .line 134
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        16: iload 7 /* i */
            aload 2 /* g */
            invokevirtual jdk.incubator.foreign.GroupLayout.memberLayouts:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            if_icmplt 7
        end local 7 // int i
        17: .line 145
      StackMap locals:
      StackMap stack:
            aload 5 /* elem */
            ifnonnull 19
        18: .line 146
            new java.lang.StringBuilder
            dup
            ldc "cannot resolve '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "' in layout "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.layout:Ljdk/incubator/foreign/MemoryLayout;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic jdk.internal.foreign.LayoutPath.badLayoutPath:(Ljava/lang/String;)Ljava/lang/IllegalArgumentException;
            athrow
        19: .line 148
      StackMap locals:
      StackMap stack:
            aload 5 /* elem */
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.offset:J
            lload 3 /* offset */
            ladd
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.strides:[J
            iload 6 /* index */
            i2l
            aload 0 /* this */
            invokestatic jdk.internal.foreign.LayoutPath.nestedPath:(Ljdk/incubator/foreign/MemoryLayout;J[JJLjdk/internal/foreign/LayoutPath;)Ljdk/internal/foreign/LayoutPath;
            areturn
        end local 6 // int index
        end local 5 // jdk.incubator.foreign.MemoryLayout elem
        end local 3 // long offset
        end local 2 // jdk.incubator.foreign.GroupLayout g
        end local 1 // java.lang.String name
        end local 0 // jdk.internal.foreign.LayoutPath this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   20     0    this  Ljdk/internal/foreign/LayoutPath;
            0   20     1    name  Ljava/lang/String;
            2   20     2       g  Ljdk/incubator/foreign/GroupLayout;
            3   20     3  offset  J
            4   20     5    elem  Ljdk/incubator/foreign/MemoryLayout;
            5   20     6   index  I
            6   17     7       i  I
            8   15     8       l  Ljdk/incubator/foreign/MemoryLayout;
    MethodParameters:
      Name  Flags
      name  

  public long offset();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // jdk.internal.foreign.LayoutPath this
         0: .line 154
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.offset:J
            lreturn
        end local 0 // jdk.internal.foreign.LayoutPath this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/internal/foreign/LayoutPath;

  public java.lang.invoke.VarHandle dereferenceHandle(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/invoke/VarHandle;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=10, locals=6, args_size=2
        start local 0 // jdk.internal.foreign.LayoutPath this
        start local 1 // java.lang.Class carrier
         0: .line 158
            aload 1 /* carrier */
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.layout:Ljdk/incubator/foreign/MemoryLayout;
            invokestatic jdk.internal.foreign.Utils.checkPrimitiveCarrierCompat:(Ljava/lang/Class;Ljdk/incubator/foreign/MemoryLayout;)V
         1: .line 159
            aload 0 /* this */
            invokestatic jdk.internal.foreign.LayoutPath.checkAlignment:(Ljdk/internal/foreign/LayoutPath;)V
         2: .line 161
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* expectedCoordinates */
        start local 2 // java.util.List expectedCoordinates
         3: .line 162
            new java.util.ArrayDeque
            dup
            invokespecial java.util.ArrayDeque.<init>:()V
            astore 3 /* perms */
        start local 3 // java.util.Deque perms
         4: .line 163
            aload 3 /* perms */
            iconst_0
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Deque.addFirst:(Ljava/lang/Object;)V
         5: .line 164
            aload 2 /* expectedCoordinates */
            ldc Ljdk/incubator/foreign/MemorySegment;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         6: .line 166
            getstatic jdk.internal.foreign.LayoutPath.JLI:Ljdk/internal/access/JavaLangInvokeAccess;
            aload 1 /* carrier */
            iconst_1
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.layout:Ljdk/incubator/foreign/MemoryLayout;
            invokeinterface jdk.incubator.foreign.MemoryLayout.byteAlignment:()J
            lconst_1
            lsub
         7: .line 167
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.layout:Ljdk/incubator/foreign/MemoryLayout;
            checkcast jdk.incubator.foreign.ValueLayout
            invokevirtual jdk.incubator.foreign.ValueLayout.order:()Ljava/nio/ByteOrder;
         8: .line 166
            invokeinterface jdk.internal.access.JavaLangInvokeAccess.memoryAccessVarHandle:(Ljava/lang/Class;ZJLjava/nio/ByteOrder;)Ljava/lang/invoke/VarHandle;
            invokestatic jdk.internal.foreign.Utils.fixUpVarHandle:(Ljava/lang/invoke/VarHandle;)Ljava/lang/invoke/VarHandle;
            astore 4 /* handle */
        start local 4 // java.lang.invoke.VarHandle handle
         9: .line 169
            iconst_0
            istore 5 /* i */
        start local 5 // int i
        10: goto 18
        11: .line 170
      StackMap locals: jdk.internal.foreign.LayoutPath java.lang.Class java.util.List java.util.Deque java.lang.invoke.VarHandle int
      StackMap stack:
            aload 2 /* expectedCoordinates */
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        12: .line 171
            aload 3 /* perms */
            iconst_0
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Deque.addFirst:(Ljava/lang/Object;)V
        13: .line 172
            aload 3 /* perms */
            iload 5 /* i */
            iconst_1
            iadd
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Deque.addLast:(Ljava/lang/Object;)V
        14: .line 174
            aload 4 /* handle */
            iconst_1
            iload 5 /* i */
            iadd
        15: .line 175
            getstatic jdk.internal.foreign.LayoutPath.ADD_STRIDE:Ljava/lang/invoke/MethodHandle;
            iconst_1
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.strides:[J
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.strides:[J
            arraylength
            iconst_1
            isub
            iload 5 /* i */
            isub
            laload
            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;
                  java/lang/IllegalStateException.<init>()V (8)
                  ()Ljava/lang/RuntimeException;
            invokestatic jdk.internal.foreign.Utils.bitsToBytesOrThrow:(JLjava/util/function/Supplier;)J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            invokestatic java.lang.invoke.MethodHandles.insertArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
        16: .line 174
            invokestatic jdk.incubator.foreign.MemoryHandles.collectCoordinates:(Ljava/lang/invoke/VarHandle;ILjava/lang/invoke/MethodHandle;)Ljava/lang/invoke/VarHandle;
            astore 4 /* handle */
        17: .line 169
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        18: iload 5 /* i */
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.strides:[J
            arraylength
            if_icmplt 11
        end local 5 // int i
        19: .line 178
            aload 4 /* handle */
            iconst_1
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.strides:[J
            arraylength
            iadd
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.offset:J
            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;
                  java/lang/IllegalStateException.<init>()V (8)
                  ()Ljava/lang/RuntimeException;
            invokestatic jdk.internal.foreign.Utils.bitsToBytesOrThrow:(JLjava/util/function/Supplier;)J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            invokestatic jdk.incubator.foreign.MemoryHandles.insertCoordinates:(Ljava/lang/invoke/VarHandle;I[Ljava/lang/Object;)Ljava/lang/invoke/VarHandle;
            astore 4 /* handle */
        20: .line 180
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.strides:[J
            arraylength
            ifle 22
        21: .line 182
            aload 4 /* handle */
            aload 2 /* expectedCoordinates */
            aload 3 /* perms */
            invokeinterface java.util.Deque.stream:()Ljava/util/stream/Stream;
            invokedynamic applyAsInt()Ljava/util/function/ToIntFunction;
              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;)I
                  jdk/internal/foreign/LayoutPath.lambda$2(Ljava/lang/Integer;)I (6)
                  (Ljava/lang/Integer;)I
            invokeinterface java.util.stream.Stream.mapToInt:(Ljava/util/function/ToIntFunction;)Ljava/util/stream/IntStream;
            invokeinterface java.util.stream.IntStream.toArray:()[I
            invokestatic jdk.incubator.foreign.MemoryHandles.permuteCoordinates:(Ljava/lang/invoke/VarHandle;Ljava/util/List;[I)Ljava/lang/invoke/VarHandle;
            astore 4 /* handle */
        22: .line 184
      StackMap locals:
      StackMap stack:
            aload 4 /* handle */
            areturn
        end local 4 // java.lang.invoke.VarHandle handle
        end local 3 // java.util.Deque perms
        end local 2 // java.util.List expectedCoordinates
        end local 1 // java.lang.Class carrier
        end local 0 // jdk.internal.foreign.LayoutPath this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   23     0                 this  Ljdk/internal/foreign/LayoutPath;
            0   23     1              carrier  Ljava/lang/Class<*>;
            3   23     2  expectedCoordinates  Ljava/util/List<Ljava/lang/Class<*>;>;
            4   23     3                perms  Ljava/util/Deque<Ljava/lang/Integer;>;
            9   23     4               handle  Ljava/lang/invoke/VarHandle;
           10   19     5                    i  I
    Signature: (Ljava/lang/Class<*>;)Ljava/lang/invoke/VarHandle;
    MethodParameters:
         Name  Flags
      carrier  

  private static long addScaledOffset(long, long, long);
    descriptor: (JJJ)J
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=6, args_size=3
        start local 0 // long base
        start local 2 // long index
        start local 4 // long stride
         0: .line 188
            lload 0 /* base */
            lload 4 /* stride */
            lload 2 /* index */
            lmul
            ladd
            lreturn
        end local 4 // long stride
        end local 2 // long index
        end local 0 // long base
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    base  J
            0    1     2   index  J
            0    1     4  stride  J
    MethodParameters:
        Name  Flags
      base    
      index   
      stride  

  public java.lang.invoke.MethodHandle offsetHandle();
    descriptor: ()Ljava/lang/invoke/MethodHandle;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=4, args_size=1
        start local 0 // jdk.internal.foreign.LayoutPath this
         0: .line 192
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            invokestatic java.lang.invoke.MethodHandles.identity:(Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            astore 1 /* mh */
        start local 1 // java.lang.invoke.MethodHandle mh
         1: .line 193
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.strides:[J
            arraylength
            iconst_1
            isub
            istore 2 /* i */
        start local 2 // int i
         2: goto 6
         3: .line 194
      StackMap locals: java.lang.invoke.MethodHandle int
      StackMap stack:
            getstatic jdk.internal.foreign.LayoutPath.MH_ADD_SCALED_OFFSET:Ljava/lang/invoke/MethodHandle;
            iconst_2
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.strides:[J
            iload 2 /* i */
            laload
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            invokestatic java.lang.invoke.MethodHandles.insertArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
            astore 3 /* collector */
        start local 3 // java.lang.invoke.MethodHandle collector
         4: .line 197
            aload 1 /* mh */
            iconst_0
            aload 3 /* collector */
            invokestatic java.lang.invoke.MethodHandles.collectArguments:(Ljava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
            astore 1 /* mh */
        end local 3 // java.lang.invoke.MethodHandle collector
         5: .line 193
            iinc 2 /* i */ -1
      StackMap locals:
      StackMap stack:
         6: iload 2 /* i */
            ifge 3
        end local 2 // int i
         7: .line 199
            aload 1 /* mh */
            iconst_0
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.offset:J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            invokestatic java.lang.invoke.MethodHandles.insertArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
            astore 1 /* mh */
         8: .line 200
            aload 1 /* mh */
            areturn
        end local 1 // java.lang.invoke.MethodHandle mh
        end local 0 // jdk.internal.foreign.LayoutPath this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    9     0       this  Ljdk/internal/foreign/LayoutPath;
            1    9     1         mh  Ljava/lang/invoke/MethodHandle;
            2    7     2          i  I
            4    5     3  collector  Ljava/lang/invoke/MethodHandle;

  public jdk.incubator.foreign.MemoryLayout layout();
    descriptor: ()Ljdk/incubator/foreign/MemoryLayout;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.internal.foreign.LayoutPath this
         0: .line 204
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.layout:Ljdk/incubator/foreign/MemoryLayout;
            areturn
        end local 0 // jdk.internal.foreign.LayoutPath this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/internal/foreign/LayoutPath;

  public jdk.incubator.foreign.MemoryLayout map(java.util.function.UnaryOperator<jdk.incubator.foreign.MemoryLayout>);
    descriptor: (Ljava/util/function/UnaryOperator;)Ljdk/incubator/foreign/MemoryLayout;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // jdk.internal.foreign.LayoutPath this
        start local 1 // java.util.function.UnaryOperator op
         0: .line 208
            aload 1 /* op */
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.layout:Ljdk/incubator/foreign/MemoryLayout;
            invokeinterface java.util.function.UnaryOperator.apply:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast jdk.incubator.foreign.MemoryLayout
            astore 2 /* newLayout */
        start local 2 // jdk.incubator.foreign.MemoryLayout newLayout
         1: .line 209
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.enclosing:Ljdk/internal/foreign/LayoutPath;
            ifnonnull 3
         2: .line 210
            aload 2 /* newLayout */
            areturn
         3: .line 211
      StackMap locals: jdk.incubator.foreign.MemoryLayout
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.enclosing:Ljdk/internal/foreign/LayoutPath;
            getfield jdk.internal.foreign.LayoutPath.layout:Ljdk/incubator/foreign/MemoryLayout;
            instanceof jdk.incubator.foreign.SequenceLayout
            ifeq 8
         4: .line 212
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.enclosing:Ljdk/internal/foreign/LayoutPath;
            getfield jdk.internal.foreign.LayoutPath.layout:Ljdk/incubator/foreign/MemoryLayout;
            checkcast jdk.incubator.foreign.SequenceLayout
            astore 3 /* seq */
        start local 3 // jdk.incubator.foreign.SequenceLayout seq
         5: .line 213
            aload 3 /* seq */
            invokevirtual jdk.incubator.foreign.SequenceLayout.elementCount:()Ljava/util/OptionalLong;
            invokevirtual java.util.OptionalLong.isPresent:()Z
            ifeq 7
         6: .line 214
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.enclosing:Ljdk/internal/foreign/LayoutPath;
            aload 0 /* this */
            aload 3 /* seq */
            aload 2 /* newLayout */
            invokedynamic apply(Ljdk/internal/foreign/LayoutPath;Ljdk/incubator/foreign/SequenceLayout;Ljdk/incubator/foreign/MemoryLayout;)Ljava/util/function/UnaryOperator;
              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.lambda$3(Ljdk/incubator/foreign/SequenceLayout;Ljdk/incubator/foreign/MemoryLayout;Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/MemoryLayout; (7)
                  (Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/MemoryLayout;
            invokevirtual jdk.internal.foreign.LayoutPath.map:(Ljava/util/function/UnaryOperator;)Ljdk/incubator/foreign/MemoryLayout;
            areturn
         7: .line 216
      StackMap locals: jdk.incubator.foreign.SequenceLayout
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.enclosing:Ljdk/internal/foreign/LayoutPath;
            aload 0 /* this */
            aload 2 /* newLayout */
            invokedynamic apply(Ljdk/internal/foreign/LayoutPath;Ljdk/incubator/foreign/MemoryLayout;)Ljava/util/function/UnaryOperator;
              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.lambda$4(Ljdk/incubator/foreign/MemoryLayout;Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/MemoryLayout; (7)
                  (Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/MemoryLayout;
            invokevirtual jdk.internal.foreign.LayoutPath.map:(Ljava/util/function/UnaryOperator;)Ljdk/incubator/foreign/MemoryLayout;
            areturn
        end local 3 // jdk.incubator.foreign.SequenceLayout seq
         8: .line 218
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.enclosing:Ljdk/internal/foreign/LayoutPath;
            getfield jdk.internal.foreign.LayoutPath.layout:Ljdk/incubator/foreign/MemoryLayout;
            instanceof jdk.incubator.foreign.GroupLayout
            ifeq 15
         9: .line 219
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.enclosing:Ljdk/internal/foreign/LayoutPath;
            getfield jdk.internal.foreign.LayoutPath.layout:Ljdk/incubator/foreign/MemoryLayout;
            checkcast jdk.incubator.foreign.GroupLayout
            astore 3 /* g */
        start local 3 // jdk.incubator.foreign.GroupLayout g
        10: .line 220
            new java.util.ArrayList
            dup
            aload 3 /* g */
            invokevirtual jdk.incubator.foreign.GroupLayout.memberLayouts:()Ljava/util/List;
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            astore 4 /* newElements */
        start local 4 // java.util.List newElements
        11: .line 222
            aload 4 /* newElements */
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.elementIndex:J
            l2i
            aload 2 /* newLayout */
            invokeinterface java.util.List.set:(ILjava/lang/Object;)Ljava/lang/Object;
            pop
        12: .line 223
            aload 3 /* g */
            invokevirtual jdk.incubator.foreign.GroupLayout.isUnion:()Z
            ifeq 14
        13: .line 224
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.enclosing:Ljdk/internal/foreign/LayoutPath;
            aload 0 /* this */
            aload 4 /* newElements */
            invokedynamic apply(Ljdk/internal/foreign/LayoutPath;Ljava/util/List;)Ljava/util/function/UnaryOperator;
              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.lambda$5(Ljava/util/List;Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/MemoryLayout; (7)
                  (Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/MemoryLayout;
            invokevirtual jdk.internal.foreign.LayoutPath.map:(Ljava/util/function/UnaryOperator;)Ljdk/incubator/foreign/MemoryLayout;
            areturn
        14: .line 226
      StackMap locals: jdk.incubator.foreign.GroupLayout java.util.List
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.enclosing:Ljdk/internal/foreign/LayoutPath;
            aload 0 /* this */
            aload 4 /* newElements */
            invokedynamic apply(Ljdk/internal/foreign/LayoutPath;Ljava/util/List;)Ljava/util/function/UnaryOperator;
              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.lambda$6(Ljava/util/List;Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/MemoryLayout; (7)
                  (Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/MemoryLayout;
            invokevirtual jdk.internal.foreign.LayoutPath.map:(Ljava/util/function/UnaryOperator;)Ljdk/incubator/foreign/MemoryLayout;
            areturn
        end local 4 // java.util.List newElements
        end local 3 // jdk.incubator.foreign.GroupLayout g
        15: .line 229
      StackMap locals:
      StackMap stack:
            aload 2 /* newLayout */
            areturn
        end local 2 // jdk.incubator.foreign.MemoryLayout newLayout
        end local 1 // java.util.function.UnaryOperator op
        end local 0 // jdk.internal.foreign.LayoutPath this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   16     0         this  Ljdk/internal/foreign/LayoutPath;
            0   16     1           op  Ljava/util/function/UnaryOperator<Ljdk/incubator/foreign/MemoryLayout;>;
            1   16     2    newLayout  Ljdk/incubator/foreign/MemoryLayout;
            5    8     3          seq  Ljdk/incubator/foreign/SequenceLayout;
           10   15     3            g  Ljdk/incubator/foreign/GroupLayout;
           11   15     4  newElements  Ljava/util/List<Ljdk/incubator/foreign/MemoryLayout;>;
    Signature: (Ljava/util/function/UnaryOperator<Ljdk/incubator/foreign/MemoryLayout;>;)Ljdk/incubator/foreign/MemoryLayout;
    MethodParameters:
      Name  Flags
      op    

  private jdk.incubator.foreign.MemoryLayout dup(jdk.incubator.foreign.MemoryLayout, jdk.incubator.foreign.MemoryLayout);
    descriptor: (Ljdk/incubator/foreign/MemoryLayout;Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/MemoryLayout;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // jdk.internal.foreign.LayoutPath this
        start local 1 // jdk.incubator.foreign.MemoryLayout oldLayout
        start local 2 // jdk.incubator.foreign.MemoryLayout newLayout
         0: .line 234
            aload 2 /* newLayout */
            aload 1 /* oldLayout */
            invokeinterface jdk.incubator.foreign.MemoryLayout.bitAlignment:()J
            invokeinterface jdk.incubator.foreign.MemoryLayout.withBitAlignment:(J)Ljdk/incubator/foreign/MemoryLayout;
            astore 2 /* newLayout */
         1: .line 235
            aload 1 /* oldLayout */
            invokeinterface jdk.incubator.foreign.MemoryLayout.name:()Ljava/util/Optional;
            invokevirtual java.util.Optional.isPresent:()Z
            ifeq 3
         2: .line 236
            aload 2 /* newLayout */
            aload 1 /* oldLayout */
            invokeinterface jdk.incubator.foreign.MemoryLayout.name:()Ljava/util/Optional;
            invokevirtual java.util.Optional.get:()Ljava/lang/Object;
            checkcast java.lang.String
            invokeinterface jdk.incubator.foreign.MemoryLayout.withName:(Ljava/lang/String;)Ljdk/incubator/foreign/MemoryLayout;
            pop
         3: .line 238
      StackMap locals:
      StackMap stack:
            aload 2 /* newLayout */
            areturn
        end local 2 // jdk.incubator.foreign.MemoryLayout newLayout
        end local 1 // jdk.incubator.foreign.MemoryLayout oldLayout
        end local 0 // jdk.internal.foreign.LayoutPath this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Ljdk/internal/foreign/LayoutPath;
            0    4     1  oldLayout  Ljdk/incubator/foreign/MemoryLayout;
            0    4     2  newLayout  Ljdk/incubator/foreign/MemoryLayout;
    MethodParameters:
           Name  Flags
      oldLayout  
      newLayout  

  public static jdk.internal.foreign.LayoutPath rootPath(jdk.incubator.foreign.MemoryLayout, java.util.function.ToLongFunction<jdk.incubator.foreign.MemoryLayout>);
    descriptor: (Ljdk/incubator/foreign/MemoryLayout;Ljava/util/function/ToLongFunction;)Ljdk/internal/foreign/LayoutPath;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=10, locals=2, args_size=2
        start local 0 // jdk.incubator.foreign.MemoryLayout layout
        start local 1 // java.util.function.ToLongFunction sizeFunc
         0: .line 244
            new jdk.internal.foreign.LayoutPath
            dup
            aload 0 /* layout */
            lconst_0
            getstatic jdk.internal.foreign.LayoutPath.EMPTY_STRIDES:[J
            ldc -1
            aconst_null
            aload 1 /* sizeFunc */
            invokespecial jdk.internal.foreign.LayoutPath.<init>:(Ljdk/incubator/foreign/MemoryLayout;J[JJLjdk/internal/foreign/LayoutPath;Ljava/util/function/ToLongFunction;)V
            areturn
        end local 1 // java.util.function.ToLongFunction sizeFunc
        end local 0 // jdk.incubator.foreign.MemoryLayout layout
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0    layout  Ljdk/incubator/foreign/MemoryLayout;
            0    1     1  sizeFunc  Ljava/util/function/ToLongFunction<Ljdk/incubator/foreign/MemoryLayout;>;
    Signature: (Ljdk/incubator/foreign/MemoryLayout;Ljava/util/function/ToLongFunction<Ljdk/incubator/foreign/MemoryLayout;>;)Ljdk/internal/foreign/LayoutPath;
    MethodParameters:
          Name  Flags
      layout    
      sizeFunc  

  private static jdk.internal.foreign.LayoutPath nestedPath(jdk.incubator.foreign.MemoryLayout, long, long[], long, jdk.internal.foreign.LayoutPath);
    descriptor: (Ljdk/incubator/foreign/MemoryLayout;J[JJLjdk/internal/foreign/LayoutPath;)Ljdk/internal/foreign/LayoutPath;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=10, locals=7, args_size=5
        start local 0 // jdk.incubator.foreign.MemoryLayout layout
        start local 1 // long offset
        start local 3 // long[] strides
        start local 4 // long elementIndex
        start local 6 // jdk.internal.foreign.LayoutPath encl
         0: .line 248
            new jdk.internal.foreign.LayoutPath
            dup
            aload 0 /* layout */
            lload 1 /* offset */
            aload 3 /* strides */
            lload 4 /* elementIndex */
            aload 6 /* encl */
            aload 6 /* encl */
            getfield jdk.internal.foreign.LayoutPath.sizeFunc:Ljava/util/function/ToLongFunction;
            invokespecial jdk.internal.foreign.LayoutPath.<init>:(Ljdk/incubator/foreign/MemoryLayout;J[JJLjdk/internal/foreign/LayoutPath;Ljava/util/function/ToLongFunction;)V
            areturn
        end local 6 // jdk.internal.foreign.LayoutPath encl
        end local 4 // long elementIndex
        end local 3 // long[] strides
        end local 1 // long offset
        end local 0 // jdk.incubator.foreign.MemoryLayout layout
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0        layout  Ljdk/incubator/foreign/MemoryLayout;
            0    1     1        offset  J
            0    1     3       strides  [J
            0    1     4  elementIndex  J
            0    1     6          encl  Ljdk/internal/foreign/LayoutPath;
    MethodParameters:
              Name  Flags
      layout        
      offset        
      strides       
      elementIndex  
      encl          

  private void check(java.lang.Class<?>, java.lang.String);
    descriptor: (Ljava/lang/Class;Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // jdk.internal.foreign.LayoutPath this
        start local 1 // java.lang.Class layoutClass
        start local 2 // java.lang.String msg
         0: .line 254
            aload 1 /* layoutClass */
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.layout:Ljdk/incubator/foreign/MemoryLayout;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifne 2
         1: .line 255
            aload 2 /* msg */
            invokestatic jdk.internal.foreign.LayoutPath.badLayoutPath:(Ljava/lang/String;)Ljava/lang/IllegalArgumentException;
            athrow
         2: .line 257
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.String msg
        end local 1 // java.lang.Class layoutClass
        end local 0 // jdk.internal.foreign.LayoutPath this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0         this  Ljdk/internal/foreign/LayoutPath;
            0    3     1  layoutClass  Ljava/lang/Class<*>;
            0    3     2          msg  Ljava/lang/String;
    Signature: (Ljava/lang/Class<*>;Ljava/lang/String;)V
    MethodParameters:
             Name  Flags
      layoutClass  
      msg          

  private void checkSequenceBounds(jdk.incubator.foreign.SequenceLayout, long);
    descriptor: (Ljdk/incubator/foreign/SequenceLayout;J)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // jdk.internal.foreign.LayoutPath this
        start local 1 // jdk.incubator.foreign.SequenceLayout seq
        start local 2 // long index
         0: .line 260
            aload 1 /* seq */
            invokevirtual jdk.incubator.foreign.SequenceLayout.elementCount:()Ljava/util/OptionalLong;
            invokevirtual java.util.OptionalLong.isPresent:()Z
            ifeq 2
            lload 2 /* index */
            aload 1 /* seq */
            invokevirtual jdk.incubator.foreign.SequenceLayout.elementCount:()Ljava/util/OptionalLong;
            invokevirtual java.util.OptionalLong.getAsLong:()J
            lcmp
            iflt 2
         1: .line 261
            ldc "Sequence index out of bound; found: %d, size: %d"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            lload 2 /* index */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            dup
            iconst_1
            aload 1 /* seq */
            invokevirtual jdk.incubator.foreign.SequenceLayout.elementCount:()Ljava/util/OptionalLong;
            invokevirtual java.util.OptionalLong.getAsLong:()J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokestatic jdk.internal.foreign.LayoutPath.badLayoutPath:(Ljava/lang/String;)Ljava/lang/IllegalArgumentException;
            athrow
         2: .line 263
      StackMap locals:
      StackMap stack:
            return
        end local 2 // long index
        end local 1 // jdk.incubator.foreign.SequenceLayout seq
        end local 0 // jdk.internal.foreign.LayoutPath this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Ljdk/internal/foreign/LayoutPath;
            0    3     1    seq  Ljdk/incubator/foreign/SequenceLayout;
            0    3     2  index  J
    MethodParameters:
       Name  Flags
      seq    
      index  

  private static java.lang.IllegalArgumentException badLayoutPath(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/IllegalArgumentException;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // java.lang.String cause
         0: .line 266
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Bad layout path: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* cause */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            areturn
        end local 0 // java.lang.String cause
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  cause  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      cause  

  private static void checkAlignment(jdk.internal.foreign.LayoutPath);
    descriptor: (Ljdk/internal/foreign/LayoutPath;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=9, args_size=1
        start local 0 // jdk.internal.foreign.LayoutPath path
         0: .line 270
            aload 0 /* path */
            getfield jdk.internal.foreign.LayoutPath.layout:Ljdk/incubator/foreign/MemoryLayout;
            astore 1 /* layout */
        start local 1 // jdk.incubator.foreign.MemoryLayout layout
         1: .line 271
            aload 1 /* layout */
            invokeinterface jdk.incubator.foreign.MemoryLayout.bitAlignment:()J
            lstore 2 /* alignment */
        start local 2 // long alignment
         2: .line 272
            aload 0 /* path */
            getfield jdk.internal.foreign.LayoutPath.offset:J
            lload 2 /* alignment */
            lrem
            lconst_0
            lcmp
            ifeq 4
         3: .line 273
            new java.lang.UnsupportedOperationException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Invalid alignment requirements for layout "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* layout */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 275
      StackMap locals: jdk.incubator.foreign.MemoryLayout long
      StackMap stack:
            aload 0 /* path */
            getfield jdk.internal.foreign.LayoutPath.strides:[J
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 9
      StackMap locals: jdk.internal.foreign.LayoutPath jdk.incubator.foreign.MemoryLayout long top top int int long[]
      StackMap stack:
         5: aload 8
            iload 6
            laload
            lstore 4 /* stride */
        start local 4 // long stride
         6: .line 276
            lload 4 /* stride */
            lload 2 /* alignment */
            lrem
            lconst_0
            lcmp
            ifeq 8
         7: .line 277
            new java.lang.UnsupportedOperationException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Alignment requirements for layout "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* layout */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " do not match stride "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            lload 4 /* stride */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // long stride
         8: .line 275
      StackMap locals:
      StackMap stack:
            iinc 6 1
      StackMap locals:
      StackMap stack:
         9: iload 6
            iload 7
            if_icmplt 5
        10: .line 280
            aload 0 /* path */
            getfield jdk.internal.foreign.LayoutPath.enclosing:Ljdk/internal/foreign/LayoutPath;
            astore 4 /* encl */
        start local 4 // jdk.internal.foreign.LayoutPath encl
        11: .line 281
            aload 4 /* encl */
            ifnull 15
        12: .line 282
            aload 4 /* encl */
            getfield jdk.internal.foreign.LayoutPath.layout:Ljdk/incubator/foreign/MemoryLayout;
            invokeinterface jdk.incubator.foreign.MemoryLayout.bitAlignment:()J
            lload 2 /* alignment */
            lcmp
            ifge 14
        13: .line 283
            new java.lang.UnsupportedOperationException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Alignment requirements for layout "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* layout */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " do not match those for enclosing layout "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* encl */
            getfield jdk.internal.foreign.LayoutPath.layout:Ljdk/incubator/foreign/MemoryLayout;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        14: .line 285
      StackMap locals: jdk.internal.foreign.LayoutPath jdk.incubator.foreign.MemoryLayout long jdk.internal.foreign.LayoutPath
      StackMap stack:
            aload 4 /* encl */
            invokestatic jdk.internal.foreign.LayoutPath.checkAlignment:(Ljdk/internal/foreign/LayoutPath;)V
        15: .line 287
      StackMap locals:
      StackMap stack:
            return
        end local 4 // jdk.internal.foreign.LayoutPath encl
        end local 2 // long alignment
        end local 1 // jdk.incubator.foreign.MemoryLayout layout
        end local 0 // jdk.internal.foreign.LayoutPath path
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   16     0       path  Ljdk/internal/foreign/LayoutPath;
            1   16     1     layout  Ljdk/incubator/foreign/MemoryLayout;
            2   16     2  alignment  J
            6    8     4     stride  J
           11   16     4       encl  Ljdk/internal/foreign/LayoutPath;
    MethodParameters:
      Name  Flags
      path  

  private long[] addStride(long);
    descriptor: (J)[J
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // jdk.internal.foreign.LayoutPath this
        start local 1 // long stride
         0: .line 290
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.strides:[J
            arraylength
            iconst_1
            iadd
            newarray 11
            astore 3 /* newStrides */
        start local 3 // long[] newStrides
         1: .line 291
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.strides:[J
            iconst_0
            aload 3 /* newStrides */
            iconst_0
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.strides:[J
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         2: .line 292
            aload 3 /* newStrides */
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.strides:[J
            arraylength
            lload 1 /* stride */
            lastore
         3: .line 293
            aload 3 /* newStrides */
            areturn
        end local 3 // long[] newStrides
        end local 1 // long stride
        end local 0 // jdk.internal.foreign.LayoutPath this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Ljdk/internal/foreign/LayoutPath;
            0    4     1      stride  J
            1    4     3  newStrides  [J
    MethodParameters:
        Name  Flags
      stride  

  private static long addStride(jdk.incubator.foreign.MemorySegment, long, long, long);
    descriptor: (Ljdk/incubator/foreign/MemorySegment;JJJ)J
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=7, args_size=4
        start local 0 // jdk.incubator.foreign.MemorySegment segment
        start local 1 // long stride
        start local 3 // long base
        start local 5 // long index
         0: .line 340
            lload 3 /* base */
         1: .line 341
            lload 1 /* stride */
            lload 5 /* index */
            aload 0 /* segment */
            checkcast jdk.internal.access.foreign.MemorySegmentProxy
            invokestatic jdk.internal.access.foreign.MemorySegmentProxy.multiplyOffsets:(JJLjdk/internal/access/foreign/MemorySegmentProxy;)J
            aload 0 /* segment */
            checkcast jdk.internal.access.foreign.MemorySegmentProxy
         2: .line 340
            invokestatic jdk.internal.access.foreign.MemorySegmentProxy.addOffsets:(JJLjdk/internal/access/foreign/MemorySegmentProxy;)J
            lreturn
        end local 5 // long index
        end local 3 // long base
        end local 1 // long stride
        end local 0 // jdk.incubator.foreign.MemorySegment segment
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0  segment  Ljdk/incubator/foreign/MemorySegment;
            0    3     1   stride  J
            0    3     3     base  J
            0    3     5    index  J
    MethodParameters:
         Name  Flags
      segment  
      stride   
      base     
      index    

  private static int lambda$2(java.lang.Integer);
    descriptor: (Ljava/lang/Integer;)I
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Integer i
         0: .line 182
            aload 0 /* i */
            invokevirtual java.lang.Integer.intValue:()I
            ireturn
        end local 0 // java.lang.Integer i
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     i  Ljava/lang/Integer;

  private jdk.incubator.foreign.MemoryLayout lambda$3(jdk.incubator.foreign.SequenceLayout, jdk.incubator.foreign.MemoryLayout, jdk.incubator.foreign.MemoryLayout);
    descriptor: (Ljdk/incubator/foreign/SequenceLayout;Ljdk/incubator/foreign/MemoryLayout;Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/MemoryLayout;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // jdk.internal.foreign.LayoutPath this
        start local 3 // jdk.incubator.foreign.MemoryLayout l
         0: .line 214
            aload 0 /* this */
            aload 3 /* l */
            aload 1
            invokevirtual jdk.incubator.foreign.SequenceLayout.elementCount:()Ljava/util/OptionalLong;
            invokevirtual java.util.OptionalLong.getAsLong:()J
            aload 2
            invokestatic jdk.incubator.foreign.MemoryLayout.ofSequence:(JLjdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/SequenceLayout;
            invokevirtual jdk.internal.foreign.LayoutPath.dup:(Ljdk/incubator/foreign/MemoryLayout;Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/MemoryLayout;
            areturn
        end local 3 // jdk.incubator.foreign.MemoryLayout l
        end local 0 // jdk.internal.foreign.LayoutPath this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/internal/foreign/LayoutPath;
            0    1     3     l  Ljdk/incubator/foreign/MemoryLayout;

  private jdk.incubator.foreign.MemoryLayout lambda$4(jdk.incubator.foreign.MemoryLayout, jdk.incubator.foreign.MemoryLayout);
    descriptor: (Ljdk/incubator/foreign/MemoryLayout;Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/MemoryLayout;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // jdk.internal.foreign.LayoutPath this
        start local 2 // jdk.incubator.foreign.MemoryLayout l
         0: .line 216
            aload 0 /* this */
            aload 2 /* l */
            aload 1
            invokestatic jdk.incubator.foreign.MemoryLayout.ofSequence:(Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/SequenceLayout;
            invokevirtual jdk.internal.foreign.LayoutPath.dup:(Ljdk/incubator/foreign/MemoryLayout;Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/MemoryLayout;
            areturn
        end local 2 // jdk.incubator.foreign.MemoryLayout l
        end local 0 // jdk.internal.foreign.LayoutPath this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/internal/foreign/LayoutPath;
            0    1     2     l  Ljdk/incubator/foreign/MemoryLayout;

  private jdk.incubator.foreign.MemoryLayout lambda$5(java.util.List, jdk.incubator.foreign.MemoryLayout);
    descriptor: (Ljava/util/List;Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/MemoryLayout;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // jdk.internal.foreign.LayoutPath this
        start local 2 // jdk.incubator.foreign.MemoryLayout l
         0: .line 224
            aload 0 /* this */
            aload 2 /* l */
            aload 1
            iconst_0
            anewarray jdk.incubator.foreign.MemoryLayout
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast jdk.incubator.foreign.MemoryLayout[]
            invokestatic jdk.incubator.foreign.MemoryLayout.ofUnion:([Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/GroupLayout;
            invokevirtual jdk.internal.foreign.LayoutPath.dup:(Ljdk/incubator/foreign/MemoryLayout;Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/MemoryLayout;
            areturn
        end local 2 // jdk.incubator.foreign.MemoryLayout l
        end local 0 // jdk.internal.foreign.LayoutPath this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/internal/foreign/LayoutPath;
            0    1     2     l  Ljdk/incubator/foreign/MemoryLayout;

  private jdk.incubator.foreign.MemoryLayout lambda$6(java.util.List, jdk.incubator.foreign.MemoryLayout);
    descriptor: (Ljava/util/List;Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/MemoryLayout;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // jdk.internal.foreign.LayoutPath this
        start local 2 // jdk.incubator.foreign.MemoryLayout l
         0: .line 226
            aload 0 /* this */
            aload 2 /* l */
            aload 1
            iconst_0
            anewarray jdk.incubator.foreign.MemoryLayout
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast jdk.incubator.foreign.MemoryLayout[]
            invokestatic jdk.incubator.foreign.MemoryLayout.ofStruct:([Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/GroupLayout;
            invokevirtual jdk.internal.foreign.LayoutPath.dup:(Ljdk/incubator/foreign/MemoryLayout;Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/MemoryLayout;
            areturn
        end local 2 // jdk.incubator.foreign.MemoryLayout l
        end local 0 // jdk.internal.foreign.LayoutPath this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/internal/foreign/LayoutPath;
            0    1     2     l  Ljdk/incubator/foreign/MemoryLayout;
}
SourceFile: "LayoutPath.java"
NestMembers:
  jdk.internal.foreign.LayoutPath$PathElementImpl  jdk.internal.foreign.LayoutPath$PathElementImpl$PathKind
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public PathElementImpl = jdk.internal.foreign.LayoutPath$PathElementImpl of jdk.internal.foreign.LayoutPath