public class org.aspectj.weaver.World$TypeMap
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.aspectj.weaver.World$TypeMap
  super_class: java.lang.Object
{
  public static final int DONT_USE_REFS;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  public static final int USE_WEAK_REFS;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  public static final int USE_SOFT_REFS;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  public java.util.List<java.lang.String> addedSinceLastDemote;
    descriptor: Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Signature: Ljava/util/List<Ljava/lang/String;>;

  public java.util.List<java.lang.String> writtenClasses;
    descriptor: Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Signature: Ljava/util/List<Ljava/lang/String;>;

  private static boolean debug;
    descriptor: Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  public static boolean useExpendableMap;
    descriptor: Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC

  private boolean demotionSystemActive;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean debugDemotion;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  public int policy;
    descriptor: I
    flags: (0x0001) ACC_PUBLIC

  final java.util.Map<java.lang.String, org.aspectj.weaver.ResolvedType> tMap;
    descriptor: Ljava/util/Map;
    flags: (0x0010) ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;Lorg/aspectj/weaver/ResolvedType;>;

  final java.util.Map<java.lang.String, java.lang.ref.Reference<org.aspectj.weaver.ResolvedType>> expendableMap;
    descriptor: Ljava/util/Map;
    flags: (0x0010) ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/ref/Reference<Lorg/aspectj/weaver/ResolvedType;>;>;

  private final org.aspectj.weaver.World w;
    descriptor: Lorg/aspectj/weaver/World;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private boolean memoryProfiling;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private int maxExpendableMapSize;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int collectedTypes;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private final java.lang.ref.ReferenceQueue<org.aspectj.weaver.ResolvedType> rq;
    descriptor: Ljava/lang/ref/ReferenceQueue;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/lang/ref/ReferenceQueue<Lorg/aspectj/weaver/ResolvedType;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 1040
            iconst_0
            putstatic org.aspectj.weaver.World$TypeMap.debug:Z
         1: .line 1041
            iconst_1
            putstatic org.aspectj.weaver.World$TypeMap.useExpendableMap:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(org.aspectj.weaver.World);
    descriptor: (Lorg/aspectj/weaver/World;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.aspectj.weaver.World$TypeMap this
        start local 1 // org.aspectj.weaver.World w
         0: .line 1062
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 1043
            aload 0 /* this */
            iconst_0
            putfield org.aspectj.weaver.World$TypeMap.debugDemotion:Z
         2: .line 1045
            aload 0 /* this */
            iconst_1
            putfield org.aspectj.weaver.World$TypeMap.policy:I
         3: .line 1048
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.aspectj.weaver.World$TypeMap.tMap:Ljava/util/Map;
         4: .line 1051
            aload 0 /* this */
         5: .line 1052
            new java.util.WeakHashMap
            dup
            invokespecial java.util.WeakHashMap.<init>:()V
            invokestatic java.util.Collections.synchronizedMap:(Ljava/util/Map;)Ljava/util/Map;
            putfield org.aspectj.weaver.World$TypeMap.expendableMap:Ljava/util/Map;
         6: .line 1057
            aload 0 /* this */
            iconst_0
            putfield org.aspectj.weaver.World$TypeMap.memoryProfiling:Z
         7: .line 1058
            aload 0 /* this */
            iconst_m1
            putfield org.aspectj.weaver.World$TypeMap.maxExpendableMapSize:I
         8: .line 1059
            aload 0 /* this */
            iconst_0
            putfield org.aspectj.weaver.World$TypeMap.collectedTypes:I
         9: .line 1060
            aload 0 /* this */
            new java.lang.ref.ReferenceQueue
            dup
            invokespecial java.lang.ref.ReferenceQueue.<init>:()V
            putfield org.aspectj.weaver.World$TypeMap.rq:Ljava/lang/ref/ReferenceQueue;
        10: .line 1064
            aload 0 /* this */
            aload 1 /* w */
            invokevirtual org.aspectj.weaver.World.isDemotionActive:()Z
            ifeq 12
            aload 1 /* w */
            invokevirtual org.aspectj.weaver.World.isLoadtimeWeaving:()Z
            ifne 11
            aload 1 /* w */
            invokevirtual org.aspectj.weaver.World.couldIncrementalCompileFollow:()Z
            ifeq 12
      StackMap locals: org.aspectj.weaver.World$TypeMap org.aspectj.weaver.World
      StackMap stack: org.aspectj.weaver.World$TypeMap
        11: iconst_1
            goto 13
      StackMap locals:
      StackMap stack: org.aspectj.weaver.World$TypeMap
        12: iconst_0
      StackMap locals: org.aspectj.weaver.World$TypeMap org.aspectj.weaver.World
      StackMap stack: org.aspectj.weaver.World$TypeMap int
        13: putfield org.aspectj.weaver.World$TypeMap.demotionSystemActive:Z
        14: .line 1065
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield org.aspectj.weaver.World$TypeMap.addedSinceLastDemote:Ljava/util/List;
        15: .line 1066
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield org.aspectj.weaver.World$TypeMap.writtenClasses:Ljava/util/List;
        16: .line 1067
            aload 0 /* this */
            aload 1 /* w */
            putfield org.aspectj.weaver.World$TypeMap.w:Lorg/aspectj/weaver/World;
        17: .line 1068
            aload 0 /* this */
            iconst_0
            putfield org.aspectj.weaver.World$TypeMap.memoryProfiling:Z
        18: .line 1069
            return
        end local 1 // org.aspectj.weaver.World w
        end local 0 // org.aspectj.weaver.World$TypeMap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   19     0  this  Lorg/aspectj/weaver/World$TypeMap;
            0   19     1     w  Lorg/aspectj/weaver/World;
    MethodParameters:
      Name  Flags
      w     

  public java.util.Map<java.lang.String, java.lang.ref.Reference<org.aspectj.weaver.ResolvedType>> getExpendableMap();
    descriptor: ()Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.aspectj.weaver.World$TypeMap this
         0: .line 1073
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TypeMap.expendableMap:Ljava/util/Map;
            areturn
        end local 0 // org.aspectj.weaver.World$TypeMap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/aspectj/weaver/World$TypeMap;
    Signature: ()Ljava/util/Map<Ljava/lang/String;Ljava/lang/ref/Reference<Lorg/aspectj/weaver/ResolvedType;>;>;

  public java.util.Map<java.lang.String, org.aspectj.weaver.ResolvedType> getMainMap();
    descriptor: ()Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.aspectj.weaver.World$TypeMap this
         0: .line 1078
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TypeMap.tMap:Ljava/util/Map;
            areturn
        end local 0 // org.aspectj.weaver.World$TypeMap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/aspectj/weaver/World$TypeMap;
    Signature: ()Ljava/util/Map<Ljava/lang/String;Lorg/aspectj/weaver/ResolvedType;>;

  public int demote();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.aspectj.weaver.World$TypeMap this
         0: .line 1082
            aload 0 /* this */
            iconst_0
            invokevirtual org.aspectj.weaver.World$TypeMap.demote:(Z)I
            ireturn
        end local 0 // org.aspectj.weaver.World$TypeMap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/aspectj/weaver/World$TypeMap;

  public int demote(boolean);
    descriptor: (Z)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=12, args_size=2
        start local 0 // org.aspectj.weaver.World$TypeMap this
        start local 1 // boolean atEndOfCompile
         0: .line 1094
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TypeMap.demotionSystemActive:Z
            ifne 2
         1: .line 1095
            iconst_0
            ireturn
         2: .line 1097
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TypeMap.debugDemotion:Z
            ifeq 4
         3: .line 1098
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "Demotion running "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TypeMap.addedSinceLastDemote:Ljava/util/List;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         4: .line 1100
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TypeMap.w:Lorg/aspectj/weaver/World;
            invokevirtual org.aspectj.weaver.World.isLoadtimeWeaving:()Z
            istore 2 /* isLtw */
        start local 2 // boolean isLtw
         5: .line 1101
            iconst_0
            istore 3 /* demotionCounter */
        start local 3 // int demotionCounter
         6: .line 1102
            iload 2 /* isLtw */
            ifeq 19
         7: .line 1104
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TypeMap.addedSinceLastDemote:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 16
      StackMap locals: org.aspectj.weaver.World$TypeMap int int int top java.util.Iterator
      StackMap stack:
         8: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 4 /* key */
        start local 4 // java.lang.String key
         9: .line 1105
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TypeMap.tMap:Ljava/util/Map;
            aload 4 /* key */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.aspectj.weaver.ResolvedType
            astore 6 /* type */
        start local 6 // org.aspectj.weaver.ResolvedType type
        10: .line 1106
            aload 6 /* type */
            ifnull 16
            aload 6 /* type */
            invokevirtual org.aspectj.weaver.ResolvedType.isAspect:()Z
            ifne 16
            aload 6 /* type */
            getstatic org.aspectj.weaver.UnresolvedType.OBJECT:Lorg/aspectj/weaver/UnresolvedType;
            invokevirtual org.aspectj.weaver.ResolvedType.equals:(Ljava/lang/Object;)Z
            ifne 16
            aload 6 /* type */
            invokevirtual org.aspectj.weaver.ResolvedType.isPrimitiveType:()Z
            ifne 16
        11: .line 1107
            aload 6 /* type */
            invokevirtual org.aspectj.weaver.ResolvedType.getInterTypeMungers:()Ljava/util/List;
            astore 7 /* typeMungers */
        start local 7 // java.util.List typeMungers
        12: .line 1108
            aload 7 /* typeMungers */
            ifnull 13
            aload 7 /* typeMungers */
            invokeinterface java.util.List.size:()I
            ifne 16
        13: .line 1109
      StackMap locals: org.aspectj.weaver.World$TypeMap int int int java.lang.String java.util.Iterator org.aspectj.weaver.ResolvedType java.util.List
      StackMap stack:
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TypeMap.tMap:Ljava/util/Map;
            aload 4 /* key */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        14: .line 1110
            aload 0 /* this */
            aload 4 /* key */
            aload 6 /* type */
            invokevirtual org.aspectj.weaver.World$TypeMap.insertInExpendableMap:(Ljava/lang/String;Lorg/aspectj/weaver/ResolvedType;)V
        15: .line 1111
            iinc 3 /* demotionCounter */ 1
        end local 7 // java.util.List typeMungers
        end local 6 // org.aspectj.weaver.ResolvedType type
        end local 4 // java.lang.String key
        16: .line 1104
      StackMap locals: org.aspectj.weaver.World$TypeMap int int int top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 8
        17: .line 1115
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TypeMap.addedSinceLastDemote:Ljava/util/List;
            invokeinterface java.util.List.clear:()V
        18: .line 1116
            goto 53
        19: .line 1118
      StackMap locals: org.aspectj.weaver.World$TypeMap int int int
      StackMap stack:
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 4 /* forRemoval */
        start local 4 // java.util.List forRemoval
        20: .line 1119
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TypeMap.addedSinceLastDemote:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 51
      StackMap locals: org.aspectj.weaver.World$TypeMap int int int java.util.List top java.util.Iterator
      StackMap stack:
        21: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 5 /* key */
        start local 5 // java.lang.String key
        22: .line 1120
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TypeMap.tMap:Ljava/util/Map;
            aload 5 /* key */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.aspectj.weaver.ResolvedType
            astore 7 /* type */
        start local 7 // org.aspectj.weaver.ResolvedType type
        23: .line 1121
            aload 7 /* type */
            ifnonnull 26
        24: .line 1123
            aload 4 /* forRemoval */
            aload 5 /* key */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        25: .line 1124
            goto 51
        26: .line 1126
      StackMap locals: org.aspectj.weaver.World$TypeMap int int int java.util.List java.lang.String java.util.Iterator org.aspectj.weaver.ResolvedType
      StackMap stack:
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TypeMap.writtenClasses:Ljava/util/List;
            aload 7 /* type */
            invokevirtual org.aspectj.weaver.ResolvedType.getName:()Ljava/lang/String;
            invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
            ifne 28
        27: .line 1127
            goto 51
        28: .line 1129
      StackMap locals:
      StackMap stack:
            aload 7 /* type */
            ifnull 49
            aload 7 /* type */
            invokevirtual org.aspectj.weaver.ResolvedType.isAspect:()Z
            ifne 49
            aload 7 /* type */
            getstatic org.aspectj.weaver.UnresolvedType.OBJECT:Lorg/aspectj/weaver/UnresolvedType;
            invokevirtual org.aspectj.weaver.ResolvedType.equals:(Ljava/lang/Object;)Z
            ifne 49
            aload 7 /* type */
            invokevirtual org.aspectj.weaver.ResolvedType.isPrimitiveType:()Z
            ifne 49
        29: .line 1130
            aload 7 /* type */
            invokevirtual org.aspectj.weaver.ResolvedType.getInterTypeMungers:()Ljava/util/List;
            astore 8 /* typeMungers */
        start local 8 // java.util.List typeMungers
        30: .line 1131
            aload 8 /* typeMungers */
            ifnull 31
            aload 8 /* typeMungers */
            invokeinterface java.util.List.size:()I
            ifne 46
        31: .line 1141
      StackMap locals: java.util.List
      StackMap stack:
            aload 7 /* type */
            checkcast org.aspectj.weaver.ReferenceType
            invokevirtual org.aspectj.weaver.ReferenceType.getDelegate:()Lorg/aspectj/weaver/ReferenceTypeDelegate;
            astore 9 /* delegate */
        start local 9 // org.aspectj.weaver.ReferenceTypeDelegate delegate
        32: .line 1142
            aload 9 /* delegate */
            ifnonnull 33
            iconst_0
            goto 34
      StackMap locals: org.aspectj.weaver.ReferenceTypeDelegate
      StackMap stack:
        33: aload 9 /* delegate */
            invokeinterface org.aspectj.weaver.ReferenceTypeDelegate.isExposedToWeaver:()Z
      StackMap locals:
      StackMap stack: int
        34: istore 10 /* isWeavable */
        start local 10 // boolean isWeavable
        35: .line 1143
            aload 9 /* delegate */
            ifnonnull 36
            iconst_0
            goto 37
      StackMap locals: int
      StackMap stack:
        36: aload 9 /* delegate */
            invokeinterface org.aspectj.weaver.ReferenceTypeDelegate.hasBeenWoven:()Z
      StackMap locals:
      StackMap stack: int
        37: istore 11 /* hasBeenWoven */
        start local 11 // boolean hasBeenWoven
        38: .line 1144
            iload 10 /* isWeavable */
            ifeq 39
            iload 11 /* hasBeenWoven */
            ifeq 51
        39: .line 1145
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TypeMap.debugDemotion:Z
            ifeq 41
        40: .line 1146
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "Demoting "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* key */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        41: .line 1148
      StackMap locals:
      StackMap stack:
            aload 4 /* forRemoval */
            aload 5 /* key */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        42: .line 1149
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TypeMap.tMap:Ljava/util/Map;
            aload 5 /* key */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        43: .line 1150
            aload 0 /* this */
            aload 5 /* key */
            aload 7 /* type */
            invokevirtual org.aspectj.weaver.World$TypeMap.insertInExpendableMap:(Ljava/lang/String;Lorg/aspectj/weaver/ResolvedType;)V
        44: .line 1151
            iinc 3 /* demotionCounter */ 1
        end local 11 // boolean hasBeenWoven
        end local 10 // boolean isWeavable
        end local 9 // org.aspectj.weaver.ReferenceTypeDelegate delegate
        45: .line 1153
            goto 51
        46: .line 1155
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TypeMap.writtenClasses:Ljava/util/List;
            aload 7 /* type */
            invokevirtual org.aspectj.weaver.ResolvedType.getName:()Ljava/lang/String;
            invokeinterface java.util.List.remove:(Ljava/lang/Object;)Z
            pop
        47: .line 1156
            aload 4 /* forRemoval */
            aload 5 /* key */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 8 // java.util.List typeMungers
        48: .line 1158
            goto 51
        49: .line 1159
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TypeMap.writtenClasses:Ljava/util/List;
            aload 7 /* type */
            invokevirtual org.aspectj.weaver.ResolvedType.getName:()Ljava/lang/String;
            invokeinterface java.util.List.remove:(Ljava/lang/Object;)Z
            pop
        50: .line 1161
            aload 4 /* forRemoval */
            aload 5 /* key */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 7 // org.aspectj.weaver.ResolvedType type
        end local 5 // java.lang.String key
        51: .line 1119
      StackMap locals: org.aspectj.weaver.World$TypeMap int int int java.util.List top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 21
        52: .line 1164
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TypeMap.addedSinceLastDemote:Ljava/util/List;
            aload 4 /* forRemoval */
            invokeinterface java.util.List.removeAll:(Ljava/util/Collection;)Z
            pop
        end local 4 // java.util.List forRemoval
        53: .line 1166
      StackMap locals: org.aspectj.weaver.World$TypeMap int int int
      StackMap stack:
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TypeMap.debugDemotion:Z
            ifeq 58
        54: .line 1167
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "Demoted "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 3 /* demotionCounter */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " types.  Types remaining in fixed set #"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TypeMap.tMap:Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.size:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        55: .line 1168
            ldc ".  addedSinceLastDemote size is "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TypeMap.addedSinceLastDemote:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        56: .line 1167
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        57: .line 1169
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "writtenClasses.size() = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TypeMap.writtenClasses:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ": "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TypeMap.writtenClasses:Ljava/util/List;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        58: .line 1171
      StackMap locals:
      StackMap stack:
            iload 1 /* atEndOfCompile */
            ifeq 62
        59: .line 1172
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TypeMap.debugDemotion:Z
            ifeq 61
        60: .line 1173
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "Clearing writtenClasses"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        61: .line 1175
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TypeMap.writtenClasses:Ljava/util/List;
            invokeinterface java.util.List.clear:()V
        62: .line 1177
      StackMap locals:
      StackMap stack:
            iload 3 /* demotionCounter */
            ireturn
        end local 3 // int demotionCounter
        end local 2 // boolean isLtw
        end local 1 // boolean atEndOfCompile
        end local 0 // org.aspectj.weaver.World$TypeMap this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   63     0             this  Lorg/aspectj/weaver/World$TypeMap;
            0   63     1   atEndOfCompile  Z
            5   63     2            isLtw  Z
            6   63     3  demotionCounter  I
            9   16     4              key  Ljava/lang/String;
           10   16     6             type  Lorg/aspectj/weaver/ResolvedType;
           12   16     7      typeMungers  Ljava/util/List<Lorg/aspectj/weaver/ConcreteTypeMunger;>;
           20   53     4       forRemoval  Ljava/util/List<Ljava/lang/String;>;
           22   51     5              key  Ljava/lang/String;
           23   51     7             type  Lorg/aspectj/weaver/ResolvedType;
           30   48     8      typeMungers  Ljava/util/List<Lorg/aspectj/weaver/ConcreteTypeMunger;>;
           32   45     9         delegate  Lorg/aspectj/weaver/ReferenceTypeDelegate;
           35   45    10       isWeavable  Z
           38   45    11     hasBeenWoven  Z
    MethodParameters:
                Name  Flags
      atEndOfCompile  

  private void insertInExpendableMap(java.lang.String, org.aspectj.weaver.ResolvedType);
    descriptor: (Ljava/lang/String;Lorg/aspectj/weaver/ResolvedType;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.aspectj.weaver.World$TypeMap this
        start local 1 // java.lang.String key
        start local 2 // org.aspectj.weaver.ResolvedType type
         0: .line 1181
            getstatic org.aspectj.weaver.World$TypeMap.useExpendableMap:Z
            ifeq 6
         1: .line 1182
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TypeMap.expendableMap:Ljava/util/Map;
            aload 1 /* key */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifne 6
         2: .line 1183
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TypeMap.policy:I
            iconst_2
            if_icmpne 5
         3: .line 1184
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TypeMap.expendableMap:Ljava/util/Map;
            aload 1 /* key */
            new java.lang.ref.SoftReference
            dup
            aload 2 /* type */
            invokespecial java.lang.ref.SoftReference.<init>:(Ljava/lang/Object;)V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 1185
            goto 6
         5: .line 1186
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TypeMap.expendableMap:Ljava/util/Map;
            aload 1 /* key */
            new java.lang.ref.WeakReference
            dup
            aload 2 /* type */
            invokespecial java.lang.ref.WeakReference.<init>:(Ljava/lang/Object;)V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 1190
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.aspectj.weaver.ResolvedType type
        end local 1 // java.lang.String key
        end local 0 // org.aspectj.weaver.World$TypeMap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/aspectj/weaver/World$TypeMap;
            0    7     1   key  Ljava/lang/String;
            0    7     2  type  Lorg/aspectj/weaver/ResolvedType;
    MethodParameters:
      Name  Flags
      key   
      type  

  public org.aspectj.weaver.ResolvedType put(java.lang.String, org.aspectj.weaver.ResolvedType);
    descriptor: (Ljava/lang/String;Lorg/aspectj/weaver/ResolvedType;)Lorg/aspectj/weaver/ResolvedType;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // org.aspectj.weaver.World$TypeMap this
        start local 1 // java.lang.String key
        start local 2 // org.aspectj.weaver.ResolvedType type
         0: .line 1203
            aload 2 /* type */
            invokevirtual org.aspectj.weaver.ResolvedType.isCacheable:()Z
            ifne 2
         1: .line 1204
            aload 2 /* type */
            areturn
         2: .line 1206
      StackMap locals:
      StackMap stack:
            aload 2 /* type */
            invokevirtual org.aspectj.weaver.ResolvedType.isParameterizedType:()Z
            ifeq 9
            aload 2 /* type */
            invokevirtual org.aspectj.weaver.ResolvedType.isParameterizedWithTypeVariable:()Z
            ifeq 9
         3: .line 1207
            getstatic org.aspectj.weaver.World$TypeMap.debug:Z
            ifeq 8
         4: .line 1208
            getstatic java.lang.System.err:Ljava/io/PrintStream;
         5: .line 1209
            new java.lang.StringBuilder
            dup
            ldc "Not putting a parameterized type that utilises member declared type variables into the typemap: key="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         6: .line 1210
            aload 1 /* key */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " type="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* type */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
         7: .line 1209
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         8: .line 1212
      StackMap locals:
      StackMap stack:
            aload 2 /* type */
            areturn
         9: .line 1214
      StackMap locals:
      StackMap stack:
            aload 2 /* type */
            invokevirtual org.aspectj.weaver.ResolvedType.isTypeVariableReference:()Z
            ifeq 13
        10: .line 1215
            getstatic org.aspectj.weaver.World$TypeMap.debug:Z
            ifeq 12
        11: .line 1216
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "Not putting a type variable reference type into the typemap: key="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* key */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " type="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* type */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        12: .line 1218
      StackMap locals:
      StackMap stack:
            aload 2 /* type */
            areturn
        13: .line 1222
      StackMap locals:
      StackMap stack:
            aload 2 /* type */
            instanceof org.aspectj.weaver.BoundedReferenceType
            ifeq 17
        14: .line 1223
            getstatic org.aspectj.weaver.World$TypeMap.debug:Z
            ifeq 16
        15: .line 1224
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "Not putting a bounded reference type into the typemap: key="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* key */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " type="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* type */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        16: .line 1226
      StackMap locals:
      StackMap stack:
            aload 2 /* type */
            areturn
        17: .line 1228
      StackMap locals:
      StackMap stack:
            aload 2 /* type */
            instanceof org.aspectj.weaver.MissingResolvedTypeWithKnownSignature
            ifeq 21
        18: .line 1229
            getstatic org.aspectj.weaver.World$TypeMap.debug:Z
            ifeq 20
        19: .line 1230
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "Not putting a missing type into the typemap: key="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* key */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " type="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* type */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        20: .line 1232
      StackMap locals:
      StackMap stack:
            aload 2 /* type */
            areturn
        21: .line 1235
      StackMap locals:
      StackMap stack:
            aload 2 /* type */
            instanceof org.aspectj.weaver.ReferenceType
            ifeq 27
            aload 2 /* type */
            checkcast org.aspectj.weaver.ReferenceType
            invokevirtual org.aspectj.weaver.ReferenceType.getDelegate:()Lorg/aspectj/weaver/ReferenceTypeDelegate;
            ifnonnull 27
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TypeMap.w:Lorg/aspectj/weaver/World;
            aload 2 /* type */
            invokevirtual org.aspectj.weaver.World.isExpendable:(Lorg/aspectj/weaver/ResolvedType;)Z
            ifeq 27
        22: .line 1236
            getstatic org.aspectj.weaver.World$TypeMap.debug:Z
            ifeq 26
        23: .line 1237
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "Not putting expendable ref type with null delegate into typemap: key="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* key */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " type="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        24: .line 1238
            aload 2 /* type */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        25: .line 1237
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        26: .line 1240
      StackMap locals:
      StackMap stack:
            aload 2 /* type */
            areturn
        27: .line 1244
      StackMap locals:
      StackMap stack:
            aload 2 /* type */
            instanceof org.aspectj.weaver.ReferenceType
            ifeq 30
            aload 2 /* type */
            invokevirtual org.aspectj.weaver.ResolvedType.getWorld:()Lorg/aspectj/weaver/World;
            invokevirtual org.aspectj.weaver.World.isInJava5Mode:()Z
            ifeq 30
        28: .line 1245
            aload 2 /* type */
            checkcast org.aspectj.weaver.ReferenceType
            invokevirtual org.aspectj.weaver.ReferenceType.getDelegate:()Lorg/aspectj/weaver/ReferenceTypeDelegate;
            ifnull 30
            aload 2 /* type */
            invokevirtual org.aspectj.weaver.ResolvedType.isGenericType:()Z
            ifeq 30
        29: .line 1246
            new org.aspectj.weaver.BCException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Attempt to add generic type to typemap "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* type */
            invokevirtual org.aspectj.weaver.ResolvedType.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " (should be raw)"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.aspectj.weaver.BCException.<init>:(Ljava/lang/String;)V
            athrow
        30: .line 1250
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TypeMap.w:Lorg/aspectj/weaver/World;
            aload 2 /* type */
            invokevirtual org.aspectj.weaver.World.isExpendable:(Lorg/aspectj/weaver/ResolvedType;)Z
            ifeq 46
        31: .line 1251
            getstatic org.aspectj.weaver.World$TypeMap.useExpendableMap:Z
            ifeq 43
        32: .line 1253
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TypeMap.policy:I
            iconst_1
            if_icmpne 38
        33: .line 1254
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TypeMap.memoryProfiling:Z
            ifeq 36
        34: .line 1255
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TypeMap.expendableMap:Ljava/util/Map;
            aload 1 /* key */
            new java.lang.ref.WeakReference
            dup
            aload 2 /* type */
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TypeMap.rq:Ljava/lang/ref/ReferenceQueue;
            invokespecial java.lang.ref.WeakReference.<init>:(Ljava/lang/Object;Ljava/lang/ref/ReferenceQueue;)V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        35: .line 1256
            goto 43
        36: .line 1257
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TypeMap.expendableMap:Ljava/util/Map;
            aload 1 /* key */
            new java.lang.ref.WeakReference
            dup
            aload 2 /* type */
            invokespecial java.lang.ref.WeakReference.<init>:(Ljava/lang/Object;)V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        37: .line 1259
            goto 43
      StackMap locals:
      StackMap stack:
        38: aload 0 /* this */
            getfield org.aspectj.weaver.World$TypeMap.policy:I
            iconst_2
            if_icmpne 43
        39: .line 1260
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TypeMap.memoryProfiling:Z
            ifeq 42
        40: .line 1261
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TypeMap.expendableMap:Ljava/util/Map;
            aload 1 /* key */
            new java.lang.ref.SoftReference
            dup
            aload 2 /* type */
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TypeMap.rq:Ljava/lang/ref/ReferenceQueue;
            invokespecial java.lang.ref.SoftReference.<init>:(Ljava/lang/Object;Ljava/lang/ref/ReferenceQueue;)V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        41: .line 1262
            goto 43
        42: .line 1263
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TypeMap.expendableMap:Ljava/util/Map;
            aload 1 /* key */
            new java.lang.ref.SoftReference
            dup
            aload 2 /* type */
            invokespecial java.lang.ref.SoftReference.<init>:(Ljava/lang/Object;)V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        43: .line 1269
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TypeMap.memoryProfiling:Z
            ifeq 45
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TypeMap.expendableMap:Ljava/util/Map;
            invokeinterface java.util.Map.size:()I
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TypeMap.maxExpendableMapSize:I
            if_icmple 45
        44: .line 1270
            aload 0 /* this */
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TypeMap.expendableMap:Ljava/util/Map;
            invokeinterface java.util.Map.size:()I
            putfield org.aspectj.weaver.World$TypeMap.maxExpendableMapSize:I
        45: .line 1272
      StackMap locals:
      StackMap stack:
            aload 2 /* type */
            areturn
        46: .line 1274
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TypeMap.demotionSystemActive:Z
            ifeq 48
        47: .line 1276
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TypeMap.addedSinceLastDemote:Ljava/util/List;
            aload 1 /* key */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        48: .line 1279
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TypeMap.tMap:Ljava/util/Map;
            aload 1 /* key */
            aload 2 /* type */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.aspectj.weaver.ResolvedType
            areturn
        end local 2 // org.aspectj.weaver.ResolvedType type
        end local 1 // java.lang.String key
        end local 0 // org.aspectj.weaver.World$TypeMap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   49     0  this  Lorg/aspectj/weaver/World$TypeMap;
            0   49     1   key  Ljava/lang/String;
            0   49     2  type  Lorg/aspectj/weaver/ResolvedType;
    MethodParameters:
      Name  Flags
      key   
      type  

  public void report();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.aspectj.weaver.World$TypeMap this
         0: .line 1284
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TypeMap.memoryProfiling:Z
            ifne 2
         1: .line 1285
            return
         2: .line 1287
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.aspectj.weaver.World$TypeMap.checkq:()V
         3: .line 1288
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TypeMap.w:Lorg/aspectj/weaver/World;
            invokevirtual org.aspectj.weaver.World.getMessageHandler:()Lorg/aspectj/bridge/IMessageHandler;
         4: .line 1289
            new java.lang.StringBuilder
            dup
            ldc "MEMORY: world expendable type map reached maximum size of #"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TypeMap.maxExpendableMapSize:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
         5: .line 1290
            ldc " entries"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         6: .line 1289
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.aspectj.bridge.MessageUtil.info:(Ljava/lang/String;)Lorg/aspectj/bridge/IMessage;
         7: .line 1288
            invokeinterface org.aspectj.bridge.IMessageHandler.handleMessage:(Lorg/aspectj/bridge/IMessage;)Z
            pop
         8: .line 1291
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TypeMap.w:Lorg/aspectj/weaver/World;
            invokevirtual org.aspectj.weaver.World.getMessageHandler:()Lorg/aspectj/bridge/IMessageHandler;
         9: .line 1292
            new java.lang.StringBuilder
            dup
            ldc "MEMORY: types collected through garbage collection #"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TypeMap.collectedTypes:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " entries"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.aspectj.bridge.MessageUtil.info:(Ljava/lang/String;)Lorg/aspectj/bridge/IMessage;
        10: .line 1291
            invokeinterface org.aspectj.bridge.IMessageHandler.handleMessage:(Lorg/aspectj/bridge/IMessage;)Z
            pop
        11: .line 1293
            return
        end local 0 // org.aspectj.weaver.World$TypeMap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Lorg/aspectj/weaver/World$TypeMap;

  public void checkq();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.aspectj.weaver.World$TypeMap this
         0: .line 1296
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TypeMap.memoryProfiling:Z
            ifne 3
         1: .line 1297
            return
         2: .line 1301
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield org.aspectj.weaver.World$TypeMap.collectedTypes:I
            iconst_1
            iadd
            putfield org.aspectj.weaver.World$TypeMap.collectedTypes:I
         3: .line 1300
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TypeMap.rq:Ljava/lang/ref/ReferenceQueue;
            invokevirtual java.lang.ref.ReferenceQueue.poll:()Ljava/lang/ref/Reference;
            ifnonnull 2
         4: .line 1303
            return
        end local 0 // org.aspectj.weaver.World$TypeMap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/aspectj/weaver/World$TypeMap;

  public org.aspectj.weaver.ResolvedType get(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/aspectj/weaver/ResolvedType;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.aspectj.weaver.World$TypeMap this
        start local 1 // java.lang.String key
         0: .line 1309
            aload 0 /* this */
            invokevirtual org.aspectj.weaver.World$TypeMap.checkq:()V
         1: .line 1310
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TypeMap.tMap:Ljava/util/Map;
            aload 1 /* key */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.aspectj.weaver.ResolvedType
            astore 2 /* ret */
        start local 2 // org.aspectj.weaver.ResolvedType ret
         2: .line 1311
            aload 2 /* ret */
            ifnonnull 12
         3: .line 1312
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TypeMap.policy:I
            iconst_1
            if_icmpne 8
         4: .line 1313
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TypeMap.expendableMap:Ljava/util/Map;
            aload 1 /* key */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.ref.WeakReference
            astore 3 /* ref */
        start local 3 // java.lang.ref.WeakReference ref
         5: .line 1314
            aload 3 /* ref */
            ifnull 12
         6: .line 1315
            aload 3 /* ref */
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            checkcast org.aspectj.weaver.ResolvedType
            astore 2 /* ret */
        end local 3 // java.lang.ref.WeakReference ref
         7: .line 1320
            goto 12
      StackMap locals: org.aspectj.weaver.ResolvedType
      StackMap stack:
         8: aload 0 /* this */
            getfield org.aspectj.weaver.World$TypeMap.policy:I
            iconst_2
            if_icmpne 12
         9: .line 1321
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TypeMap.expendableMap:Ljava/util/Map;
            aload 1 /* key */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.ref.SoftReference
            astore 3 /* ref */
        start local 3 // java.lang.ref.SoftReference ref
        10: .line 1322
            aload 3 /* ref */
            ifnull 12
        11: .line 1323
            aload 3 /* ref */
            invokevirtual java.lang.ref.SoftReference.get:()Ljava/lang/Object;
            checkcast org.aspectj.weaver.ResolvedType
            astore 2 /* ret */
        end local 3 // java.lang.ref.SoftReference ref
        12: .line 1332
      StackMap locals:
      StackMap stack:
            aload 2 /* ret */
            areturn
        end local 2 // org.aspectj.weaver.ResolvedType ret
        end local 1 // java.lang.String key
        end local 0 // org.aspectj.weaver.World$TypeMap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  this  Lorg/aspectj/weaver/World$TypeMap;
            0   13     1   key  Ljava/lang/String;
            2   13     2   ret  Lorg/aspectj/weaver/ResolvedType;
            5    7     3   ref  Ljava/lang/ref/WeakReference<Lorg/aspectj/weaver/ResolvedType;>;
           10   12     3   ref  Ljava/lang/ref/SoftReference<Lorg/aspectj/weaver/ResolvedType;>;
    MethodParameters:
      Name  Flags
      key   

  public org.aspectj.weaver.ResolvedType remove(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/aspectj/weaver/ResolvedType;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.aspectj.weaver.World$TypeMap this
        start local 1 // java.lang.String key
         0: .line 1337
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TypeMap.tMap:Ljava/util/Map;
            aload 1 /* key */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.aspectj.weaver.ResolvedType
            astore 2 /* ret */
        start local 2 // org.aspectj.weaver.ResolvedType ret
         1: .line 1338
            aload 2 /* ret */
            ifnonnull 11
         2: .line 1339
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TypeMap.policy:I
            iconst_1
            if_icmpne 7
         3: .line 1340
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TypeMap.expendableMap:Ljava/util/Map;
            aload 1 /* key */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.ref.WeakReference
            astore 3 /* wref */
        start local 3 // java.lang.ref.WeakReference wref
         4: .line 1341
            aload 3 /* wref */
            ifnull 11
         5: .line 1342
            aload 3 /* wref */
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            checkcast org.aspectj.weaver.ResolvedType
            astore 2 /* ret */
        end local 3 // java.lang.ref.WeakReference wref
         6: .line 1344
            goto 11
      StackMap locals: org.aspectj.weaver.ResolvedType
      StackMap stack:
         7: aload 0 /* this */
            getfield org.aspectj.weaver.World$TypeMap.policy:I
            iconst_2
            if_icmpne 11
         8: .line 1345
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TypeMap.expendableMap:Ljava/util/Map;
            aload 1 /* key */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.ref.SoftReference
            astore 3 /* wref */
        start local 3 // java.lang.ref.SoftReference wref
         9: .line 1346
            aload 3 /* wref */
            ifnull 11
        10: .line 1347
            aload 3 /* wref */
            invokevirtual java.lang.ref.SoftReference.get:()Ljava/lang/Object;
            checkcast org.aspectj.weaver.ResolvedType
            astore 2 /* ret */
        end local 3 // java.lang.ref.SoftReference wref
        11: .line 1353
      StackMap locals:
      StackMap stack:
            aload 2 /* ret */
            areturn
        end local 2 // org.aspectj.weaver.ResolvedType ret
        end local 1 // java.lang.String key
        end local 0 // org.aspectj.weaver.World$TypeMap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Lorg/aspectj/weaver/World$TypeMap;
            0   12     1   key  Ljava/lang/String;
            1   12     2   ret  Lorg/aspectj/weaver/ResolvedType;
            4    6     3  wref  Ljava/lang/ref/WeakReference<Lorg/aspectj/weaver/ResolvedType;>;
            9   11     3  wref  Ljava/lang/ref/SoftReference<Lorg/aspectj/weaver/ResolvedType;>;
    MethodParameters:
      Name  Flags
      key   

  public void classWriteEvent(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.aspectj.weaver.World$TypeMap this
        start local 1 // java.lang.String classname
         0: .line 1358
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TypeMap.demotionSystemActive:Z
            ifeq 2
         1: .line 1359
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TypeMap.writtenClasses:Ljava/util/List;
            aload 1 /* classname */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         2: .line 1361
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TypeMap.debugDemotion:Z
            ifeq 4
         3: .line 1362
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "Class write event for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* classname */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         4: .line 1364
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String classname
        end local 0 // org.aspectj.weaver.World$TypeMap this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Lorg/aspectj/weaver/World$TypeMap;
            0    5     1  classname  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      classname  

  public void demote(org.aspectj.weaver.ResolvedType);
    descriptor: (Lorg/aspectj/weaver/ResolvedType;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.aspectj.weaver.World$TypeMap this
        start local 1 // org.aspectj.weaver.ResolvedType type
         0: .line 1367
            aload 1 /* type */
            invokevirtual org.aspectj.weaver.ResolvedType.getSignature:()Ljava/lang/String;
            astore 2 /* key */
        start local 2 // java.lang.String key
         1: .line 1368
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TypeMap.debugDemotion:Z
            ifeq 3
         2: .line 1369
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TypeMap.addedSinceLastDemote:Ljava/util/List;
            aload 2 /* key */
            invokeinterface java.util.List.remove:(Ljava/lang/Object;)Z
            pop
         3: .line 1371
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TypeMap.tMap:Ljava/util/Map;
            aload 2 /* key */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 1372
            aload 0 /* this */
            aload 2 /* key */
            aload 1 /* type */
            invokevirtual org.aspectj.weaver.World$TypeMap.insertInExpendableMap:(Ljava/lang/String;Lorg/aspectj/weaver/ResolvedType;)V
         5: .line 1373
            return
        end local 2 // java.lang.String key
        end local 1 // org.aspectj.weaver.ResolvedType type
        end local 0 // org.aspectj.weaver.World$TypeMap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/aspectj/weaver/World$TypeMap;
            0    6     1  type  Lorg/aspectj/weaver/ResolvedType;
            1    6     2   key  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      type  
}
SourceFile: "World.java"
NestHost: org.aspectj.weaver.World
InnerClasses:
  public TypeMap = org.aspectj.weaver.World$TypeMap of org.aspectj.weaver.World