class com.sun.tools.javac.comp.Lower$FreeVarCollector extends com.sun.tools.javac.comp.Lower$BasicFreeVarCollector
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.sun.tools.javac.comp.Lower$FreeVarCollector
super_class: com.sun.tools.javac.comp.Lower$BasicFreeVarCollector
{
com.sun.tools.javac.code.Symbol owner;
descriptor: Lcom/sun/tools/javac/code/Symbol;
flags: (0x0000)
com.sun.tools.javac.code.Symbol$ClassSymbol clazz;
descriptor: Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
flags: (0x0000)
com.sun.tools.javac.util.List<com.sun.tools.javac.code.Symbol$VarSymbol> fvs;
descriptor: Lcom/sun/tools/javac/util/List;
flags: (0x0000)
Signature: Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Symbol$VarSymbol;>;
final com.sun.tools.javac.comp.Lower this$0;
descriptor: Lcom/sun/tools/javac/comp/Lower;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
void <init>(com.sun.tools.javac.comp.Lower, com.sun.tools.javac.code.Symbol$ClassSymbol);
descriptor: (Lcom/sun/tools/javac/comp/Lower;Lcom/sun/tools/javac/code/Symbol$ClassSymbol;)V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=3
start local 0 start local 2 0: aload 0
aload 1
putfield com.sun.tools.javac.comp.Lower$FreeVarCollector.this$0:Lcom/sun/tools/javac/comp/Lower;
aload 0
aload 1
invokespecial com.sun.tools.javac.comp.Lower$BasicFreeVarCollector.<init>:(Lcom/sun/tools/javac/comp/Lower;)V
1: aload 0
aload 2
putfield com.sun.tools.javac.comp.Lower$FreeVarCollector.clazz:Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
2: aload 0
aload 2
getfield com.sun.tools.javac.code.Symbol$ClassSymbol.owner:Lcom/sun/tools/javac/code/Symbol;
putfield com.sun.tools.javac.comp.Lower$FreeVarCollector.owner:Lcom/sun/tools/javac/code/Symbol;
3: aload 0
invokestatic com.sun.tools.javac.util.List.nil:()Lcom/sun/tools/javac/util/List;
putfield com.sun.tools.javac.comp.Lower$FreeVarCollector.fvs:Lcom/sun/tools/javac/util/List;
4: return
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/sun/tools/javac/comp/Lower$FreeVarCollector;
0 5 2 clazz Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
MethodParameters:
Name Flags
this$0 final
clazz
private void addFreeVar(com.sun.tools.javac.code.Symbol$VarSymbol);
descriptor: (Lcom/sun/tools/javac/code/Symbol$VarSymbol;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.tools.javac.comp.Lower$FreeVarCollector.fvs:Lcom/sun/tools/javac/util/List;
astore 2
start local 2 1: goto 4
2: StackMap locals: com.sun.tools.javac.util.List
StackMap stack:
aload 2
getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
aload 1
if_acmpne 3
return
3: StackMap locals:
StackMap stack:
aload 2
getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
astore 2
StackMap locals:
StackMap stack:
4: aload 2
invokevirtual com.sun.tools.javac.util.List.nonEmpty:()Z
ifne 2
end local 2 5: aload 0
aload 0
getfield com.sun.tools.javac.comp.Lower$FreeVarCollector.fvs:Lcom/sun/tools/javac/util/List;
aload 1
invokevirtual com.sun.tools.javac.util.List.prepend:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/List;
putfield com.sun.tools.javac.comp.Lower$FreeVarCollector.fvs:Lcom/sun/tools/javac/util/List;
6: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/sun/tools/javac/comp/Lower$FreeVarCollector;
0 7 1 v Lcom/sun/tools/javac/code/Symbol$VarSymbol;
1 5 2 l Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Symbol$VarSymbol;>;
MethodParameters:
Name Flags
v
void addFreeVars(com.sun.tools.javac.code.Symbol$ClassSymbol);
descriptor: (Lcom/sun/tools/javac/code/Symbol$ClassSymbol;)V
flags: (0x0000)
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.tools.javac.comp.Lower$FreeVarCollector.this$0:Lcom/sun/tools/javac/comp/Lower;
getfield com.sun.tools.javac.comp.Lower.freevarCache:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.sun.tools.javac.util.List
astore 2
start local 2 1: aload 2
ifnull 7
2: aload 2
astore 3
start local 3 3: goto 6
4: StackMap locals: com.sun.tools.javac.util.List com.sun.tools.javac.util.List
StackMap stack:
aload 0
aload 3
getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
checkcast com.sun.tools.javac.code.Symbol$VarSymbol
invokevirtual com.sun.tools.javac.comp.Lower$FreeVarCollector.addFreeVar:(Lcom/sun/tools/javac/code/Symbol$VarSymbol;)V
5: aload 3
getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
astore 3
StackMap locals:
StackMap stack:
6: aload 3
invokevirtual com.sun.tools.javac.util.List.nonEmpty:()Z
ifne 4
end local 3 7: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/sun/tools/javac/comp/Lower$FreeVarCollector;
0 8 1 c Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
1 8 2 fvs Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Symbol$VarSymbol;>;
3 7 3 l Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Symbol$VarSymbol;>;
MethodParameters:
Name Flags
c
void visitSymbol(com.sun.tools.javac.code.Symbol);
descriptor: (Lcom/sun/tools/javac/code/Symbol;)V
flags: (0x0000)
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 1
astore 2
start local 2 1: aload 2
getfield com.sun.tools.javac.code.Symbol.kind:Lcom/sun/tools/javac/code/Kinds$Kind;
getstatic com.sun.tools.javac.code.Kinds$Kind.VAR:Lcom/sun/tools/javac/code/Kinds$Kind;
if_acmpeq 2
aload 2
getfield com.sun.tools.javac.code.Symbol.kind:Lcom/sun/tools/javac/code/Kinds$Kind;
getstatic com.sun.tools.javac.code.Kinds$Kind.MTH:Lcom/sun/tools/javac/code/Kinds$Kind;
if_acmpne 12
2: StackMap locals: com.sun.tools.javac.code.Symbol
StackMap stack:
aload 2
ifnull 4
aload 2
getfield com.sun.tools.javac.code.Symbol.owner:Lcom/sun/tools/javac/code/Symbol;
aload 0
getfield com.sun.tools.javac.comp.Lower$FreeVarCollector.owner:Lcom/sun/tools/javac/code/Symbol;
if_acmpeq 4
3: aload 0
getfield com.sun.tools.javac.comp.Lower$FreeVarCollector.this$0:Lcom/sun/tools/javac/comp/Lower;
getfield com.sun.tools.javac.comp.Lower.proxies:Ljava/util/Map;
aload 2
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.sun.tools.javac.code.Symbol
astore 2
4: StackMap locals:
StackMap stack:
aload 2
ifnull 9
aload 2
getfield com.sun.tools.javac.code.Symbol.owner:Lcom/sun/tools/javac/code/Symbol;
aload 0
getfield com.sun.tools.javac.comp.Lower$FreeVarCollector.owner:Lcom/sun/tools/javac/code/Symbol;
if_acmpne 9
5: aload 2
checkcast com.sun.tools.javac.code.Symbol$VarSymbol
astore 3
start local 3 6: aload 3
invokevirtual com.sun.tools.javac.code.Symbol$VarSymbol.getConstValue:()Ljava/lang/Object;
ifnonnull 12
7: aload 0
aload 3
invokevirtual com.sun.tools.javac.comp.Lower$FreeVarCollector.addFreeVar:(Lcom/sun/tools/javac/code/Symbol$VarSymbol;)V
end local 3 8: goto 12
9: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.tools.javac.comp.Lower$FreeVarCollector.this$0:Lcom/sun/tools/javac/comp/Lower;
getfield com.sun.tools.javac.comp.Lower.outerThisStack:Lcom/sun/tools/javac/util/List;
getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
ifnull 12
10: aload 0
getfield com.sun.tools.javac.comp.Lower$FreeVarCollector.this$0:Lcom/sun/tools/javac/comp/Lower;
getfield com.sun.tools.javac.comp.Lower.outerThisStack:Lcom/sun/tools/javac/util/List;
getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
aload 1
if_acmpeq 12
11: aload 0
aload 0
getfield com.sun.tools.javac.comp.Lower$FreeVarCollector.this$0:Lcom/sun/tools/javac/comp/Lower;
getfield com.sun.tools.javac.comp.Lower.outerThisStack:Lcom/sun/tools/javac/util/List;
getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
checkcast com.sun.tools.javac.code.Symbol
invokevirtual com.sun.tools.javac.comp.Lower$FreeVarCollector.visitSymbol:(Lcom/sun/tools/javac/code/Symbol;)V
12: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lcom/sun/tools/javac/comp/Lower$FreeVarCollector;
0 13 1 _sym Lcom/sun/tools/javac/code/Symbol;
1 13 2 sym Lcom/sun/tools/javac/code/Symbol;
6 8 3 v Lcom/sun/tools/javac/code/Symbol$VarSymbol;
MethodParameters:
Name Flags
_sym
public void visitNewClass(com.sun.tools.javac.tree.JCTree$JCNewClass);
descriptor: (Lcom/sun/tools/javac/tree/JCTree$JCNewClass;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
getfield com.sun.tools.javac.tree.JCTree$JCNewClass.constructor:Lcom/sun/tools/javac/code/Symbol;
getfield com.sun.tools.javac.code.Symbol.owner:Lcom/sun/tools/javac/code/Symbol;
checkcast com.sun.tools.javac.code.Symbol$ClassSymbol
astore 2
start local 2 1: aload 1
getfield com.sun.tools.javac.tree.JCTree$JCNewClass.encl:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
ifnonnull 5
2: aload 2
invokevirtual com.sun.tools.javac.code.Symbol$ClassSymbol.hasOuterInstance:()Z
ifeq 5
3: aload 0
getfield com.sun.tools.javac.comp.Lower$FreeVarCollector.this$0:Lcom/sun/tools/javac/comp/Lower;
getfield com.sun.tools.javac.comp.Lower.outerThisStack:Lcom/sun/tools/javac/util/List;
getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
ifnull 5
4: aload 0
aload 0
getfield com.sun.tools.javac.comp.Lower$FreeVarCollector.this$0:Lcom/sun/tools/javac/comp/Lower;
getfield com.sun.tools.javac.comp.Lower.outerThisStack:Lcom/sun/tools/javac/util/List;
getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
checkcast com.sun.tools.javac.code.Symbol
invokevirtual com.sun.tools.javac.comp.Lower$FreeVarCollector.visitSymbol:(Lcom/sun/tools/javac/code/Symbol;)V
5: StackMap locals: com.sun.tools.javac.code.Symbol$ClassSymbol
StackMap stack:
aload 0
aload 1
invokespecial com.sun.tools.javac.comp.Lower$BasicFreeVarCollector.visitNewClass:(Lcom/sun/tools/javac/tree/JCTree$JCNewClass;)V
6: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/sun/tools/javac/comp/Lower$FreeVarCollector;
0 7 1 tree Lcom/sun/tools/javac/tree/JCTree$JCNewClass;
1 7 2 c Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
MethodParameters:
Name Flags
tree
public void visitSelect(com.sun.tools.javac.tree.JCTree$JCFieldAccess);
descriptor: (Lcom/sun/tools/javac/tree/JCTree$JCFieldAccess;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
getfield com.sun.tools.javac.tree.JCTree$JCFieldAccess.name:Lcom/sun/tools/javac/util/Name;
aload 0
getfield com.sun.tools.javac.comp.Lower$FreeVarCollector.this$0:Lcom/sun/tools/javac/comp/Lower;
getfield com.sun.tools.javac.comp.Lower.names:Lcom/sun/tools/javac/util/Names;
getfield com.sun.tools.javac.util.Names._this:Lcom/sun/tools/javac/util/Name;
if_acmpeq 1
aload 1
getfield com.sun.tools.javac.tree.JCTree$JCFieldAccess.name:Lcom/sun/tools/javac/util/Name;
aload 0
getfield com.sun.tools.javac.comp.Lower$FreeVarCollector.this$0:Lcom/sun/tools/javac/comp/Lower;
getfield com.sun.tools.javac.comp.Lower.names:Lcom/sun/tools/javac/util/Names;
getfield com.sun.tools.javac.util.Names._super:Lcom/sun/tools/javac/util/Name;
if_acmpne 4
1: StackMap locals:
StackMap stack:
aload 1
getfield com.sun.tools.javac.tree.JCTree$JCFieldAccess.selected:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
getfield com.sun.tools.javac.tree.JCTree$JCExpression.type:Lcom/sun/tools/javac/code/Type;
getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
aload 0
getfield com.sun.tools.javac.comp.Lower$FreeVarCollector.clazz:Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
if_acmpeq 4
2: aload 0
getfield com.sun.tools.javac.comp.Lower$FreeVarCollector.this$0:Lcom/sun/tools/javac/comp/Lower;
getfield com.sun.tools.javac.comp.Lower.outerThisStack:Lcom/sun/tools/javac/util/List;
getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
ifnull 4
3: aload 0
aload 0
getfield com.sun.tools.javac.comp.Lower$FreeVarCollector.this$0:Lcom/sun/tools/javac/comp/Lower;
getfield com.sun.tools.javac.comp.Lower.outerThisStack:Lcom/sun/tools/javac/util/List;
getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
checkcast com.sun.tools.javac.code.Symbol
invokevirtual com.sun.tools.javac.comp.Lower$FreeVarCollector.visitSymbol:(Lcom/sun/tools/javac/code/Symbol;)V
4: StackMap locals:
StackMap stack:
aload 0
aload 1
invokespecial com.sun.tools.javac.comp.Lower$BasicFreeVarCollector.visitSelect:(Lcom/sun/tools/javac/tree/JCTree$JCFieldAccess;)V
5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/sun/tools/javac/comp/Lower$FreeVarCollector;
0 6 1 tree Lcom/sun/tools/javac/tree/JCTree$JCFieldAccess;
MethodParameters:
Name Flags
tree
public void visitApply(com.sun.tools.javac.tree.JCTree$JCMethodInvocation);
descriptor: (Lcom/sun/tools/javac/tree/JCTree$JCMethodInvocation;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 1
getfield com.sun.tools.javac.tree.JCTree$JCMethodInvocation.meth:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
invokestatic com.sun.tools.javac.tree.TreeInfo.name:(Lcom/sun/tools/javac/tree/JCTree;)Lcom/sun/tools/javac/util/Name;
aload 0
getfield com.sun.tools.javac.comp.Lower$FreeVarCollector.this$0:Lcom/sun/tools/javac/comp/Lower;
getfield com.sun.tools.javac.comp.Lower.names:Lcom/sun/tools/javac/util/Names;
getfield com.sun.tools.javac.util.Names._super:Lcom/sun/tools/javac/util/Name;
if_acmpne 7
1: aload 1
getfield com.sun.tools.javac.tree.JCTree$JCMethodInvocation.meth:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
invokestatic com.sun.tools.javac.tree.TreeInfo.symbol:(Lcom/sun/tools/javac/tree/JCTree;)Lcom/sun/tools/javac/code/Symbol;
astore 2
start local 2 2: aload 2
getfield com.sun.tools.javac.code.Symbol.owner:Lcom/sun/tools/javac/code/Symbol;
checkcast com.sun.tools.javac.code.Symbol$ClassSymbol
astore 3
start local 3 3: aload 3
invokevirtual com.sun.tools.javac.code.Symbol$ClassSymbol.hasOuterInstance:()Z
ifeq 7
4: aload 1
getfield com.sun.tools.javac.tree.JCTree$JCMethodInvocation.meth:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
getstatic com.sun.tools.javac.tree.JCTree$Tag.SELECT:Lcom/sun/tools/javac/tree/JCTree$Tag;
invokevirtual com.sun.tools.javac.tree.JCTree$JCExpression.hasTag:(Lcom/sun/tools/javac/tree/JCTree$Tag;)Z
ifne 7
5: aload 0
getfield com.sun.tools.javac.comp.Lower$FreeVarCollector.this$0:Lcom/sun/tools/javac/comp/Lower;
getfield com.sun.tools.javac.comp.Lower.outerThisStack:Lcom/sun/tools/javac/util/List;
getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
ifnull 7
6: aload 0
aload 0
getfield com.sun.tools.javac.comp.Lower$FreeVarCollector.this$0:Lcom/sun/tools/javac/comp/Lower;
getfield com.sun.tools.javac.comp.Lower.outerThisStack:Lcom/sun/tools/javac/util/List;
getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
checkcast com.sun.tools.javac.code.Symbol
invokevirtual com.sun.tools.javac.comp.Lower$FreeVarCollector.visitSymbol:(Lcom/sun/tools/javac/code/Symbol;)V
end local 3 end local 2 7: StackMap locals:
StackMap stack:
aload 0
aload 1
invokespecial com.sun.tools.javac.comp.Lower$BasicFreeVarCollector.visitApply:(Lcom/sun/tools/javac/tree/JCTree$JCMethodInvocation;)V
8: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/sun/tools/javac/comp/Lower$FreeVarCollector;
0 9 1 tree Lcom/sun/tools/javac/tree/JCTree$JCMethodInvocation;
2 7 2 constructor Lcom/sun/tools/javac/code/Symbol;
3 7 3 c Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
MethodParameters:
Name Flags
tree
}
SourceFile: "Lower.java"
NestHost: com.sun.tools.javac.comp.Lower
InnerClasses:
public final Kind = com.sun.tools.javac.code.Kinds$Kind of com.sun.tools.javac.code.Kinds
public ClassSymbol = com.sun.tools.javac.code.Symbol$ClassSymbol of com.sun.tools.javac.code.Symbol
public VarSymbol = com.sun.tools.javac.code.Symbol$VarSymbol of com.sun.tools.javac.code.Symbol
abstract BasicFreeVarCollector = com.sun.tools.javac.comp.Lower$BasicFreeVarCollector of com.sun.tools.javac.comp.Lower
FreeVarCollector = com.sun.tools.javac.comp.Lower$FreeVarCollector of com.sun.tools.javac.comp.Lower
public abstract JCExpression = com.sun.tools.javac.tree.JCTree$JCExpression of com.sun.tools.javac.tree.JCTree
public JCFieldAccess = com.sun.tools.javac.tree.JCTree$JCFieldAccess of com.sun.tools.javac.tree.JCTree
public JCMethodInvocation = com.sun.tools.javac.tree.JCTree$JCMethodInvocation of com.sun.tools.javac.tree.JCTree
public JCNewClass = com.sun.tools.javac.tree.JCTree$JCNewClass of com.sun.tools.javac.tree.JCTree
public final Tag = com.sun.tools.javac.tree.JCTree$Tag of com.sun.tools.javac.tree.JCTree