public class org.eclipse.jdt.internal.core.nd.field.FieldOneToMany<T extends org.eclipse.jdt.internal.core.nd.INdStruct> extends org.eclipse.jdt.internal.core.nd.field.BaseField implements org.eclipse.jdt.internal.core.nd.field.IDestructableField, org.eclipse.jdt.internal.core.nd.field.IRefCountedField
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.eclipse.jdt.internal.core.nd.field.FieldOneToMany
  super_class: org.eclipse.jdt.internal.core.nd.field.BaseField
{
  public org.eclipse.jdt.internal.core.nd.field.StructDef<T> targetType;
    descriptor: Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
    flags: (0x0001) ACC_PUBLIC
    Signature: Lorg/eclipse/jdt/internal/core/nd/field/StructDef<TT;>;

  public final org.eclipse.jdt.internal.core.nd.field.StructDef<? extends org.eclipse.jdt.internal.core.nd.INdStruct> localType;
    descriptor: Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Signature: Lorg/eclipse/jdt/internal/core/nd/field/StructDef<+Lorg/eclipse/jdt/internal/core/nd/INdStruct;>;

  private final org.eclipse.jdt.internal.core.nd.RawGrowableArray backPointerArray;
    descriptor: Lorg/eclipse/jdt/internal/core/nd/RawGrowableArray;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  org.eclipse.jdt.internal.core.nd.field.FieldManyToOne<?> forwardPointer;
    descriptor: Lorg/eclipse/jdt/internal/core/nd/field/FieldManyToOne;
    flags: (0x0000) 
    Signature: Lorg/eclipse/jdt/internal/core/nd/field/FieldManyToOne<*>;

  private void <init>(org.eclipse.jdt.internal.core.nd.field.StructDef<? extends org.eclipse.jdt.internal.core.nd.INdStruct>, org.eclipse.jdt.internal.core.nd.field.FieldManyToOne<? extends org.eclipse.jdt.internal.core.nd.INdStruct>, );
    descriptor: (Lorg/eclipse/jdt/internal/core/nd/field/StructDef;Lorg/eclipse/jdt/internal/core/nd/field/FieldManyToOne;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.eclipse.jdt.internal.core.nd.field.FieldOneToMany this
        start local 1 // org.eclipse.jdt.internal.core.nd.field.StructDef localType
        start local 2 // org.eclipse.jdt.internal.core.nd.field.FieldManyToOne forwardPointer
        start local 3 // int inlineElements
         0: .line 39
            aload 0 /* this */
            invokespecial org.eclipse.jdt.internal.core.nd.field.BaseField.<init>:()V
         1: .line 41
            aload 0 /* this */
            aload 1 /* localType */
            putfield org.eclipse.jdt.internal.core.nd.field.FieldOneToMany.localType:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
         2: .line 43
            aload 2 /* forwardPointer */
            ifnull 10
         3: .line 44
            aload 2 /* forwardPointer */
            getfield org.eclipse.jdt.internal.core.nd.field.FieldManyToOne.backPointer:Lorg/eclipse/jdt/internal/core/nd/field/FieldOneToMany;
            ifnull 7
            aload 2 /* forwardPointer */
            getfield org.eclipse.jdt.internal.core.nd.field.FieldManyToOne.backPointer:Lorg/eclipse/jdt/internal/core/nd/field/FieldOneToMany;
            aload 0 /* this */
            if_acmpeq 7
         4: .line 45
            new java.lang.IllegalArgumentException
            dup
         5: .line 46
            ldc "Attempted to construct a FieldBackPointer referring to a forward pointer that is already in use by another field"
         6: .line 45
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 49
      StackMap locals: org.eclipse.jdt.internal.core.nd.field.FieldOneToMany org.eclipse.jdt.internal.core.nd.field.StructDef org.eclipse.jdt.internal.core.nd.field.FieldManyToOne int
      StackMap stack:
            aload 2 /* forwardPointer */
            aload 1 /* localType */
            putfield org.eclipse.jdt.internal.core.nd.field.FieldManyToOne.targetType:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
         8: .line 50
            aload 0 /* this */
            aload 2 /* forwardPointer */
            getfield org.eclipse.jdt.internal.core.nd.field.FieldManyToOne.localType:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
            putfield org.eclipse.jdt.internal.core.nd.field.FieldOneToMany.targetType:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
         9: .line 51
            aload 2 /* forwardPointer */
            aload 0 /* this */
            putfield org.eclipse.jdt.internal.core.nd.field.FieldManyToOne.backPointer:Lorg/eclipse/jdt/internal/core/nd/field/FieldOneToMany;
        10: .line 53
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* forwardPointer */
            putfield org.eclipse.jdt.internal.core.nd.field.FieldOneToMany.forwardPointer:Lorg/eclipse/jdt/internal/core/nd/field/FieldManyToOne;
        11: .line 54
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "field "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* localType */
            invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.getNumFields:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ", a "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        12: .line 55
            ldc " in struct "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* localType */
            invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.getStructName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        13: .line 54
            invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldOneToMany.setFieldName:(Ljava/lang/String;)V
        14: .line 56
            aload 0 /* this */
            new org.eclipse.jdt.internal.core.nd.RawGrowableArray
            dup
            iload 3 /* inlineElements */
            invokespecial org.eclipse.jdt.internal.core.nd.RawGrowableArray.<init>:(I)V
            putfield org.eclipse.jdt.internal.core.nd.field.FieldOneToMany.backPointerArray:Lorg/eclipse/jdt/internal/core/nd/RawGrowableArray;
        15: .line 57
            return
        end local 3 // int inlineElements
        end local 2 // org.eclipse.jdt.internal.core.nd.field.FieldManyToOne forwardPointer
        end local 1 // org.eclipse.jdt.internal.core.nd.field.StructDef localType
        end local 0 // org.eclipse.jdt.internal.core.nd.field.FieldOneToMany this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   16     0            this  Lorg/eclipse/jdt/internal/core/nd/field/FieldOneToMany<TT;>;
            0   16     1       localType  Lorg/eclipse/jdt/internal/core/nd/field/StructDef<+Lorg/eclipse/jdt/internal/core/nd/INdStruct;>;
            0   16     2  forwardPointer  Lorg/eclipse/jdt/internal/core/nd/field/FieldManyToOne<+Lorg/eclipse/jdt/internal/core/nd/INdStruct;>;
            0   16     3  inlineElements  I
    Signature: (Lorg/eclipse/jdt/internal/core/nd/field/StructDef<+Lorg/eclipse/jdt/internal/core/nd/INdStruct;>;Lorg/eclipse/jdt/internal/core/nd/field/FieldManyToOne<+Lorg/eclipse/jdt/internal/core/nd/INdStruct;>;I)V
    MethodParameters:
                Name  Flags
      localType       
      forwardPointer  
      inlineElements  

  public static <T extends org.eclipse.jdt.internal.core.nd.INdStruct, B extends org.eclipse.jdt.internal.core.nd.INdStruct> org.eclipse.jdt.internal.core.nd.field.FieldOneToMany<T> create(org.eclipse.jdt.internal.core.nd.field.StructDef<B>, org.eclipse.jdt.internal.core.nd.field.FieldManyToOne<B>, int);
    descriptor: (Lorg/eclipse/jdt/internal/core/nd/field/StructDef;Lorg/eclipse/jdt/internal/core/nd/field/FieldManyToOne;I)Lorg/eclipse/jdt/internal/core/nd/field/FieldOneToMany;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // org.eclipse.jdt.internal.core.nd.field.StructDef builder
        start local 1 // org.eclipse.jdt.internal.core.nd.field.FieldManyToOne forwardPointer
        start local 2 // int inlineElementCount
         0: .line 73
            new org.eclipse.jdt.internal.core.nd.field.FieldOneToMany
            dup
            aload 0 /* builder */
            aload 1 /* forwardPointer */
            iload 2 /* inlineElementCount */
            invokespecial org.eclipse.jdt.internal.core.nd.field.FieldOneToMany.<init>:(Lorg/eclipse/jdt/internal/core/nd/field/StructDef;Lorg/eclipse/jdt/internal/core/nd/field/FieldManyToOne;I)V
            astore 3 /* result */
        start local 3 // org.eclipse.jdt.internal.core.nd.field.FieldOneToMany result
         1: .line 74
            aload 0 /* builder */
            aload 3 /* result */
            invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.add:(Lorg/eclipse/jdt/internal/core/nd/field/IField;)V
         2: .line 75
            aload 0 /* builder */
            aload 3 /* result */
            invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.addDestructableField:(Lorg/eclipse/jdt/internal/core/nd/field/IDestructableField;)V
         3: .line 76
            aload 0 /* builder */
            aload 3 /* result */
            invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.addRefCountedField:(Lorg/eclipse/jdt/internal/core/nd/field/IRefCountedField;)V
         4: .line 77
            aload 3 /* result */
            areturn
        end local 3 // org.eclipse.jdt.internal.core.nd.field.FieldOneToMany result
        end local 2 // int inlineElementCount
        end local 1 // org.eclipse.jdt.internal.core.nd.field.FieldManyToOne forwardPointer
        end local 0 // org.eclipse.jdt.internal.core.nd.field.StructDef builder
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    5     0             builder  Lorg/eclipse/jdt/internal/core/nd/field/StructDef<TB;>;
            0    5     1      forwardPointer  Lorg/eclipse/jdt/internal/core/nd/field/FieldManyToOne<TB;>;
            0    5     2  inlineElementCount  I
            1    5     3              result  Lorg/eclipse/jdt/internal/core/nd/field/FieldOneToMany<TT;>;
    Signature: <T::Lorg/eclipse/jdt/internal/core/nd/INdStruct;B::Lorg/eclipse/jdt/internal/core/nd/INdStruct;>(Lorg/eclipse/jdt/internal/core/nd/field/StructDef<TB;>;Lorg/eclipse/jdt/internal/core/nd/field/FieldManyToOne<TB;>;I)Lorg/eclipse/jdt/internal/core/nd/field/FieldOneToMany<TT;>;
    MethodParameters:
                    Name  Flags
      builder             
      forwardPointer      
      inlineElementCount  

  public static <T extends org.eclipse.jdt.internal.core.nd.INdStruct, B extends org.eclipse.jdt.internal.core.nd.INdStruct> org.eclipse.jdt.internal.core.nd.field.FieldOneToMany<T> create(org.eclipse.jdt.internal.core.nd.field.StructDef<B>, org.eclipse.jdt.internal.core.nd.field.FieldManyToOne<B>);
    descriptor: (Lorg/eclipse/jdt/internal/core/nd/field/StructDef;Lorg/eclipse/jdt/internal/core/nd/field/FieldManyToOne;)Lorg/eclipse/jdt/internal/core/nd/field/FieldOneToMany;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.nd.field.StructDef builder
        start local 1 // org.eclipse.jdt.internal.core.nd.field.FieldManyToOne forwardPointer
         0: .line 82
            aload 0 /* builder */
            aload 1 /* forwardPointer */
            iconst_0
            invokestatic org.eclipse.jdt.internal.core.nd.field.FieldOneToMany.create:(Lorg/eclipse/jdt/internal/core/nd/field/StructDef;Lorg/eclipse/jdt/internal/core/nd/field/FieldManyToOne;I)Lorg/eclipse/jdt/internal/core/nd/field/FieldOneToMany;
            areturn
        end local 1 // org.eclipse.jdt.internal.core.nd.field.FieldManyToOne forwardPointer
        end local 0 // org.eclipse.jdt.internal.core.nd.field.StructDef builder
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0         builder  Lorg/eclipse/jdt/internal/core/nd/field/StructDef<TB;>;
            0    1     1  forwardPointer  Lorg/eclipse/jdt/internal/core/nd/field/FieldManyToOne<TB;>;
    Signature: <T::Lorg/eclipse/jdt/internal/core/nd/INdStruct;B::Lorg/eclipse/jdt/internal/core/nd/INdStruct;>(Lorg/eclipse/jdt/internal/core/nd/field/StructDef<TB;>;Lorg/eclipse/jdt/internal/core/nd/field/FieldManyToOne<TB;>;)Lorg/eclipse/jdt/internal/core/nd/field/FieldOneToMany<TT;>;
    MethodParameters:
                Name  Flags
      builder         
      forwardPointer  

  public void accept(org.eclipse.jdt.internal.core.nd.Nd, long, org.eclipse.jdt.internal.core.nd.field.FieldOneToMany$Visitor<T>);
    descriptor: (Lorg/eclipse/jdt/internal/core/nd/Nd;JLorg/eclipse/jdt/internal/core/nd/field/FieldOneToMany$Visitor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=7, args_size=4
        start local 0 // org.eclipse.jdt.internal.core.nd.field.FieldOneToMany this
        start local 1 // org.eclipse.jdt.internal.core.nd.Nd nd
        start local 2 // long address
        start local 4 // org.eclipse.jdt.internal.core.nd.field.FieldOneToMany$Visitor visitor
         0: .line 86
            aload 0 /* this */
            aload 1 /* nd */
            lload 2 /* address */
            invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldOneToMany.size:(Lorg/eclipse/jdt/internal/core/nd/Nd;J)I
            istore 5 /* size */
        start local 5 // int size
         1: .line 88
            iconst_0
            istore 6 /* idx */
        start local 6 // int idx
         2: goto 5
         3: .line 89
      StackMap locals: int int
      StackMap stack:
            aload 4 /* visitor */
            iload 6 /* idx */
            aload 0 /* this */
            aload 1 /* nd */
            lload 2 /* address */
            iload 6 /* idx */
            invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldOneToMany.get:(Lorg/eclipse/jdt/internal/core/nd/Nd;JI)Lorg/eclipse/jdt/internal/core/nd/INdStruct;
            invokeinterface org.eclipse.jdt.internal.core.nd.field.FieldOneToMany$Visitor.visit:(ILjava/lang/Object;)V
         4: .line 88
            iinc 6 /* idx */ 1
      StackMap locals:
      StackMap stack:
         5: iload 6 /* idx */
            iload 5 /* size */
            if_icmplt 3
        end local 6 // int idx
         6: .line 91
            return
        end local 5 // int size
        end local 4 // org.eclipse.jdt.internal.core.nd.field.FieldOneToMany$Visitor visitor
        end local 2 // long address
        end local 1 // org.eclipse.jdt.internal.core.nd.Nd nd
        end local 0 // org.eclipse.jdt.internal.core.nd.field.FieldOneToMany this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Lorg/eclipse/jdt/internal/core/nd/field/FieldOneToMany<TT;>;
            0    7     1       nd  Lorg/eclipse/jdt/internal/core/nd/Nd;
            0    7     2  address  J
            0    7     4  visitor  Lorg/eclipse/jdt/internal/core/nd/field/FieldOneToMany$Visitor<TT;>;
            1    7     5     size  I
            2    6     6      idx  I
    Signature: (Lorg/eclipse/jdt/internal/core/nd/Nd;JLorg/eclipse/jdt/internal/core/nd/field/FieldOneToMany$Visitor<TT;>;)V
    MethodParameters:
         Name  Flags
      nd       
      address  
      visitor  

  public java.util.List<T> asList(org.eclipse.jdt.internal.core.nd.Nd, long);
    descriptor: (Lorg/eclipse/jdt/internal/core/nd/Nd;J)Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=5, args_size=3
        start local 0 // org.eclipse.jdt.internal.core.nd.field.FieldOneToMany this
        start local 1 // org.eclipse.jdt.internal.core.nd.Nd nd
        start local 2 // long address
         0: .line 94
            new java.util.ArrayList
            dup
            aload 0 /* this */
            aload 1 /* nd */
            lload 2 /* address */
            invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldOneToMany.size:(Lorg/eclipse/jdt/internal/core/nd/Nd;J)I
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 4 /* result */
        start local 4 // java.util.List result
         1: .line 96
            aload 0 /* this */
            aload 1 /* nd */
            lload 2 /* address */
            new org.eclipse.jdt.internal.core.nd.field.FieldOneToMany$1
            dup
            aload 0 /* this */
            aload 4 /* result */
            invokespecial org.eclipse.jdt.internal.core.nd.field.FieldOneToMany$1.<init>:(Lorg/eclipse/jdt/internal/core/nd/field/FieldOneToMany;Ljava/util/List;)V
            invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldOneToMany.accept:(Lorg/eclipse/jdt/internal/core/nd/Nd;JLorg/eclipse/jdt/internal/core/nd/field/FieldOneToMany$Visitor;)V
         2: .line 103
            aload 4 /* result */
            areturn
        end local 4 // java.util.List result
        end local 2 // long address
        end local 1 // org.eclipse.jdt.internal.core.nd.Nd nd
        end local 0 // org.eclipse.jdt.internal.core.nd.field.FieldOneToMany this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lorg/eclipse/jdt/internal/core/nd/field/FieldOneToMany<TT;>;
            0    3     1       nd  Lorg/eclipse/jdt/internal/core/nd/Nd;
            0    3     2  address  J
            1    3     4   result  Ljava/util/List<TT;>;
    Signature: (Lorg/eclipse/jdt/internal/core/nd/Nd;J)Ljava/util/List<TT;>;
    MethodParameters:
         Name  Flags
      nd       
      address  

  public boolean isEmpty(org.eclipse.jdt.internal.core.nd.Nd, long);
    descriptor: (Lorg/eclipse/jdt/internal/core/nd/Nd;J)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // org.eclipse.jdt.internal.core.nd.field.FieldOneToMany this
        start local 1 // org.eclipse.jdt.internal.core.nd.Nd nd
        start local 2 // long address
         0: .line 107
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.field.FieldOneToMany.backPointerArray:Lorg/eclipse/jdt/internal/core/nd/RawGrowableArray;
            aload 1 /* nd */
            lload 2 /* address */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.field.FieldOneToMany.offset:I
            i2l
            ladd
            invokevirtual org.eclipse.jdt.internal.core.nd.RawGrowableArray.isEmpty:(Lorg/eclipse/jdt/internal/core/nd/Nd;J)Z
            ireturn
        end local 2 // long address
        end local 1 // org.eclipse.jdt.internal.core.nd.Nd nd
        end local 0 // org.eclipse.jdt.internal.core.nd.field.FieldOneToMany this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/eclipse/jdt/internal/core/nd/field/FieldOneToMany<TT;>;
            0    1     1       nd  Lorg/eclipse/jdt/internal/core/nd/Nd;
            0    1     2  address  J
    MethodParameters:
         Name  Flags
      nd       
      address  

  public int size(org.eclipse.jdt.internal.core.nd.Nd, long);
    descriptor: (Lorg/eclipse/jdt/internal/core/nd/Nd;J)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // org.eclipse.jdt.internal.core.nd.field.FieldOneToMany this
        start local 1 // org.eclipse.jdt.internal.core.nd.Nd nd
        start local 2 // long address
         0: .line 111
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.field.FieldOneToMany.backPointerArray:Lorg/eclipse/jdt/internal/core/nd/RawGrowableArray;
            aload 1 /* nd */
            lload 2 /* address */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.field.FieldOneToMany.offset:I
            i2l
            ladd
            invokevirtual org.eclipse.jdt.internal.core.nd.RawGrowableArray.size:(Lorg/eclipse/jdt/internal/core/nd/Nd;J)I
            ireturn
        end local 2 // long address
        end local 1 // org.eclipse.jdt.internal.core.nd.Nd nd
        end local 0 // org.eclipse.jdt.internal.core.nd.field.FieldOneToMany this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/eclipse/jdt/internal/core/nd/field/FieldOneToMany<TT;>;
            0    1     1       nd  Lorg/eclipse/jdt/internal/core/nd/Nd;
            0    1     2  address  J
    MethodParameters:
         Name  Flags
      nd       
      address  

  public T get(org.eclipse.jdt.internal.core.nd.Nd, long, );
    descriptor: (Lorg/eclipse/jdt/internal/core/nd/Nd;JI)Lorg/eclipse/jdt/internal/core/nd/INdStruct;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=7, args_size=4
        start local 0 // org.eclipse.jdt.internal.core.nd.field.FieldOneToMany this
        start local 1 // org.eclipse.jdt.internal.core.nd.Nd nd
        start local 2 // long address
        start local 4 // int index
         0: .line 115
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.field.FieldOneToMany.backPointerArray:Lorg/eclipse/jdt/internal/core/nd/RawGrowableArray;
            aload 1 /* nd */
            lload 2 /* address */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.field.FieldOneToMany.offset:I
            i2l
            ladd
            iload 4 /* index */
            invokevirtual org.eclipse.jdt.internal.core.nd.RawGrowableArray.get:(Lorg/eclipse/jdt/internal/core/nd/Nd;JI)J
            lstore 5 /* nextPointer */
        start local 5 // long nextPointer
         1: .line 117
            aload 1 /* nd */
            lload 5 /* nextPointer */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.field.FieldOneToMany.targetType:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
            invokestatic org.eclipse.jdt.internal.core.nd.NdNode.load:(Lorg/eclipse/jdt/internal/core/nd/Nd;JLorg/eclipse/jdt/internal/core/nd/field/StructDef;)Lorg/eclipse/jdt/internal/core/nd/INdStruct;
            areturn
        end local 5 // long nextPointer
        end local 4 // int index
        end local 2 // long address
        end local 1 // org.eclipse.jdt.internal.core.nd.Nd nd
        end local 0 // org.eclipse.jdt.internal.core.nd.field.FieldOneToMany this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lorg/eclipse/jdt/internal/core/nd/field/FieldOneToMany<TT;>;
            0    2     1           nd  Lorg/eclipse/jdt/internal/core/nd/Nd;
            0    2     2      address  J
            0    2     4        index  I
            1    2     5  nextPointer  J
    Signature: (Lorg/eclipse/jdt/internal/core/nd/Nd;JI)TT;
    MethodParameters:
         Name  Flags
      nd       
      address  
      index    

  public long getAddressOf(org.eclipse.jdt.internal.core.nd.Nd, long, int);
    descriptor: (Lorg/eclipse/jdt/internal/core/nd/Nd;JI)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=4
        start local 0 // org.eclipse.jdt.internal.core.nd.field.FieldOneToMany this
        start local 1 // org.eclipse.jdt.internal.core.nd.Nd nd
        start local 2 // long address
        start local 4 // int index
         0: .line 121
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.field.FieldOneToMany.backPointerArray:Lorg/eclipse/jdt/internal/core/nd/RawGrowableArray;
            aload 1 /* nd */
            lload 2 /* address */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.field.FieldOneToMany.offset:I
            i2l
            ladd
            iload 4 /* index */
            invokevirtual org.eclipse.jdt.internal.core.nd.RawGrowableArray.get:(Lorg/eclipse/jdt/internal/core/nd/Nd;JI)J
            lreturn
        end local 4 // int index
        end local 2 // long address
        end local 1 // org.eclipse.jdt.internal.core.nd.Nd nd
        end local 0 // org.eclipse.jdt.internal.core.nd.field.FieldOneToMany this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/eclipse/jdt/internal/core/nd/field/FieldOneToMany<TT;>;
            0    1     1       nd  Lorg/eclipse/jdt/internal/core/nd/Nd;
            0    1     2  address  J
            0    1     4    index  I
    MethodParameters:
         Name  Flags
      nd       
      address  
      index    

  void remove(org.eclipse.jdt.internal.core.nd.Nd, long, int);
    descriptor: (Lorg/eclipse/jdt/internal/core/nd/Nd;JI)V
    flags: (0x0000) 
    Code:
      stack=6, locals=7, args_size=4
        start local 0 // org.eclipse.jdt.internal.core.nd.field.FieldOneToMany this
        start local 1 // org.eclipse.jdt.internal.core.nd.Nd nd
        start local 2 // long address
        start local 4 // int index
         0: .line 133
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.field.FieldOneToMany.backPointerArray:Lorg/eclipse/jdt/internal/core/nd/RawGrowableArray;
            aload 1 /* nd */
            lload 2 /* address */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.field.FieldOneToMany.offset:I
            i2l
            ladd
            iload 4 /* index */
            invokevirtual org.eclipse.jdt.internal.core.nd.RawGrowableArray.remove:(Lorg/eclipse/jdt/internal/core/nd/Nd;JI)J
            lstore 5 /* swappedElement */
        start local 5 // long swappedElement
         1: .line 135
            lload 5 /* swappedElement */
            lconst_0
            lcmp
            ifeq 3
         2: .line 136
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.field.FieldOneToMany.forwardPointer:Lorg/eclipse/jdt/internal/core/nd/field/FieldManyToOne;
            aload 1 /* nd */
            lload 5 /* swappedElement */
            iload 4 /* index */
            invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldManyToOne.adjustIndex:(Lorg/eclipse/jdt/internal/core/nd/Nd;JI)V
         3: .line 138
      StackMap locals: long
      StackMap stack:
            return
        end local 5 // long swappedElement
        end local 4 // int index
        end local 2 // long address
        end local 1 // org.eclipse.jdt.internal.core.nd.Nd nd
        end local 0 // org.eclipse.jdt.internal.core.nd.field.FieldOneToMany this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0            this  Lorg/eclipse/jdt/internal/core/nd/field/FieldOneToMany<TT;>;
            0    4     1              nd  Lorg/eclipse/jdt/internal/core/nd/Nd;
            0    4     2         address  J
            0    4     4           index  I
            1    4     5  swappedElement  J
    MethodParameters:
         Name  Flags
      nd       
      address  
      index    

  int add(org.eclipse.jdt.internal.core.nd.Nd, long, long);
    descriptor: (Lorg/eclipse/jdt/internal/core/nd/Nd;JJ)I
    flags: (0x0000) 
    Code:
      stack=6, locals=6, args_size=4
        start local 0 // org.eclipse.jdt.internal.core.nd.field.FieldOneToMany this
        start local 1 // org.eclipse.jdt.internal.core.nd.Nd nd
        start local 2 // long address
        start local 4 // long value
         0: .line 145
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.field.FieldOneToMany.backPointerArray:Lorg/eclipse/jdt/internal/core/nd/RawGrowableArray;
            aload 1 /* nd */
            lload 2 /* address */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.field.FieldOneToMany.offset:I
            i2l
            ladd
            lload 4 /* value */
            invokevirtual org.eclipse.jdt.internal.core.nd.RawGrowableArray.add:(Lorg/eclipse/jdt/internal/core/nd/Nd;JJ)I
            ireturn
        end local 4 // long value
        end local 2 // long address
        end local 1 // org.eclipse.jdt.internal.core.nd.Nd nd
        end local 0 // org.eclipse.jdt.internal.core.nd.field.FieldOneToMany this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/eclipse/jdt/internal/core/nd/field/FieldOneToMany<TT;>;
            0    1     1       nd  Lorg/eclipse/jdt/internal/core/nd/Nd;
            0    1     2  address  J
            0    1     4    value  J
    MethodParameters:
         Name  Flags
      nd       
      address  
      value    

  public int getRecordSize();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.core.nd.field.FieldOneToMany this
         0: .line 153
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.field.FieldOneToMany.backPointerArray:Lorg/eclipse/jdt/internal/core/nd/RawGrowableArray;
            invokevirtual org.eclipse.jdt.internal.core.nd.RawGrowableArray.getRecordSize:()I
            ireturn
        end local 0 // org.eclipse.jdt.internal.core.nd.field.FieldOneToMany this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jdt/internal/core/nd/field/FieldOneToMany<TT;>;

  public void ensureCapacity(org.eclipse.jdt.internal.core.nd.Nd, long, int);
    descriptor: (Lorg/eclipse/jdt/internal/core/nd/Nd;JI)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=4
        start local 0 // org.eclipse.jdt.internal.core.nd.field.FieldOneToMany this
        start local 1 // org.eclipse.jdt.internal.core.nd.Nd nd
        start local 2 // long address
        start local 4 // int capacity
         0: .line 157
            lload 2 /* address */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.field.FieldOneToMany.offset:I
            i2l
            ladd
            lstore 5 /* arrayAddress */
        start local 5 // long arrayAddress
         1: .line 158
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.field.FieldOneToMany.backPointerArray:Lorg/eclipse/jdt/internal/core/nd/RawGrowableArray;
            aload 1 /* nd */
            lload 5 /* arrayAddress */
            iload 4 /* capacity */
            invokevirtual org.eclipse.jdt.internal.core.nd.RawGrowableArray.ensureCapacity:(Lorg/eclipse/jdt/internal/core/nd/Nd;JI)V
         2: .line 159
            return
        end local 5 // long arrayAddress
        end local 4 // int capacity
        end local 2 // long address
        end local 1 // org.eclipse.jdt.internal.core.nd.Nd nd
        end local 0 // org.eclipse.jdt.internal.core.nd.field.FieldOneToMany this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0          this  Lorg/eclipse/jdt/internal/core/nd/field/FieldOneToMany<TT;>;
            0    3     1            nd  Lorg/eclipse/jdt/internal/core/nd/Nd;
            0    3     2       address  J
            0    3     4      capacity  I
            1    3     5  arrayAddress  J
    MethodParameters:
          Name  Flags
      nd        
      address   
      capacity  

  public void destruct(org.eclipse.jdt.internal.core.nd.Nd, long);
    descriptor: (Lorg/eclipse/jdt/internal/core/nd/Nd;J)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=11, args_size=3
        start local 0 // org.eclipse.jdt.internal.core.nd.field.FieldOneToMany this
        start local 1 // org.eclipse.jdt.internal.core.nd.Nd nd
        start local 2 // long address
         0: .line 163
            lload 2 /* address */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.field.FieldOneToMany.offset:I
            i2l
            ladd
            lstore 4 /* arrayAddress */
        start local 4 // long arrayAddress
         1: .line 164
            aload 0 /* this */
            aload 1 /* nd */
            lload 2 /* address */
            invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldOneToMany.size:(Lorg/eclipse/jdt/internal/core/nd/Nd;J)I
            istore 6 /* size */
        start local 6 // int size
         2: .line 166
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.field.FieldOneToMany.forwardPointer:Lorg/eclipse/jdt/internal/core/nd/field/FieldManyToOne;
            getfield org.eclipse.jdt.internal.core.nd.field.FieldManyToOne.pointsToOwner:Z
            istore 7 /* isOwner */
        start local 7 // boolean isOwner
         3: .line 167
            iconst_0
            istore 8 /* idx */
        start local 8 // int idx
         4: goto 10
         5: .line 168
      StackMap locals: org.eclipse.jdt.internal.core.nd.field.FieldOneToMany org.eclipse.jdt.internal.core.nd.Nd long long int int int
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.field.FieldOneToMany.backPointerArray:Lorg/eclipse/jdt/internal/core/nd/RawGrowableArray;
            aload 1 /* nd */
            lload 4 /* arrayAddress */
            iload 8 /* idx */
            invokevirtual org.eclipse.jdt.internal.core.nd.RawGrowableArray.get:(Lorg/eclipse/jdt/internal/core/nd/Nd;JI)J
            lstore 9 /* target */
        start local 9 // long target
         6: .line 170
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.field.FieldOneToMany.forwardPointer:Lorg/eclipse/jdt/internal/core/nd/field/FieldManyToOne;
            aload 1 /* nd */
            lload 9 /* target */
            invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldManyToOne.clearedByBackPointer:(Lorg/eclipse/jdt/internal/core/nd/Nd;J)V
         7: .line 172
            iload 7 /* isOwner */
            ifeq 9
         8: .line 173
            aload 1 /* nd */
            lload 9 /* target */
            invokevirtual org.eclipse.jdt.internal.core.nd.Nd.scheduleDeletion:(J)V
        end local 9 // long target
         9: .line 167
      StackMap locals:
      StackMap stack:
            iinc 8 /* idx */ 1
      StackMap locals:
      StackMap stack:
        10: iload 8 /* idx */
            iload 6 /* size */
            if_icmplt 5
        end local 8 // int idx
        11: .line 177
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.field.FieldOneToMany.backPointerArray:Lorg/eclipse/jdt/internal/core/nd/RawGrowableArray;
            aload 1 /* nd */
            lload 4 /* arrayAddress */
            invokevirtual org.eclipse.jdt.internal.core.nd.RawGrowableArray.destruct:(Lorg/eclipse/jdt/internal/core/nd/Nd;J)V
        12: .line 178
            return
        end local 7 // boolean isOwner
        end local 6 // int size
        end local 4 // long arrayAddress
        end local 2 // long address
        end local 1 // org.eclipse.jdt.internal.core.nd.Nd nd
        end local 0 // org.eclipse.jdt.internal.core.nd.field.FieldOneToMany this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   13     0          this  Lorg/eclipse/jdt/internal/core/nd/field/FieldOneToMany<TT;>;
            0   13     1            nd  Lorg/eclipse/jdt/internal/core/nd/Nd;
            0   13     2       address  J
            1   13     4  arrayAddress  J
            2   13     6          size  I
            3   13     7       isOwner  Z
            4   11     8           idx  I
            6    9     9        target  J
    MethodParameters:
         Name  Flags
      nd       
      address  

  public int getCapacity(org.eclipse.jdt.internal.core.nd.Nd, long);
    descriptor: (Lorg/eclipse/jdt/internal/core/nd/Nd;J)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // org.eclipse.jdt.internal.core.nd.field.FieldOneToMany this
        start local 1 // org.eclipse.jdt.internal.core.nd.Nd nd
        start local 2 // long address
         0: .line 181
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.field.FieldOneToMany.backPointerArray:Lorg/eclipse/jdt/internal/core/nd/RawGrowableArray;
            aload 1 /* nd */
            lload 2 /* address */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.field.FieldOneToMany.offset:I
            i2l
            ladd
            invokevirtual org.eclipse.jdt.internal.core.nd.RawGrowableArray.getCapacity:(Lorg/eclipse/jdt/internal/core/nd/Nd;J)I
            ireturn
        end local 2 // long address
        end local 1 // org.eclipse.jdt.internal.core.nd.Nd nd
        end local 0 // org.eclipse.jdt.internal.core.nd.field.FieldOneToMany this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/eclipse/jdt/internal/core/nd/field/FieldOneToMany<TT;>;
            0    1     1       nd  Lorg/eclipse/jdt/internal/core/nd/Nd;
            0    1     2  address  J
    MethodParameters:
         Name  Flags
      nd       
      address  

  public boolean hasReferences(org.eclipse.jdt.internal.core.nd.Nd, long);
    descriptor: (Lorg/eclipse/jdt/internal/core/nd/Nd;J)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.eclipse.jdt.internal.core.nd.field.FieldOneToMany this
        start local 1 // org.eclipse.jdt.internal.core.nd.Nd nd
        start local 2 // long address
         0: .line 187
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.field.FieldOneToMany.forwardPointer:Lorg/eclipse/jdt/internal/core/nd/field/FieldManyToOne;
            getfield org.eclipse.jdt.internal.core.nd.field.FieldManyToOne.pointsToOwner:Z
            ifeq 2
         1: .line 188
            iconst_0
            ireturn
         2: .line 190
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* nd */
            lload 2 /* address */
            invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldOneToMany.isEmpty:(Lorg/eclipse/jdt/internal/core/nd/Nd;J)Z
            ifeq 3
            iconst_0
            goto 4
      StackMap locals:
      StackMap stack:
         3: iconst_1
      StackMap locals:
      StackMap stack: int
         4: ireturn
        end local 2 // long address
        end local 1 // org.eclipse.jdt.internal.core.nd.Nd nd
        end local 0 // org.eclipse.jdt.internal.core.nd.field.FieldOneToMany this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lorg/eclipse/jdt/internal/core/nd/field/FieldOneToMany<TT;>;
            0    5     1       nd  Lorg/eclipse/jdt/internal/core/nd/Nd;
            0    5     2  address  J
    MethodParameters:
         Name  Flags
      nd       
      address  
}
Signature: <T::Lorg/eclipse/jdt/internal/core/nd/INdStruct;>Lorg/eclipse/jdt/internal/core/nd/field/BaseField;Lorg/eclipse/jdt/internal/core/nd/field/IDestructableField;Lorg/eclipse/jdt/internal/core/nd/field/IRefCountedField;
SourceFile: "FieldOneToMany.java"
NestMembers:
  org.eclipse.jdt.internal.core.nd.field.FieldOneToMany$1  org.eclipse.jdt.internal.core.nd.field.FieldOneToMany$Visitor
InnerClasses:
  org.eclipse.jdt.internal.core.nd.field.FieldOneToMany$1
  public abstract Visitor = org.eclipse.jdt.internal.core.nd.field.FieldOneToMany$Visitor of org.eclipse.jdt.internal.core.nd.field.FieldOneToMany