public class com.sun.tools.javac.code.Scope$ScopeListenerList
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.sun.tools.javac.code.Scope$ScopeListenerList
  super_class: java.lang.Object
{
  com.sun.tools.javac.util.List<java.lang.ref.WeakReference<com.sun.tools.javac.code.Scope$ScopeListener>> listeners;
    descriptor: Lcom/sun/tools/javac/util/List;
    flags: (0x0000) 
    Signature: Lcom/sun/tools/javac/util/List<Ljava/lang/ref/WeakReference<Lcom/sun/tools/javac/code/Scope$ScopeListener;>;>;

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.code.Scope$ScopeListenerList this
         0: .line 179
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 181
            aload 0 /* this */
            invokestatic com.sun.tools.javac.util.List.nil:()Lcom/sun/tools/javac/util/List;
            putfield com.sun.tools.javac.code.Scope$ScopeListenerList.listeners:Lcom/sun/tools/javac/util/List;
         2: .line 179
            return
        end local 0 // com.sun.tools.javac.code.Scope$ScopeListenerList this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/sun/tools/javac/code/Scope$ScopeListenerList;

  void add(com.sun.tools.javac.code.Scope$ScopeListener);
    descriptor: (Lcom/sun/tools/javac/code/Scope$ScopeListener;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.code.Scope$ScopeListenerList this
        start local 1 // com.sun.tools.javac.code.Scope$ScopeListener sl
         0: .line 184
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Scope$ScopeListenerList.listeners:Lcom/sun/tools/javac/util/List;
            new java.lang.ref.WeakReference
            dup
            aload 1 /* sl */
            invokespecial java.lang.ref.WeakReference.<init>:(Ljava/lang/Object;)V
            invokevirtual com.sun.tools.javac.util.List.prepend:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/List;
            putfield com.sun.tools.javac.code.Scope$ScopeListenerList.listeners:Lcom/sun/tools/javac/util/List;
         1: .line 185
            return
        end local 1 // com.sun.tools.javac.code.Scope$ScopeListener sl
        end local 0 // com.sun.tools.javac.code.Scope$ScopeListenerList this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/tools/javac/code/Scope$ScopeListenerList;
            0    2     1    sl  Lcom/sun/tools/javac/code/Scope$ScopeListener;
    MethodParameters:
      Name  Flags
      sl    

  void symbolAdded(com.sun.tools.javac.code.Symbol, com.sun.tools.javac.code.Scope);
    descriptor: (Lcom/sun/tools/javac/code/Symbol;Lcom/sun/tools/javac/code/Scope;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.sun.tools.javac.code.Scope$ScopeListenerList this
        start local 1 // com.sun.tools.javac.code.Symbol sym
        start local 2 // com.sun.tools.javac.code.Scope scope
         0: .line 188
            aload 0 /* this */
            aload 1 /* sym */
            aload 2 /* scope */
            iconst_0
            invokevirtual com.sun.tools.javac.code.Scope$ScopeListenerList.walkReferences:(Lcom/sun/tools/javac/code/Symbol;Lcom/sun/tools/javac/code/Scope;Z)V
         1: .line 189
            return
        end local 2 // com.sun.tools.javac.code.Scope scope
        end local 1 // com.sun.tools.javac.code.Symbol sym
        end local 0 // com.sun.tools.javac.code.Scope$ScopeListenerList this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lcom/sun/tools/javac/code/Scope$ScopeListenerList;
            0    2     1    sym  Lcom/sun/tools/javac/code/Symbol;
            0    2     2  scope  Lcom/sun/tools/javac/code/Scope;
    MethodParameters:
       Name  Flags
      sym    
      scope  

  void symbolRemoved(com.sun.tools.javac.code.Symbol, com.sun.tools.javac.code.Scope);
    descriptor: (Lcom/sun/tools/javac/code/Symbol;Lcom/sun/tools/javac/code/Scope;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.sun.tools.javac.code.Scope$ScopeListenerList this
        start local 1 // com.sun.tools.javac.code.Symbol sym
        start local 2 // com.sun.tools.javac.code.Scope scope
         0: .line 192
            aload 0 /* this */
            aload 1 /* sym */
            aload 2 /* scope */
            iconst_1
            invokevirtual com.sun.tools.javac.code.Scope$ScopeListenerList.walkReferences:(Lcom/sun/tools/javac/code/Symbol;Lcom/sun/tools/javac/code/Scope;Z)V
         1: .line 193
            return
        end local 2 // com.sun.tools.javac.code.Scope scope
        end local 1 // com.sun.tools.javac.code.Symbol sym
        end local 0 // com.sun.tools.javac.code.Scope$ScopeListenerList this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lcom/sun/tools/javac/code/Scope$ScopeListenerList;
            0    2     1    sym  Lcom/sun/tools/javac/code/Symbol;
            0    2     2  scope  Lcom/sun/tools/javac/code/Scope;
    MethodParameters:
       Name  Flags
      sym    
      scope  

  private void walkReferences(com.sun.tools.javac.code.Symbol, com.sun.tools.javac.code.Scope, boolean);
    descriptor: (Lcom/sun/tools/javac/code/Symbol;Lcom/sun/tools/javac/code/Scope;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=8, args_size=4
        start local 0 // com.sun.tools.javac.code.Scope$ScopeListenerList this
        start local 1 // com.sun.tools.javac.code.Symbol sym
        start local 2 // com.sun.tools.javac.code.Scope scope
        start local 3 // boolean isRemove
         0: .line 196
            new com.sun.tools.javac.util.ListBuffer
            dup
            invokespecial com.sun.tools.javac.util.ListBuffer.<init>:()V
            astore 4 /* newListeners */
        start local 4 // com.sun.tools.javac.util.ListBuffer newListeners
         1: .line 197
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Scope$ScopeListenerList.listeners:Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 10
      StackMap locals: com.sun.tools.javac.code.Scope$ScopeListenerList com.sun.tools.javac.code.Symbol com.sun.tools.javac.code.Scope int com.sun.tools.javac.util.ListBuffer top java.util.Iterator
      StackMap stack:
         2: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.ref.WeakReference
            astore 5 /* wsl */
        start local 5 // java.lang.ref.WeakReference wsl
         3: .line 198
            aload 5 /* wsl */
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Scope$ScopeListener
            astore 7 /* sl */
        start local 7 // com.sun.tools.javac.code.Scope$ScopeListener sl
         4: .line 199
            aload 7 /* sl */
            ifnull 10
         5: .line 200
            iload 3 /* isRemove */
            ifeq 8
         6: .line 201
            aload 7 /* sl */
            aload 1 /* sym */
            aload 2 /* scope */
            invokeinterface com.sun.tools.javac.code.Scope$ScopeListener.symbolRemoved:(Lcom/sun/tools/javac/code/Symbol;Lcom/sun/tools/javac/code/Scope;)V
         7: .line 202
            goto 9
         8: .line 203
      StackMap locals: com.sun.tools.javac.code.Scope$ScopeListenerList com.sun.tools.javac.code.Symbol com.sun.tools.javac.code.Scope int com.sun.tools.javac.util.ListBuffer java.lang.ref.WeakReference java.util.Iterator com.sun.tools.javac.code.Scope$ScopeListener
      StackMap stack:
            aload 7 /* sl */
            aload 1 /* sym */
            aload 2 /* scope */
            invokeinterface com.sun.tools.javac.code.Scope$ScopeListener.symbolAdded:(Lcom/sun/tools/javac/code/Symbol;Lcom/sun/tools/javac/code/Scope;)V
         9: .line 205
      StackMap locals:
      StackMap stack:
            aload 4 /* newListeners */
            aload 5 /* wsl */
            invokevirtual com.sun.tools.javac.util.ListBuffer.add:(Ljava/lang/Object;)Z
            pop
        end local 7 // com.sun.tools.javac.code.Scope$ScopeListener sl
        end local 5 // java.lang.ref.WeakReference wsl
        10: .line 197
      StackMap locals: com.sun.tools.javac.code.Scope$ScopeListenerList com.sun.tools.javac.code.Symbol com.sun.tools.javac.code.Scope int com.sun.tools.javac.util.ListBuffer top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        11: .line 208
            aload 0 /* this */
            aload 4 /* newListeners */
            invokevirtual com.sun.tools.javac.util.ListBuffer.toList:()Lcom/sun/tools/javac/util/List;
            putfield com.sun.tools.javac.code.Scope$ScopeListenerList.listeners:Lcom/sun/tools/javac/util/List;
        12: .line 209
            return
        end local 4 // com.sun.tools.javac.util.ListBuffer newListeners
        end local 3 // boolean isRemove
        end local 2 // com.sun.tools.javac.code.Scope scope
        end local 1 // com.sun.tools.javac.code.Symbol sym
        end local 0 // com.sun.tools.javac.code.Scope$ScopeListenerList this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   13     0          this  Lcom/sun/tools/javac/code/Scope$ScopeListenerList;
            0   13     1           sym  Lcom/sun/tools/javac/code/Symbol;
            0   13     2         scope  Lcom/sun/tools/javac/code/Scope;
            0   13     3      isRemove  Z
            1   13     4  newListeners  Lcom/sun/tools/javac/util/ListBuffer<Ljava/lang/ref/WeakReference<Lcom/sun/tools/javac/code/Scope$ScopeListener;>;>;
            3   10     5           wsl  Ljava/lang/ref/WeakReference<Lcom/sun/tools/javac/code/Scope$ScopeListener;>;
            4   10     7            sl  Lcom/sun/tools/javac/code/Scope$ScopeListener;
    MethodParameters:
          Name  Flags
      sym       
      scope     
      isRemove  
}
SourceFile: "Scope.java"
NestHost: com.sun.tools.javac.code.Scope
InnerClasses:
  public abstract ScopeListener = com.sun.tools.javac.code.Scope$ScopeListener of com.sun.tools.javac.code.Scope
  public ScopeListenerList = com.sun.tools.javac.code.Scope$ScopeListenerList of com.sun.tools.javac.code.Scope