final class com.sun.tools.javac.comp.TypeEnter$PermitsPhase extends com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: com.sun.tools.javac.comp.TypeEnter$PermitsPhase
super_class: com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase
{
final com.sun.tools.javac.comp.TypeEnter this$0;
descriptor: Lcom/sun/tools/javac/comp/TypeEnter;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
public void <init>(com.sun.tools.javac.comp.TypeEnter);
descriptor: (Lcom/sun/tools/javac/comp/TypeEnter;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=2, args_size=2
start local 0 // com.sun.tools.javac.comp.TypeEnter$PermitsPhase this
0: .line 827
aload 0 /* this */
aload 1
putfield com.sun.tools.javac.comp.TypeEnter$PermitsPhase.this$0:Lcom/sun/tools/javac/comp/TypeEnter;
1: .line 828
aload 0 /* this */
aload 1
getstatic com.sun.tools.javac.util.Dependencies$CompletionCause.HIERARCHY_PHASE:Lcom/sun/tools/javac/util/Dependencies$CompletionCause;
new com.sun.tools.javac.comp.TypeEnter$HeaderPhase
dup
aload 1
invokespecial com.sun.tools.javac.comp.TypeEnter$HeaderPhase.<init>:(Lcom/sun/tools/javac/comp/TypeEnter;)V
invokespecial com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase.<init>:(Lcom/sun/tools/javac/comp/TypeEnter;Lcom/sun/tools/javac/util/Dependencies$CompletionCause;Lcom/sun/tools/javac/comp/TypeEnter$Phase;)V
2: .line 829
return
end local 0 // com.sun.tools.javac.comp.TypeEnter$PermitsPhase this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/sun/tools/javac/comp/TypeEnter$PermitsPhase;
MethodParameters:
Name Flags
this$0 final
protected void runPhase(com.sun.tools.javac.comp.Env<com.sun.tools.javac.comp.AttrContext>);
descriptor: (Lcom/sun/tools/javac/comp/Env;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=7, args_size=2
start local 0 // com.sun.tools.javac.comp.TypeEnter$PermitsPhase this
start local 1 // com.sun.tools.javac.comp.Env env
0: .line 833
aload 1 /* env */
getfield com.sun.tools.javac.comp.Env.enclClass:Lcom/sun/tools/javac/tree/JCTree$JCClassDecl;
astore 2 /* tree */
start local 2 // com.sun.tools.javac.tree.JCTree$JCClassDecl tree
1: .line 834
aload 2 /* tree */
getfield com.sun.tools.javac.tree.JCTree$JCClassDecl.sym:Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
invokevirtual com.sun.tools.javac.code.Symbol$ClassSymbol.isAnonymous:()Z
ifeq 2
aload 2 /* tree */
getfield com.sun.tools.javac.tree.JCTree$JCClassDecl.sym:Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
invokevirtual com.sun.tools.javac.code.Symbol$ClassSymbol.isEnum:()Z
ifeq 13
2: .line 835
StackMap locals: com.sun.tools.javac.tree.JCTree$JCClassDecl
StackMap stack:
aload 0 /* this */
getfield com.sun.tools.javac.comp.TypeEnter$PermitsPhase.this$0:Lcom/sun/tools/javac/comp/TypeEnter;
getfield com.sun.tools.javac.comp.TypeEnter.types:Lcom/sun/tools/javac/code/Types;
aload 2 /* tree */
getfield com.sun.tools.javac.tree.JCTree$JCClassDecl.sym:Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
getfield com.sun.tools.javac.code.Symbol$ClassSymbol.type:Lcom/sun/tools/javac/code/Type;
invokevirtual com.sun.tools.javac.code.Types.directSupertypes:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/util/List;
invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 12
StackMap locals: com.sun.tools.javac.comp.TypeEnter$PermitsPhase com.sun.tools.javac.comp.Env com.sun.tools.javac.tree.JCTree$JCClassDecl top java.util.Iterator
StackMap stack:
3: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.sun.tools.javac.code.Type
astore 3 /* supertype */
start local 3 // com.sun.tools.javac.code.Type supertype
4: .line 836
aload 3 /* supertype */
getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
getfield com.sun.tools.javac.code.Symbol$TypeSymbol.kind:Lcom/sun/tools/javac/code/Kinds$Kind;
getstatic com.sun.tools.javac.code.Kinds$Kind.TYP:Lcom/sun/tools/javac/code/Kinds$Kind;
if_acmpne 12
5: .line 837
aload 3 /* supertype */
getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
checkcast com.sun.tools.javac.code.Symbol$ClassSymbol
astore 5 /* supClass */
start local 5 // com.sun.tools.javac.code.Symbol$ClassSymbol supClass
6: .line 838
aload 0 /* this */
getfield com.sun.tools.javac.comp.TypeEnter$PermitsPhase.this$0:Lcom/sun/tools/javac/comp/TypeEnter;
getfield com.sun.tools.javac.comp.TypeEnter.enter:Lcom/sun/tools/javac/comp/Enter;
aload 5 /* supClass */
invokevirtual com.sun.tools.javac.comp.Enter.getEnv:(Lcom/sun/tools/javac/code/Symbol$TypeSymbol;)Lcom/sun/tools/javac/comp/Env;
astore 6 /* supClassEnv */
start local 6 // com.sun.tools.javac.comp.Env supClassEnv
7: .line 839
aload 5 /* supClass */
invokevirtual com.sun.tools.javac.code.Symbol$ClassSymbol.isSealed:()Z
ifeq 12
8: .line 840
aload 5 /* supClass */
getfield com.sun.tools.javac.code.Symbol$ClassSymbol.isPermittedExplicit:Z
ifne 12
9: .line 841
aload 6 /* supClassEnv */
ifnull 12
10: .line 842
aload 6 /* supClassEnv */
getfield com.sun.tools.javac.comp.Env.toplevel:Lcom/sun/tools/javac/tree/JCTree$JCCompilationUnit;
aload 1 /* env */
getfield com.sun.tools.javac.comp.Env.toplevel:Lcom/sun/tools/javac/tree/JCTree$JCCompilationUnit;
if_acmpne 12
11: .line 843
aload 5 /* supClass */
aload 5 /* supClass */
getfield com.sun.tools.javac.code.Symbol$ClassSymbol.permitted:Lcom/sun/tools/javac/util/List;
aload 2 /* tree */
getfield com.sun.tools.javac.tree.JCTree$JCClassDecl.sym:Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
invokevirtual com.sun.tools.javac.util.List.append:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/List;
putfield com.sun.tools.javac.code.Symbol$ClassSymbol.permitted:Lcom/sun/tools/javac/util/List;
end local 6 // com.sun.tools.javac.comp.Env supClassEnv
end local 5 // com.sun.tools.javac.code.Symbol$ClassSymbol supClass
end local 3 // com.sun.tools.javac.code.Type supertype
12: .line 835
StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
13: .line 848
StackMap locals: com.sun.tools.javac.comp.TypeEnter$PermitsPhase com.sun.tools.javac.comp.Env com.sun.tools.javac.tree.JCTree$JCClassDecl
StackMap stack:
return
end local 2 // com.sun.tools.javac.tree.JCTree$JCClassDecl tree
end local 1 // com.sun.tools.javac.comp.Env env
end local 0 // com.sun.tools.javac.comp.TypeEnter$PermitsPhase this
LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lcom/sun/tools/javac/comp/TypeEnter$PermitsPhase;
0 14 1 env Lcom/sun/tools/javac/comp/Env<Lcom/sun/tools/javac/comp/AttrContext;>;
1 14 2 tree Lcom/sun/tools/javac/tree/JCTree$JCClassDecl;
4 12 3 supertype Lcom/sun/tools/javac/code/Type;
6 12 5 supClass Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
7 12 6 supClassEnv Lcom/sun/tools/javac/comp/Env<Lcom/sun/tools/javac/comp/AttrContext;>;
Signature: (Lcom/sun/tools/javac/comp/Env<Lcom/sun/tools/javac/comp/AttrContext;>;)V
MethodParameters:
Name Flags
env
}
SourceFile: "TypeEnter.java"
NestHost: com.sun.tools.javac.comp.TypeEnter
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 abstract TypeSymbol = com.sun.tools.javac.code.Symbol$TypeSymbol of com.sun.tools.javac.code.Symbol
private abstract AbstractHeaderPhase = com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase of com.sun.tools.javac.comp.TypeEnter
private final HeaderPhase = com.sun.tools.javac.comp.TypeEnter$HeaderPhase of com.sun.tools.javac.comp.TypeEnter
private final PermitsPhase = com.sun.tools.javac.comp.TypeEnter$PermitsPhase of com.sun.tools.javac.comp.TypeEnter
abstract Phase = com.sun.tools.javac.comp.TypeEnter$Phase of com.sun.tools.javac.comp.TypeEnter
public JCClassDecl = com.sun.tools.javac.tree.JCTree$JCClassDecl of com.sun.tools.javac.tree.JCTree
public final CompletionCause = com.sun.tools.javac.util.Dependencies$CompletionCause of com.sun.tools.javac.util.Dependencies