public class org.eclipse.jdt.internal.compiler.ast.ClassLiteralAccess extends org.eclipse.jdt.internal.compiler.ast.Expression
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.eclipse.jdt.internal.compiler.ast.ClassLiteralAccess
super_class: org.eclipse.jdt.internal.compiler.ast.Expression
{
public org.eclipse.jdt.internal.compiler.ast.TypeReference type;
descriptor: Lorg/eclipse/jdt/internal/compiler/ast/TypeReference;
flags: (0x0001) ACC_PUBLIC
public org.eclipse.jdt.internal.compiler.lookup.TypeBinding targetType;
descriptor: Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
flags: (0x0001) ACC_PUBLIC
org.eclipse.jdt.internal.compiler.lookup.FieldBinding syntheticField;
descriptor: Lorg/eclipse/jdt/internal/compiler/lookup/FieldBinding;
flags: (0x0000)
public void <init>(int, org.eclipse.jdt.internal.compiler.ast.TypeReference);
descriptor: (ILorg/eclipse/jdt/internal/compiler/ast/TypeReference;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial org.eclipse.jdt.internal.compiler.ast.Expression.<init>:()V
1: aload 0
aload 2
putfield org.eclipse.jdt.internal.compiler.ast.ClassLiteralAccess.type:Lorg/eclipse/jdt/internal/compiler/ast/TypeReference;
2: aload 2
dup
getfield org.eclipse.jdt.internal.compiler.ast.TypeReference.bits:I
ldc 1073741824
ior
putfield org.eclipse.jdt.internal.compiler.ast.TypeReference.bits:I
3: aload 0
aload 2
getfield org.eclipse.jdt.internal.compiler.ast.TypeReference.sourceStart:I
putfield org.eclipse.jdt.internal.compiler.ast.ClassLiteralAccess.sourceStart:I
4: aload 0
iload 1
putfield org.eclipse.jdt.internal.compiler.ast.ClassLiteralAccess.sourceEnd:I
5: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/eclipse/jdt/internal/compiler/ast/ClassLiteralAccess;
0 6 1 sourceEnd I
0 6 2 type Lorg/eclipse/jdt/internal/compiler/ast/TypeReference;
MethodParameters:
Name Flags
sourceEnd
type
public org.eclipse.jdt.internal.compiler.flow.FlowInfo analyseCode(org.eclipse.jdt.internal.compiler.lookup.BlockScope, org.eclipse.jdt.internal.compiler.flow.FlowContext, org.eclipse.jdt.internal.compiler.flow.FlowInfo);
descriptor: (Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;Lorg/eclipse/jdt/internal/compiler/flow/FlowContext;Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;)Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
invokevirtual org.eclipse.jdt.internal.compiler.lookup.BlockScope.outerMostClassScope:()Lorg/eclipse/jdt/internal/compiler/lookup/ClassScope;
invokevirtual org.eclipse.jdt.internal.compiler.lookup.ClassScope.enclosingSourceType:()Lorg/eclipse/jdt/internal/compiler/lookup/SourceTypeBinding;
astore 4
start local 4 1: aload 4
invokevirtual org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.isInterface:()Z
ifne 5
2: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ClassLiteralAccess.targetType:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.isBaseType:()Z
ifne 5
3: aload 1
invokevirtual org.eclipse.jdt.internal.compiler.lookup.BlockScope.compilerOptions:()Lorg/eclipse/jdt/internal/compiler/impl/CompilerOptions;
getfield org.eclipse.jdt.internal.compiler.impl.CompilerOptions.targetJDK:J
ldc 3211264
lcmp
ifge 5
4: aload 0
aload 4
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ClassLiteralAccess.targetType:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
aload 1
invokevirtual org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.addSyntheticFieldForClassLiteral:(Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;)Lorg/eclipse/jdt/internal/compiler/lookup/FieldBinding;
putfield org.eclipse.jdt.internal.compiler.ast.ClassLiteralAccess.syntheticField:Lorg/eclipse/jdt/internal/compiler/lookup/FieldBinding;
5: StackMap locals: org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding
StackMap stack:
aload 3
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/eclipse/jdt/internal/compiler/ast/ClassLiteralAccess;
0 6 1 currentScope Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
0 6 2 flowContext Lorg/eclipse/jdt/internal/compiler/flow/FlowContext;
0 6 3 flowInfo Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
1 6 4 sourceType Lorg/eclipse/jdt/internal/compiler/lookup/SourceTypeBinding;
MethodParameters:
Name Flags
currentScope
flowContext
flowInfo
public void generateCode(org.eclipse.jdt.internal.compiler.lookup.BlockScope, org.eclipse.jdt.internal.compiler.codegen.CodeStream, boolean);
descriptor: (Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;Lorg/eclipse/jdt/internal/compiler/codegen/CodeStream;Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
getfield org.eclipse.jdt.internal.compiler.codegen.CodeStream.position:I
istore 4
start local 4 1: iload 3
ifeq 4
2: aload 2
aload 1
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ClassLiteralAccess.type:Lorg/eclipse/jdt/internal/compiler/ast/TypeReference;
getfield org.eclipse.jdt.internal.compiler.ast.TypeReference.resolvedType:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ClassLiteralAccess.syntheticField:Lorg/eclipse/jdt/internal/compiler/lookup/FieldBinding;
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.generateClassLiteralAccessForType:(Lorg/eclipse/jdt/internal/compiler/lookup/Scope;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;Lorg/eclipse/jdt/internal/compiler/lookup/FieldBinding;)V
3: aload 2
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ClassLiteralAccess.implicitConversion:I
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.generateImplicitConversion:(I)V
4: StackMap locals: int
StackMap stack:
aload 2
iload 4
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ClassLiteralAccess.sourceStart:I
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.recordPositionsFrom:(II)V
5: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/eclipse/jdt/internal/compiler/ast/ClassLiteralAccess;
0 6 1 currentScope Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
0 6 2 codeStream Lorg/eclipse/jdt/internal/compiler/codegen/CodeStream;
0 6 3 valueRequired Z
1 6 4 pc I
MethodParameters:
Name Flags
currentScope
codeStream
valueRequired
public java.lang.StringBuffer printExpression(int, java.lang.StringBuffer);
descriptor: (ILjava/lang/StringBuffer;)Ljava/lang/StringBuffer;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ClassLiteralAccess.type:Lorg/eclipse/jdt/internal/compiler/ast/TypeReference;
iconst_0
aload 2
invokevirtual org.eclipse.jdt.internal.compiler.ast.TypeReference.print:(ILjava/lang/StringBuffer;)Ljava/lang/StringBuffer;
ldc ".class"
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/eclipse/jdt/internal/compiler/ast/ClassLiteralAccess;
0 1 1 indent I
0 1 2 output Ljava/lang/StringBuffer;
MethodParameters:
Name Flags
indent
output
public org.eclipse.jdt.internal.compiler.lookup.TypeBinding resolveType(org.eclipse.jdt.internal.compiler.lookup.BlockScope);
descriptor: (Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;)Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getstatic org.eclipse.jdt.internal.compiler.impl.Constant.NotAConstant:Lorg/eclipse/jdt/internal/compiler/impl/Constant;
putfield org.eclipse.jdt.internal.compiler.ast.ClassLiteralAccess.constant:Lorg/eclipse/jdt/internal/compiler/impl/Constant;
1: aload 0
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ClassLiteralAccess.type:Lorg/eclipse/jdt/internal/compiler/ast/TypeReference;
aload 1
iconst_1
invokevirtual org.eclipse.jdt.internal.compiler.ast.TypeReference.resolveType:(Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;Z)Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
dup_x1
putfield org.eclipse.jdt.internal.compiler.ast.ClassLiteralAccess.targetType:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
ifnonnull 3
2: aconst_null
areturn
3: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.eclipse.jdt.internal.compiler.lookup.BlockScope.environment:()Lorg/eclipse/jdt/internal/compiler/lookup/LookupEnvironment;
astore 2
start local 2 4: aload 0
aload 2
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ClassLiteralAccess.targetType:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
iconst_1
invokevirtual org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.convertToRawType:(Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;Z)Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
putfield org.eclipse.jdt.internal.compiler.ast.ClassLiteralAccess.targetType:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
5: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ClassLiteralAccess.targetType:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.isArrayType:()Z
ifeq 14
6: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ClassLiteralAccess.targetType:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
checkcast org.eclipse.jdt.internal.compiler.lookup.ArrayBinding
astore 3
start local 3 7: aload 3
getfield org.eclipse.jdt.internal.compiler.lookup.ArrayBinding.leafComponentType:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
astore 4
start local 4 8: aload 4
getstatic org.eclipse.jdt.internal.compiler.lookup.TypeBinding.VOID:Lorg/eclipse/jdt/internal/compiler/lookup/VoidTypeBinding;
if_acmpne 11
9: aload 1
invokevirtual org.eclipse.jdt.internal.compiler.lookup.BlockScope.problemReporter:()Lorg/eclipse/jdt/internal/compiler/problem/ProblemReporter;
aload 0
invokevirtual org.eclipse.jdt.internal.compiler.problem.ProblemReporter.cannotAllocateVoidArray:(Lorg/eclipse/jdt/internal/compiler/ast/Expression;)V
10: aconst_null
areturn
11: StackMap locals: org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment org.eclipse.jdt.internal.compiler.lookup.ArrayBinding org.eclipse.jdt.internal.compiler.lookup.TypeBinding
StackMap stack:
aload 4
invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.isTypeVariable:()Z
ifeq 16
12: aload 1
invokevirtual org.eclipse.jdt.internal.compiler.lookup.BlockScope.problemReporter:()Lorg/eclipse/jdt/internal/compiler/problem/ProblemReporter;
aload 4
checkcast org.eclipse.jdt.internal.compiler.lookup.TypeVariableBinding
aload 0
invokevirtual org.eclipse.jdt.internal.compiler.problem.ProblemReporter.illegalClassLiteralForTypeVariable:(Lorg/eclipse/jdt/internal/compiler/lookup/TypeVariableBinding;Lorg/eclipse/jdt/internal/compiler/ast/ASTNode;)V
end local 4 end local 3 13: goto 16
StackMap locals:
StackMap stack:
14: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ClassLiteralAccess.targetType:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.isTypeVariable:()Z
ifeq 16
15: aload 1
invokevirtual org.eclipse.jdt.internal.compiler.lookup.BlockScope.problemReporter:()Lorg/eclipse/jdt/internal/compiler/problem/ProblemReporter;
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ClassLiteralAccess.targetType:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
checkcast org.eclipse.jdt.internal.compiler.lookup.TypeVariableBinding
aload 0
invokevirtual org.eclipse.jdt.internal.compiler.problem.ProblemReporter.illegalClassLiteralForTypeVariable:(Lorg/eclipse/jdt/internal/compiler/lookup/TypeVariableBinding;Lorg/eclipse/jdt/internal/compiler/ast/ASTNode;)V
16: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.eclipse.jdt.internal.compiler.lookup.BlockScope.getJavaLangClass:()Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;
astore 3
start local 3 17: aload 1
invokevirtual org.eclipse.jdt.internal.compiler.lookup.BlockScope.compilerOptions:()Lorg/eclipse/jdt/internal/compiler/impl/CompilerOptions;
getfield org.eclipse.jdt.internal.compiler.impl.CompilerOptions.sourceLevel:J
ldc 3211264
lcmp
iflt 27
18: aconst_null
astore 4
start local 4 19: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ClassLiteralAccess.targetType:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
getfield org.eclipse.jdt.internal.compiler.lookup.TypeBinding.id:I
bipush 6
if_icmpne 22
20: aload 2
getstatic org.eclipse.jdt.internal.compiler.ast.ClassLiteralAccess.JAVA_LANG_VOID:[[C
aload 1
invokevirtual org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.getResolvedJavaBaseType:([[CLorg/eclipse/jdt/internal/compiler/lookup/Scope;)Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;
astore 4
21: goto 23
22: StackMap locals: org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding org.eclipse.jdt.internal.compiler.lookup.TypeBinding
StackMap stack:
aload 1
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ClassLiteralAccess.targetType:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
invokevirtual org.eclipse.jdt.internal.compiler.lookup.BlockScope.boxing:(Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;)Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
astore 4
23: StackMap locals:
StackMap stack:
aload 2
invokevirtual org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.usesNullTypeAnnotations:()Z
ifeq 25
24: aload 2
aload 4
iconst_1
anewarray org.eclipse.jdt.internal.compiler.lookup.AnnotationBinding
dup
iconst_0
aload 2
invokevirtual org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.getNonNullAnnotation:()Lorg/eclipse/jdt/internal/compiler/lookup/AnnotationBinding;
aastore
invokevirtual org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.createAnnotatedType:(Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;[Lorg/eclipse/jdt/internal/compiler/lookup/AnnotationBinding;)Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
astore 4
25: StackMap locals:
StackMap stack:
aload 0
aload 2
aload 3
iconst_1
anewarray org.eclipse.jdt.internal.compiler.lookup.TypeBinding
dup
iconst_0
aload 4
aastore
aconst_null
invokevirtual org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.createParameterizedType:(Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;[Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;)Lorg/eclipse/jdt/internal/compiler/lookup/ParameterizedTypeBinding;
putfield org.eclipse.jdt.internal.compiler.ast.ClassLiteralAccess.resolvedType:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
end local 4 26: goto 28
27: StackMap locals:
StackMap stack:
aload 0
aload 3
putfield org.eclipse.jdt.internal.compiler.ast.ClassLiteralAccess.resolvedType:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
28: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ClassLiteralAccess.resolvedType:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 29 0 this Lorg/eclipse/jdt/internal/compiler/ast/ClassLiteralAccess;
0 29 1 scope Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
4 29 2 environment Lorg/eclipse/jdt/internal/compiler/lookup/LookupEnvironment;
7 13 3 arrayBinding Lorg/eclipse/jdt/internal/compiler/lookup/ArrayBinding;
8 13 4 leafComponentType Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
17 29 3 classType Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;
19 26 4 boxedType Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
MethodParameters:
Name Flags
scope
public void traverse(org.eclipse.jdt.internal.compiler.ASTVisitor, org.eclipse.jdt.internal.compiler.lookup.BlockScope);
descriptor: (Lorg/eclipse/jdt/internal/compiler/ASTVisitor;Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
aload 0
aload 2
invokevirtual org.eclipse.jdt.internal.compiler.ASTVisitor.visit:(Lorg/eclipse/jdt/internal/compiler/ast/ClassLiteralAccess;Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;)Z
ifeq 2
1: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ClassLiteralAccess.type:Lorg/eclipse/jdt/internal/compiler/ast/TypeReference;
aload 1
aload 2
invokevirtual org.eclipse.jdt.internal.compiler.ast.TypeReference.traverse:(Lorg/eclipse/jdt/internal/compiler/ASTVisitor;Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;)V
2: StackMap locals:
StackMap stack:
aload 1
aload 0
aload 2
invokevirtual org.eclipse.jdt.internal.compiler.ASTVisitor.endVisit:(Lorg/eclipse/jdt/internal/compiler/ast/ClassLiteralAccess;Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;)V
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/eclipse/jdt/internal/compiler/ast/ClassLiteralAccess;
0 4 1 visitor Lorg/eclipse/jdt/internal/compiler/ASTVisitor;
0 4 2 blockScope Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
MethodParameters:
Name Flags
visitor
blockScope
}
SourceFile: "ClassLiteralAccess.java"