public class org.eclipse.jdt.internal.compiler.ast.SwitchStatement 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.SwitchStatement
super_class: org.eclipse.jdt.internal.compiler.ast.Expression
{
public org.eclipse.jdt.internal.compiler.ast.Expression expression;
descriptor: Lorg/eclipse/jdt/internal/compiler/ast/Expression;
flags: (0x0001) ACC_PUBLIC
public org.eclipse.jdt.internal.compiler.ast.Statement[] statements;
descriptor: [Lorg/eclipse/jdt/internal/compiler/ast/Statement;
flags: (0x0001) ACC_PUBLIC
public org.eclipse.jdt.internal.compiler.lookup.BlockScope scope;
descriptor: Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
flags: (0x0001) ACC_PUBLIC
public int explicitDeclarations;
descriptor: I
flags: (0x0001) ACC_PUBLIC
public org.eclipse.jdt.internal.compiler.codegen.BranchLabel breakLabel;
descriptor: Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;
flags: (0x0001) ACC_PUBLIC
public org.eclipse.jdt.internal.compiler.ast.CaseStatement[] cases;
descriptor: [Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
flags: (0x0001) ACC_PUBLIC
public org.eclipse.jdt.internal.compiler.ast.CaseStatement defaultCase;
descriptor: Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
flags: (0x0001) ACC_PUBLIC
public int blockStart;
descriptor: I
flags: (0x0001) ACC_PUBLIC
public int caseCount;
descriptor: I
flags: (0x0001) ACC_PUBLIC
int[] constants;
descriptor: [I
flags: (0x0000)
int[] constMapping;
descriptor: [I
flags: (0x0000)
java.lang.String[] stringConstants;
descriptor: [Ljava/lang/String;
flags: (0x0000)
public boolean switchLabeledRules;
descriptor: Z
flags: (0x0001) ACC_PUBLIC
public int nConstants;
descriptor: I
flags: (0x0001) ACC_PUBLIC
public static final int CASE;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 0
public static final int FALLTHROUGH;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 1
public static final int ESCAPING;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 2
public static final int BREAKING;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 3
private static final char[] SecretStringVariableName;
descriptor: [C
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
public org.eclipse.jdt.internal.compiler.lookup.SyntheticMethodBinding synthetic;
descriptor: Lorg/eclipse/jdt/internal/compiler/lookup/SyntheticMethodBinding;
flags: (0x0001) ACC_PUBLIC
int preSwitchInitStateIndex;
descriptor: I
flags: (0x0000)
int mergedInitStateIndex;
descriptor: I
flags: (0x0000)
org.eclipse.jdt.internal.compiler.ast.CaseStatement[] duplicateCaseStatements;
descriptor: [Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
flags: (0x0000)
int duplicateCaseStatementsCounter;
descriptor: I
flags: (0x0000)
private org.eclipse.jdt.internal.compiler.lookup.LocalVariableBinding dispatchStringCopy;
descriptor: Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc " switchDispatchString"
invokevirtual java.lang.String.toCharArray:()[C
putstatic org.eclipse.jdt.internal.compiler.ast.SwitchStatement.SecretStringVariableName:[C
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokespecial org.eclipse.jdt.internal.compiler.ast.Expression.<init>:()V
1: aload 0
iconst_0
putfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.switchLabeledRules:Z
2: aload 0
iconst_m1
putfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.preSwitchInitStateIndex:I
3: aload 0
iconst_m1
putfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.mergedInitStateIndex:I
4: aload 0
aconst_null
putfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.duplicateCaseStatements:[Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
5: aload 0
iconst_0
putfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.duplicateCaseStatementsCounter:I
6: aload 0
aconst_null
putfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.dispatchStringCopy:Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;
7: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/eclipse/jdt/internal/compiler/ast/SwitchStatement;
protected int getFallThroughState(org.eclipse.jdt.internal.compiler.ast.Statement, org.eclipse.jdt.internal.compiler.lookup.BlockScope);
descriptor: (Lorg/eclipse/jdt/internal/compiler/ast/Statement;Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;)I
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.switchLabeledRules:Z
ifeq 21
1: aload 1
instanceof org.eclipse.jdt.internal.compiler.ast.Expression
ifeq 2
aload 1
checkcast org.eclipse.jdt.internal.compiler.ast.Expression
invokevirtual org.eclipse.jdt.internal.compiler.ast.Expression.isTrulyExpression:()Z
ifne 3
StackMap locals:
StackMap stack:
2: aload 1
instanceof org.eclipse.jdt.internal.compiler.ast.ThrowStatement
ifeq 4
3: StackMap locals:
StackMap stack:
iconst_3
ireturn
4: StackMap locals:
StackMap stack:
aload 1
instanceof org.eclipse.jdt.internal.compiler.ast.Block
ifeq 21
5: aload 1
checkcast org.eclipse.jdt.internal.compiler.ast.Block
astore 3
start local 3 6: aload 3
invokevirtual org.eclipse.jdt.internal.compiler.ast.Block.doesNotCompleteNormally:()Z
ifeq 8
7: iconst_3
ireturn
8: StackMap locals: org.eclipse.jdt.internal.compiler.ast.Block
StackMap stack:
new org.eclipse.jdt.internal.compiler.ast.BreakStatement
dup
aconst_null
aload 3
getfield org.eclipse.jdt.internal.compiler.ast.Block.sourceEnd:I
iconst_1
isub
aload 3
getfield org.eclipse.jdt.internal.compiler.ast.Block.sourceEnd:I
invokespecial org.eclipse.jdt.internal.compiler.ast.BreakStatement.<init>:([CII)V
astore 4
start local 4 9: aload 3
getfield org.eclipse.jdt.internal.compiler.ast.Block.statements:[Lorg/eclipse/jdt/internal/compiler/ast/Statement;
ifnonnull 10
iconst_0
goto 11
StackMap locals: org.eclipse.jdt.internal.compiler.ast.BreakStatement
StackMap stack:
10: aload 3
getfield org.eclipse.jdt.internal.compiler.ast.Block.statements:[Lorg/eclipse/jdt/internal/compiler/ast/Statement;
arraylength
StackMap locals:
StackMap stack: int
11: istore 5
start local 5 12: iload 5
ifne 16
13: aload 3
iconst_1
anewarray org.eclipse.jdt.internal.compiler.ast.Statement
dup
iconst_0
aload 4
aastore
putfield org.eclipse.jdt.internal.compiler.ast.Block.statements:[Lorg/eclipse/jdt/internal/compiler/ast/Statement;
14: aload 3
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
putfield org.eclipse.jdt.internal.compiler.ast.Block.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
15: goto 20
16: StackMap locals: int
StackMap stack:
iload 5
iconst_1
iadd
anewarray org.eclipse.jdt.internal.compiler.ast.Statement
astore 6
start local 6 17: aload 3
getfield org.eclipse.jdt.internal.compiler.ast.Block.statements:[Lorg/eclipse/jdt/internal/compiler/ast/Statement;
iconst_0
aload 6
iconst_0
iload 5
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
18: aload 6
iload 5
aload 4
aastore
19: aload 3
aload 6
putfield org.eclipse.jdt.internal.compiler.ast.Block.statements:[Lorg/eclipse/jdt/internal/compiler/ast/Statement;
end local 6 20: StackMap locals:
StackMap stack:
iconst_3
ireturn
end local 5 end local 4 end local 3 21: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Lorg/eclipse/jdt/internal/compiler/ast/SwitchStatement;
0 22 1 stmt Lorg/eclipse/jdt/internal/compiler/ast/Statement;
0 22 2 blockScope Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
6 21 3 block Lorg/eclipse/jdt/internal/compiler/ast/Block;
9 21 4 breakStatement Lorg/eclipse/jdt/internal/compiler/ast/BreakStatement;
12 21 5 l I
17 20 6 newArray [Lorg/eclipse/jdt/internal/compiler/ast/Statement;
MethodParameters:
Name Flags
stmt
blockScope
protected void completeNormallyCheck(org.eclipse.jdt.internal.compiler.lookup.BlockScope);
descriptor: (Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=0, locals=2, args_size=2
start local 0 start local 1 0: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/eclipse/jdt/internal/compiler/ast/SwitchStatement;
0 1 1 blockScope Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
MethodParameters:
Name Flags
blockScope
protected boolean needToCheckFlowInAbsenceOfDefaultBranch();
descriptor: ()Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/eclipse/jdt/internal/compiler/ast/SwitchStatement;
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=7, locals=17, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.expression:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
aload 1
aload 2
aload 3
invokevirtual org.eclipse.jdt.internal.compiler.ast.Expression.analyseCode:(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;
astore 3
1: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.expression:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
getfield org.eclipse.jdt.internal.compiler.ast.Expression.implicitConversion:I
sipush 1024
iand
ifne 4
2: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.expression:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
getfield org.eclipse.jdt.internal.compiler.ast.Expression.resolvedType:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
ifnull 5
3: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.expression:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
getfield org.eclipse.jdt.internal.compiler.ast.Expression.resolvedType:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
getfield org.eclipse.jdt.internal.compiler.lookup.TypeBinding.id:I
bipush 11
if_icmpeq 4
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.expression:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
getfield org.eclipse.jdt.internal.compiler.ast.Expression.resolvedType:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.isEnum:()Z
ifeq 5
4: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.expression:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
aload 1
aload 2
aload 3
iconst_1
invokevirtual org.eclipse.jdt.internal.compiler.ast.Expression.checkNPE:(Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;Lorg/eclipse/jdt/internal/compiler/flow/FlowContext;Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;I)Z
pop
5: StackMap locals:
StackMap stack:
new org.eclipse.jdt.internal.compiler.flow.SwitchFlowContext
dup
aload 2
aload 0
aload 0
new org.eclipse.jdt.internal.compiler.codegen.BranchLabel
dup
invokespecial org.eclipse.jdt.internal.compiler.codegen.BranchLabel.<init>:()V
dup_x1
putfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.breakLabel:Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;
iconst_1
iconst_1
invokespecial org.eclipse.jdt.internal.compiler.flow.SwitchFlowContext.<init>:(Lorg/eclipse/jdt/internal/compiler/flow/FlowContext;Lorg/eclipse/jdt/internal/compiler/ast/ASTNode;Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;ZZ)V
6: astore 4
start local 4 7: aload 4
aload 0
instanceof org.eclipse.jdt.internal.compiler.ast.SwitchExpression
putfield org.eclipse.jdt.internal.compiler.flow.SwitchFlowContext.isExpression:Z
8: getstatic org.eclipse.jdt.internal.compiler.flow.FlowInfo.DEAD_END:Lorg/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo;
astore 5
start local 5 9: aload 0
aload 1
invokevirtual org.eclipse.jdt.internal.compiler.lookup.BlockScope.methodScope:()Lorg/eclipse/jdt/internal/compiler/lookup/MethodScope;
aload 3
invokevirtual org.eclipse.jdt.internal.compiler.lookup.MethodScope.recordInitializationStates:(Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;)I
putfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.preSwitchInitStateIndex:I
10: iconst_0
istore 6
start local 6 11: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.statements:[Lorg/eclipse/jdt/internal/compiler/ast/Statement;
ifnull 57
12: aload 3
invokevirtual org.eclipse.jdt.internal.compiler.flow.FlowInfo.reachMode:()I
iconst_3
iand
ifeq 13
iconst_1
goto 14
StackMap locals: org.eclipse.jdt.internal.compiler.flow.SwitchFlowContext org.eclipse.jdt.internal.compiler.flow.FlowInfo int
StackMap stack:
13: iconst_0
StackMap locals:
StackMap stack: int
14: istore 7
start local 7 15: iload 7
istore 8
start local 8 16: iconst_0
istore 9
start local 9 17: iconst_0
istore 10
start local 10 18: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.statements:[Lorg/eclipse/jdt/internal/compiler/ast/Statement;
arraylength
istore 11
start local 11 19: goto 55
20: StackMap locals: org.eclipse.jdt.internal.compiler.ast.SwitchStatement org.eclipse.jdt.internal.compiler.lookup.BlockScope org.eclipse.jdt.internal.compiler.flow.FlowContext org.eclipse.jdt.internal.compiler.flow.FlowInfo org.eclipse.jdt.internal.compiler.flow.SwitchFlowContext org.eclipse.jdt.internal.compiler.flow.FlowInfo int int int int int int
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.statements:[Lorg/eclipse/jdt/internal/compiler/ast/Statement;
iload 10
aaload
astore 12
start local 12 21: iload 6
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.caseCount:I
if_icmpge 31
aload 12
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.cases:[Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
iload 6
aaload
if_acmpne 31
22: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.cases:[Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
iload 6
aaload
putfield org.eclipse.jdt.internal.compiler.lookup.BlockScope.enclosingCase:Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
23: iinc 6 1
24: iload 9
iconst_1
if_icmpne 27
25: aload 12
getfield org.eclipse.jdt.internal.compiler.ast.Statement.bits:I
ldc 536870912
iand
ifne 27
26: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
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.SwitchStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
getfield org.eclipse.jdt.internal.compiler.lookup.BlockScope.enclosingCase:Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
invokevirtual org.eclipse.jdt.internal.compiler.problem.ProblemReporter.possibleFallThroughCase:(Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;)V
27: StackMap locals: org.eclipse.jdt.internal.compiler.ast.Statement
StackMap stack:
aload 5
aload 3
invokevirtual org.eclipse.jdt.internal.compiler.flow.FlowInfo.unconditionalInits:()Lorg/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo;
invokevirtual org.eclipse.jdt.internal.compiler.flow.FlowInfo.mergedWith:(Lorg/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo;)Lorg/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo;
astore 5
28: iload 7
istore 8
29: iconst_0
istore 9
30: goto 49
StackMap locals:
StackMap stack:
31: aload 12
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.defaultCase:Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
if_acmpne 40
32: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.defaultCase:Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
putfield org.eclipse.jdt.internal.compiler.lookup.BlockScope.enclosingCase:Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
33: iload 9
iconst_1
if_icmpne 36
34: aload 12
getfield org.eclipse.jdt.internal.compiler.ast.Statement.bits:I
ldc 536870912
iand
ifne 36
35: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
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.SwitchStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
getfield org.eclipse.jdt.internal.compiler.lookup.BlockScope.enclosingCase:Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
invokevirtual org.eclipse.jdt.internal.compiler.problem.ProblemReporter.possibleFallThroughCase:(Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;)V
36: StackMap locals:
StackMap stack:
aload 5
aload 3
invokevirtual org.eclipse.jdt.internal.compiler.flow.FlowInfo.unconditionalInits:()Lorg/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo;
invokevirtual org.eclipse.jdt.internal.compiler.flow.FlowInfo.mergedWith:(Lorg/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo;)Lorg/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo;
astore 5
37: iload 7
istore 8
38: iconst_0
istore 9
39: goto 49
40: StackMap locals:
StackMap stack:
aload 0
instanceof org.eclipse.jdt.internal.compiler.ast.SwitchExpression
ifne 48
41: 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.complianceLevel:J
ldc 3735552
lcmp
iflt 48
42: aload 12
instanceof org.eclipse.jdt.internal.compiler.ast.YieldStatement
ifeq 48
43: aload 12
checkcast org.eclipse.jdt.internal.compiler.ast.YieldStatement
getfield org.eclipse.jdt.internal.compiler.ast.YieldStatement.isImplicit:Z
ifeq 48
44: aload 12
checkcast org.eclipse.jdt.internal.compiler.ast.YieldStatement
astore 13
start local 13 45: aload 12
checkcast org.eclipse.jdt.internal.compiler.ast.YieldStatement
getfield org.eclipse.jdt.internal.compiler.ast.YieldStatement.expression:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
astore 14
start local 14 46: aload 13
getfield org.eclipse.jdt.internal.compiler.ast.YieldStatement.expression:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
invokevirtual org.eclipse.jdt.internal.compiler.ast.Expression.statementExpression:()Z
ifne 48
47: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
invokevirtual org.eclipse.jdt.internal.compiler.lookup.BlockScope.problemReporter:()Lorg/eclipse/jdt/internal/compiler/problem/ProblemReporter;
aload 14
invokevirtual org.eclipse.jdt.internal.compiler.problem.ProblemReporter.invalidExpressionAsStatement:(Lorg/eclipse/jdt/internal/compiler/ast/Expression;)V
end local 14 end local 13 48: StackMap locals:
StackMap stack:
aload 0
aload 12
aload 1
invokevirtual org.eclipse.jdt.internal.compiler.ast.SwitchStatement.getFallThroughState:(Lorg/eclipse/jdt/internal/compiler/ast/Statement;Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;)I
istore 9
49: StackMap locals:
StackMap stack:
aload 12
aload 5
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
iload 8
iconst_1
invokevirtual org.eclipse.jdt.internal.compiler.ast.Statement.complainIfUnreachable:(Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;IZ)I
dup
istore 8
iconst_2
if_icmpge 54
50: aload 12
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
aload 4
aload 5
invokevirtual org.eclipse.jdt.internal.compiler.ast.Statement.analyseCode:(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;
astore 5
51: aload 5
getstatic org.eclipse.jdt.internal.compiler.flow.FlowInfo.DEAD_END:Lorg/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo;
if_acmpne 53
52: iconst_2
istore 9
53: StackMap locals:
StackMap stack:
aload 4
invokevirtual org.eclipse.jdt.internal.compiler.flow.SwitchFlowContext.expireNullCheckedFieldInfo:()V
end local 12 54: StackMap locals:
StackMap stack:
iinc 10 1
StackMap locals:
StackMap stack:
55: iload 10
iload 11
if_icmplt 20
end local 11 end local 10 56: aload 0
aload 1
invokevirtual org.eclipse.jdt.internal.compiler.ast.SwitchStatement.completeNormallyCheck:(Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;)V
end local 9 end local 8 end local 7 57: StackMap locals: org.eclipse.jdt.internal.compiler.ast.SwitchStatement org.eclipse.jdt.internal.compiler.lookup.BlockScope org.eclipse.jdt.internal.compiler.flow.FlowContext org.eclipse.jdt.internal.compiler.flow.FlowInfo org.eclipse.jdt.internal.compiler.flow.SwitchFlowContext org.eclipse.jdt.internal.compiler.flow.FlowInfo int
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.expression:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
getfield org.eclipse.jdt.internal.compiler.ast.Expression.resolvedType:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
astore 7
start local 7 58: aload 7
invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.isEnum:()Z
ifeq 61
59: aload 1
invokevirtual org.eclipse.jdt.internal.compiler.lookup.BlockScope.classScope:()Lorg/eclipse/jdt/internal/compiler/lookup/ClassScope;
getfield org.eclipse.jdt.internal.compiler.lookup.ClassScope.referenceContext:Lorg/eclipse/jdt/internal/compiler/ast/TypeDeclaration;
getfield org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.binding:Lorg/eclipse/jdt/internal/compiler/lookup/SourceTypeBinding;
astore 8
start local 8 60: aload 0
aload 8
aload 7
aload 0
invokevirtual org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.addSyntheticMethodForSwitchEnum:(Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;Lorg/eclipse/jdt/internal/compiler/ast/SwitchStatement;)Lorg/eclipse/jdt/internal/compiler/lookup/SyntheticMethodBinding;
putfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.synthetic:Lorg/eclipse/jdt/internal/compiler/lookup/SyntheticMethodBinding;
end local 8 61: StackMap locals: org.eclipse.jdt.internal.compiler.lookup.TypeBinding
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.defaultCase:Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
ifnonnull 67
aload 0
invokevirtual org.eclipse.jdt.internal.compiler.ast.SwitchStatement.needToCheckFlowInAbsenceOfDefaultBranch:()Z
ifeq 67
62: aload 3
aload 5
aload 4
getfield org.eclipse.jdt.internal.compiler.flow.SwitchFlowContext.initsOnBreak:Lorg/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo;
invokevirtual org.eclipse.jdt.internal.compiler.flow.FlowInfo.mergedWith:(Lorg/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo;)Lorg/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo;
invokevirtual org.eclipse.jdt.internal.compiler.flow.FlowInfo.addPotentialInitializationsFrom:(Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;)Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
pop
63: aload 0
aload 1
invokevirtual org.eclipse.jdt.internal.compiler.lookup.BlockScope.methodScope:()Lorg/eclipse/jdt/internal/compiler/lookup/MethodScope;
aload 3
invokevirtual org.eclipse.jdt.internal.compiler.lookup.MethodScope.recordInitializationStates:(Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;)I
putfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.mergedInitStateIndex:I
64: aload 3
astore 16
65: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
ifnull 66
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
aconst_null
putfield org.eclipse.jdt.internal.compiler.lookup.BlockScope.enclosingCase:Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
66: StackMap locals: org.eclipse.jdt.internal.compiler.ast.SwitchStatement org.eclipse.jdt.internal.compiler.lookup.BlockScope org.eclipse.jdt.internal.compiler.flow.FlowContext org.eclipse.jdt.internal.compiler.flow.FlowInfo org.eclipse.jdt.internal.compiler.flow.SwitchFlowContext org.eclipse.jdt.internal.compiler.flow.FlowInfo int org.eclipse.jdt.internal.compiler.lookup.TypeBinding top top top top top top top top org.eclipse.jdt.internal.compiler.flow.FlowInfo
StackMap stack:
aload 16
areturn
67: StackMap locals: org.eclipse.jdt.internal.compiler.ast.SwitchStatement org.eclipse.jdt.internal.compiler.lookup.BlockScope org.eclipse.jdt.internal.compiler.flow.FlowContext org.eclipse.jdt.internal.compiler.flow.FlowInfo org.eclipse.jdt.internal.compiler.flow.SwitchFlowContext org.eclipse.jdt.internal.compiler.flow.FlowInfo int org.eclipse.jdt.internal.compiler.lookup.TypeBinding
StackMap stack:
aload 5
aload 4
getfield org.eclipse.jdt.internal.compiler.flow.SwitchFlowContext.initsOnBreak:Lorg/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo;
invokevirtual org.eclipse.jdt.internal.compiler.flow.FlowInfo.mergedWith:(Lorg/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo;)Lorg/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo;
astore 8
start local 8 68: aload 0
69: aload 1
invokevirtual org.eclipse.jdt.internal.compiler.lookup.BlockScope.methodScope:()Lorg/eclipse/jdt/internal/compiler/lookup/MethodScope;
aload 8
invokevirtual org.eclipse.jdt.internal.compiler.lookup.MethodScope.recordInitializationStates:(Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;)I
70: putfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.mergedInitStateIndex:I
71: aload 8
astore 16
72: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
ifnull 73
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
aconst_null
putfield org.eclipse.jdt.internal.compiler.lookup.BlockScope.enclosingCase:Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
73: StackMap locals: org.eclipse.jdt.internal.compiler.ast.SwitchStatement org.eclipse.jdt.internal.compiler.lookup.BlockScope org.eclipse.jdt.internal.compiler.flow.FlowContext org.eclipse.jdt.internal.compiler.flow.FlowInfo org.eclipse.jdt.internal.compiler.flow.SwitchFlowContext org.eclipse.jdt.internal.compiler.flow.FlowInfo int org.eclipse.jdt.internal.compiler.lookup.TypeBinding org.eclipse.jdt.internal.compiler.flow.FlowInfo top top top top top top top org.eclipse.jdt.internal.compiler.flow.FlowInfo
StackMap stack:
aload 16
areturn
end local 8 end local 7 end local 6 end local 5 end local 4 74: StackMap locals: org.eclipse.jdt.internal.compiler.ast.SwitchStatement org.eclipse.jdt.internal.compiler.lookup.BlockScope org.eclipse.jdt.internal.compiler.flow.FlowContext org.eclipse.jdt.internal.compiler.flow.FlowInfo
StackMap stack: java.lang.Throwable
astore 15
75: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
ifnull 76
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
aconst_null
putfield org.eclipse.jdt.internal.compiler.lookup.BlockScope.enclosingCase:Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
76: StackMap locals: org.eclipse.jdt.internal.compiler.ast.SwitchStatement org.eclipse.jdt.internal.compiler.lookup.BlockScope org.eclipse.jdt.internal.compiler.flow.FlowContext org.eclipse.jdt.internal.compiler.flow.FlowInfo top top top top top top top top top top top java.lang.Throwable
StackMap stack:
aload 15
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 77 0 this Lorg/eclipse/jdt/internal/compiler/ast/SwitchStatement;
0 77 1 currentScope Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
0 77 2 flowContext Lorg/eclipse/jdt/internal/compiler/flow/FlowContext;
0 77 3 flowInfo Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
7 74 4 switchContext Lorg/eclipse/jdt/internal/compiler/flow/SwitchFlowContext;
9 74 5 caseInits Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
11 74 6 caseIndex I
15 57 7 initialComplaintLevel I
16 57 8 complaintLevel I
17 57 9 fallThroughState I
18 56 10 i I
19 56 11 max I
21 54 12 statement Lorg/eclipse/jdt/internal/compiler/ast/Statement;
45 48 13 y Lorg/eclipse/jdt/internal/compiler/ast/YieldStatement;
46 48 14 e Lorg/eclipse/jdt/internal/compiler/ast/Expression;
58 74 7 resolvedTypeBinding Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
60 61 8 sourceTypeBinding Lorg/eclipse/jdt/internal/compiler/lookup/SourceTypeBinding;
68 74 8 mergedInfo Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
Exception table:
from to target type
0 65 74 any
67 72 74 any
MethodParameters:
Name Flags
currentScope
flowContext
flowInfo
public void generateCodeForStringSwitch(org.eclipse.jdt.internal.compiler.lookup.BlockScope, org.eclipse.jdt.internal.compiler.codegen.CodeStream);
descriptor: (Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;Lorg/eclipse/jdt/internal/compiler/codegen/CodeStream;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=10, locals=19, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.bits:I
ldc -2147483648
iand
ifne 3
1: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
ifnull 2
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
aconst_null
putfield org.eclipse.jdt.internal.compiler.lookup.BlockScope.enclosingCase:Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
2: StackMap locals:
StackMap stack:
return
3: StackMap locals:
StackMap stack:
aload 2
getfield org.eclipse.jdt.internal.compiler.codegen.CodeStream.position:I
istore 3
start local 3 4: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.caseCount:I
ifeq 5
iconst_1
goto 6
StackMap locals: int
StackMap stack:
5: iconst_0
StackMap locals:
StackMap stack: int
6: istore 4
start local 4 7: iload 4
ifeq 8
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.stringConstants:[Ljava/lang/String;
arraylength
goto 9
StackMap locals: int
StackMap stack:
8: iconst_0
StackMap locals:
StackMap stack: int
9: istore 5
start local 5 10: 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.complianceLevel:J
ldc 3670016
lcmp
iflt 34
11: iconst_0
istore 7
start local 7 12: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.caseCount:I
istore 8
start local 8 13: goto 17
14: StackMap locals: org.eclipse.jdt.internal.compiler.ast.SwitchStatement org.eclipse.jdt.internal.compiler.lookup.BlockScope org.eclipse.jdt.internal.compiler.codegen.CodeStream int int int top int int
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.cases:[Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
iload 7
aaload
getfield org.eclipse.jdt.internal.compiler.ast.CaseStatement.constantExpressions:[Lorg/eclipse/jdt/internal/compiler/ast/Expression;
arraylength
istore 9
start local 9 15: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.cases:[Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
iload 7
aaload
iload 9
anewarray org.eclipse.jdt.internal.compiler.codegen.BranchLabel
putfield org.eclipse.jdt.internal.compiler.ast.CaseStatement.targetLabels:[Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;
end local 9 16: iinc 7 1
StackMap locals:
StackMap stack:
17: iload 7
iload 8
if_icmplt 14
end local 8 end local 7 18: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.nConstants:I
anewarray org.eclipse.jdt.internal.compiler.codegen.BranchLabel
astore 6
start local 6 19: iconst_0
istore 7
start local 7 20: iconst_0
istore 8
start local 8 21: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.caseCount:I
istore 9
start local 9 22: goto 32
23: StackMap locals: org.eclipse.jdt.internal.compiler.ast.SwitchStatement org.eclipse.jdt.internal.compiler.lookup.BlockScope org.eclipse.jdt.internal.compiler.codegen.CodeStream int int int org.eclipse.jdt.internal.compiler.codegen.BranchLabel[] int int int
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.cases:[Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
iload 8
aaload
astore 10
start local 10 24: iconst_0
istore 11
start local 11 25: aload 10
getfield org.eclipse.jdt.internal.compiler.ast.CaseStatement.constantExpressions:[Lorg/eclipse/jdt/internal/compiler/ast/Expression;
arraylength
istore 12
start local 12 26: goto 30
27: StackMap locals: org.eclipse.jdt.internal.compiler.ast.CaseStatement int int
StackMap stack:
aload 10
getfield org.eclipse.jdt.internal.compiler.ast.CaseStatement.targetLabels:[Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;
iload 11
aload 6
iload 7
new org.eclipse.jdt.internal.compiler.codegen.BranchLabel
dup
aload 2
invokespecial org.eclipse.jdt.internal.compiler.codegen.BranchLabel.<init>:(Lorg/eclipse/jdt/internal/compiler/codegen/CodeStream;)V
dup_x2
aastore
aastore
28: aload 6
iload 7
iinc 7 1
aaload
dup
getfield org.eclipse.jdt.internal.compiler.codegen.BranchLabel.tagBits:I
iconst_2
ior
putfield org.eclipse.jdt.internal.compiler.codegen.BranchLabel.tagBits:I
29: iinc 11 1
StackMap locals:
StackMap stack:
30: iload 11
iload 12
if_icmplt 27
end local 12 end local 11 end local 10 31: iinc 8 1
StackMap locals:
StackMap stack:
32: iload 8
iload 9
if_icmplt 23
end local 9 end local 8 end local 7 33: goto 42
end local 6 34: StackMap locals: org.eclipse.jdt.internal.compiler.ast.SwitchStatement org.eclipse.jdt.internal.compiler.lookup.BlockScope org.eclipse.jdt.internal.compiler.codegen.CodeStream int int int
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.caseCount:I
anewarray org.eclipse.jdt.internal.compiler.codegen.BranchLabel
astore 6
start local 6 35: iconst_0
istore 7
start local 7 36: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.caseCount:I
istore 8
start local 8 37: goto 41
38: StackMap locals: org.eclipse.jdt.internal.compiler.codegen.BranchLabel[] int int
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.cases:[Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
iload 7
aaload
aload 6
iload 7
new org.eclipse.jdt.internal.compiler.codegen.BranchLabel
dup
aload 2
invokespecial org.eclipse.jdt.internal.compiler.codegen.BranchLabel.<init>:(Lorg/eclipse/jdt/internal/compiler/codegen/CodeStream;)V
dup_x2
aastore
putfield org.eclipse.jdt.internal.compiler.ast.CaseStatement.targetLabel:Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;
39: aload 6
iload 7
aaload
dup
getfield org.eclipse.jdt.internal.compiler.codegen.BranchLabel.tagBits:I
iconst_2
ior
putfield org.eclipse.jdt.internal.compiler.codegen.BranchLabel.tagBits:I
40: iinc 7 1
StackMap locals:
StackMap stack:
41: iload 7
iload 8
if_icmplt 38
end local 8 end local 7 42: StackMap locals:
StackMap stack:
iload 5
anewarray org.eclipse.jdt.internal.compiler.ast.SwitchStatement$1StringSwitchCase
astore 7
start local 7 43: iload 5
anewarray org.eclipse.jdt.internal.compiler.codegen.CaseLabel
astore 8
start local 8 44: aload 0
iload 5
newarray 10
putfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.constants:[I
45: iconst_0
istore 9
start local 9 46: goto 51
47: StackMap locals: org.eclipse.jdt.internal.compiler.ast.SwitchStatement$1StringSwitchCase[] org.eclipse.jdt.internal.compiler.codegen.CaseLabel[] int
StackMap stack:
aload 7
iload 9
new org.eclipse.jdt.internal.compiler.ast.SwitchStatement$1StringSwitchCase
dup
aload 0
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.stringConstants:[Ljava/lang/String;
iload 9
aaload
invokevirtual java.lang.String.hashCode:()I
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.stringConstants:[Ljava/lang/String;
iload 9
aaload
aload 6
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.constMapping:[I
iload 9
iaload
aaload
invokespecial org.eclipse.jdt.internal.compiler.ast.SwitchStatement$1StringSwitchCase.<init>:(Lorg/eclipse/jdt/internal/compiler/ast/SwitchStatement;ILjava/lang/String;Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;)V
aastore
48: aload 8
iload 9
new org.eclipse.jdt.internal.compiler.codegen.CaseLabel
dup
aload 2
invokespecial org.eclipse.jdt.internal.compiler.codegen.CaseLabel.<init>:(Lorg/eclipse/jdt/internal/compiler/codegen/CodeStream;)V
aastore
49: aload 8
iload 9
aaload
dup
getfield org.eclipse.jdt.internal.compiler.codegen.CaseLabel.tagBits:I
iconst_2
ior
putfield org.eclipse.jdt.internal.compiler.codegen.CaseLabel.tagBits:I
50: iinc 9 1
StackMap locals:
StackMap stack:
51: iload 9
iload 5
if_icmplt 47
end local 9 52: aload 7
invokestatic java.util.Arrays.sort:([Ljava/lang/Object;)V
53: iconst_0
istore 9
start local 9 54: iconst_0
istore 10
start local 10 55: iconst_0
istore 11
start local 11 56: iload 5
istore 12
start local 12 57: goto 62
58: StackMap locals: int int int
StackMap stack:
aload 7
iload 11
aaload
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement$1StringSwitchCase.hashCode:I
istore 13
start local 13 59: iload 11
ifeq 60
iload 13
iload 10
if_icmpeq 61
60: StackMap locals: int
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.constants:[I
iload 9
iinc 9 1
iload 13
dup_x2
iastore
istore 10
end local 13 61: StackMap locals:
StackMap stack:
iinc 11 1
StackMap locals:
StackMap stack:
62: iload 11
iload 12
if_icmplt 58
end local 12 end local 11 63: iload 9
iload 5
if_icmpeq 66
64: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.constants:[I
iconst_0
aload 0
iload 9
newarray 10
dup_x1
putfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.constants:[I
iconst_0
iload 9
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
65: aload 8
iconst_0
iload 9
anewarray org.eclipse.jdt.internal.compiler.codegen.CaseLabel
dup
astore 8
iconst_0
iload 9
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
66: StackMap locals:
StackMap stack:
iload 9
newarray 10
astore 11
start local 11 67: iconst_0
istore 12
start local 12 68: goto 71
69: StackMap locals: int[] int
StackMap stack:
aload 11
iload 12
iload 12
iastore
70: iinc 12 1
StackMap locals:
StackMap stack:
71: iload 12
iload 9
if_icmplt 69
end local 12 72: new org.eclipse.jdt.internal.compiler.codegen.CaseLabel
dup
aload 2
invokespecial org.eclipse.jdt.internal.compiler.codegen.CaseLabel.<init>:(Lorg/eclipse/jdt/internal/compiler/codegen/CodeStream;)V
astore 12
start local 12 73: aload 12
dup
getfield org.eclipse.jdt.internal.compiler.codegen.CaseLabel.tagBits:I
iconst_2
ior
putfield org.eclipse.jdt.internal.compiler.codegen.CaseLabel.tagBits:I
74: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.breakLabel:Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;
aload 2
invokevirtual org.eclipse.jdt.internal.compiler.codegen.BranchLabel.initialize:(Lorg/eclipse/jdt/internal/compiler/codegen/CodeStream;)V
75: new org.eclipse.jdt.internal.compiler.codegen.BranchLabel
dup
aload 2
invokespecial org.eclipse.jdt.internal.compiler.codegen.BranchLabel.<init>:(Lorg/eclipse/jdt/internal/compiler/codegen/CodeStream;)V
astore 13
start local 13 76: iload 4
ifeq 77
aload 13
dup
getfield org.eclipse.jdt.internal.compiler.codegen.BranchLabel.tagBits:I
iconst_2
ior
putfield org.eclipse.jdt.internal.compiler.codegen.BranchLabel.tagBits:I
77: StackMap locals: org.eclipse.jdt.internal.compiler.ast.SwitchStatement org.eclipse.jdt.internal.compiler.lookup.BlockScope org.eclipse.jdt.internal.compiler.codegen.CodeStream int int int org.eclipse.jdt.internal.compiler.codegen.BranchLabel[] org.eclipse.jdt.internal.compiler.ast.SwitchStatement$1StringSwitchCase[] org.eclipse.jdt.internal.compiler.codegen.CaseLabel[] int int int[] org.eclipse.jdt.internal.compiler.codegen.CaseLabel org.eclipse.jdt.internal.compiler.codegen.BranchLabel
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.defaultCase:Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
ifnull 79
78: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.defaultCase:Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
aload 13
putfield org.eclipse.jdt.internal.compiler.ast.CaseStatement.targetLabel:Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;
79: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.expression:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
aload 1
aload 2
iconst_1
invokevirtual org.eclipse.jdt.internal.compiler.ast.Expression.generateCode:(Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;Lorg/eclipse/jdt/internal/compiler/codegen/CodeStream;Z)V
80: aload 2
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.dispatchStringCopy:Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;
iconst_1
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.store:(Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;Z)V
81: aload 2
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.dispatchStringCopy:Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.addVariable:(Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;)V
82: aload 2
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.invokeStringHashCode:()V
83: iload 4
ifeq 103
84: aload 2
aload 12
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.constants:[I
aload 11
aload 8
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.lookupswitch:(Lorg/eclipse/jdt/internal/compiler/codegen/CaseLabel;[I[I[Lorg/eclipse/jdt/internal/compiler/codegen/CaseLabel;)V
85: iconst_0
istore 14
start local 14 86: iconst_0
istore 15
start local 15 87: iload 5
istore 16
start local 16 88: goto 100
89: StackMap locals: int int int
StackMap stack:
aload 7
iload 14
aaload
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement$1StringSwitchCase.hashCode:I
istore 17
start local 17 90: iload 14
ifeq 91
iload 17
iload 10
if_icmpeq 95
91: StackMap locals: int
StackMap stack:
iload 17
istore 10
92: iload 14
ifeq 94
93: aload 2
aload 13
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.goto_:(Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;)V
94: StackMap locals:
StackMap stack:
aload 8
iload 15
iinc 15 1
aaload
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CaseLabel.place:()V
95: StackMap locals:
StackMap stack:
aload 2
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.dispatchStringCopy:Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.load:(Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;)V
96: aload 2
aload 7
iload 14
aaload
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement$1StringSwitchCase.string:Ljava/lang/String;
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.ldc:(Ljava/lang/String;)V
97: aload 2
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.invokeStringEquals:()V
98: aload 2
aload 7
iload 14
aaload
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement$1StringSwitchCase.label:Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.ifne:(Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;)V
end local 17 99: iinc 14 1
StackMap locals:
StackMap stack:
100: iload 14
iload 16
if_icmplt 89
end local 16 end local 15 end local 14 101: aload 2
aload 13
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.goto_:(Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;)V
102: goto 104
103: StackMap locals:
StackMap stack:
aload 2
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.pop:()V
104: StackMap locals:
StackMap stack:
iconst_0
istore 14
start local 14 105: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.statements:[Lorg/eclipse/jdt/internal/compiler/ast/Statement;
ifnull 124
106: iconst_0
istore 15
start local 15 107: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.statements:[Lorg/eclipse/jdt/internal/compiler/ast/Statement;
arraylength
istore 16
start local 16 108: goto 123
109: StackMap locals: int int int
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.statements:[Lorg/eclipse/jdt/internal/compiler/ast/Statement;
iload 15
aaload
astore 17
start local 17 110: iload 14
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.caseCount:I
if_icmpge 116
aload 17
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.cases:[Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
iload 14
aaload
if_acmpne 116
111: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.cases:[Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
iload 14
aaload
putfield org.eclipse.jdt.internal.compiler.lookup.BlockScope.enclosingCase:Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
112: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.preSwitchInitStateIndex:I
iconst_m1
if_icmpeq 114
113: aload 2
aload 1
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.preSwitchInitStateIndex:I
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.removeNotDefinitelyAssignedVariables:(Lorg/eclipse/jdt/internal/compiler/lookup/Scope;I)V
114: StackMap locals: org.eclipse.jdt.internal.compiler.ast.Statement
StackMap stack:
iinc 14 1
115: goto 121
116: StackMap locals:
StackMap stack:
aload 17
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.defaultCase:Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
if_acmpne 121
117: aload 12
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CaseLabel.place:()V
118: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.defaultCase:Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
putfield org.eclipse.jdt.internal.compiler.lookup.BlockScope.enclosingCase:Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
119: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.preSwitchInitStateIndex:I
iconst_m1
if_icmpeq 121
120: aload 2
aload 1
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.preSwitchInitStateIndex:I
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.removeNotDefinitelyAssignedVariables:(Lorg/eclipse/jdt/internal/compiler/lookup/Scope;I)V
121: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
aload 17
invokevirtual org.eclipse.jdt.internal.compiler.ast.SwitchStatement.statementGenerateCode:(Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;Lorg/eclipse/jdt/internal/compiler/codegen/CodeStream;Lorg/eclipse/jdt/internal/compiler/ast/Statement;)V
end local 17 122: iinc 15 1
StackMap locals:
StackMap stack:
123: iload 15
iload 16
if_icmplt 109
end local 16 end local 15 124: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.mergedInitStateIndex:I
iconst_m1
if_icmpeq 127
125: aload 2
aload 1
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.mergedInitStateIndex:I
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.removeNotDefinitelyAssignedVariables:(Lorg/eclipse/jdt/internal/compiler/lookup/Scope;I)V
126: aload 2
aload 1
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.mergedInitStateIndex:I
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.addDefinitelyAssignedVariables:(Lorg/eclipse/jdt/internal/compiler/lookup/Scope;I)V
127: StackMap locals:
StackMap stack:
aload 2
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.dispatchStringCopy:Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.removeVariable:(Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;)V
128: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
aload 1
if_acmpeq 130
129: aload 2
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.exitUserScope:(Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;)V
130: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.breakLabel:Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;
invokevirtual org.eclipse.jdt.internal.compiler.codegen.BranchLabel.place:()V
131: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.defaultCase:Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
ifnonnull 135
132: aload 2
aload 2
getfield org.eclipse.jdt.internal.compiler.codegen.CodeStream.position:I
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.sourceEnd:I
iconst_1
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.recordPositionsFrom:(IIZ)V
133: aload 12
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CaseLabel.place:()V
134: aload 13
invokevirtual org.eclipse.jdt.internal.compiler.codegen.BranchLabel.place:()V
135: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.eclipse.jdt.internal.compiler.ast.SwitchStatement.expectedType:()Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
ifnull 143
136: aload 0
invokevirtual org.eclipse.jdt.internal.compiler.ast.SwitchStatement.expectedType:()Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.erasure:()Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
astore 15
start local 15 137: aload 2
getfield org.eclipse.jdt.internal.compiler.codegen.CodeStream.lastAbruptCompletion:I
iconst_m1
if_icmpne 138
iconst_1
goto 139
StackMap locals: org.eclipse.jdt.internal.compiler.lookup.TypeBinding
StackMap stack:
138: iconst_0
StackMap locals:
StackMap stack: int
139: istore 16
start local 16 140: aload 2
aload 15
iload 16
ifeq 141
iconst_0
goto 142
StackMap locals: org.eclipse.jdt.internal.compiler.ast.SwitchStatement org.eclipse.jdt.internal.compiler.lookup.BlockScope org.eclipse.jdt.internal.compiler.codegen.CodeStream int int int org.eclipse.jdt.internal.compiler.codegen.BranchLabel[] org.eclipse.jdt.internal.compiler.ast.SwitchStatement$1StringSwitchCase[] org.eclipse.jdt.internal.compiler.codegen.CaseLabel[] int int int[] org.eclipse.jdt.internal.compiler.codegen.CaseLabel org.eclipse.jdt.internal.compiler.codegen.BranchLabel int org.eclipse.jdt.internal.compiler.lookup.TypeBinding int
StackMap stack: org.eclipse.jdt.internal.compiler.codegen.CodeStream org.eclipse.jdt.internal.compiler.lookup.TypeBinding
141: iconst_1
StackMap locals: org.eclipse.jdt.internal.compiler.ast.SwitchStatement org.eclipse.jdt.internal.compiler.lookup.BlockScope org.eclipse.jdt.internal.compiler.codegen.CodeStream int int int org.eclipse.jdt.internal.compiler.codegen.BranchLabel[] org.eclipse.jdt.internal.compiler.ast.SwitchStatement$1StringSwitchCase[] org.eclipse.jdt.internal.compiler.codegen.CaseLabel[] int int int[] org.eclipse.jdt.internal.compiler.codegen.CaseLabel org.eclipse.jdt.internal.compiler.codegen.BranchLabel int org.eclipse.jdt.internal.compiler.lookup.TypeBinding int
StackMap stack: org.eclipse.jdt.internal.compiler.codegen.CodeStream org.eclipse.jdt.internal.compiler.lookup.TypeBinding int
142: iload 16
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.recordExpressionType:(Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;IZ)V
end local 16 end local 15 143: StackMap locals:
StackMap stack:
aload 2
iload 3
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.sourceStart:I
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.recordPositionsFrom:(II)V
end local 14 end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 144: goto 148
StackMap locals: org.eclipse.jdt.internal.compiler.ast.SwitchStatement org.eclipse.jdt.internal.compiler.lookup.BlockScope org.eclipse.jdt.internal.compiler.codegen.CodeStream
StackMap stack: java.lang.Throwable
145: astore 18
146: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
ifnull 147
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
aconst_null
putfield org.eclipse.jdt.internal.compiler.lookup.BlockScope.enclosingCase:Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
147: StackMap locals: org.eclipse.jdt.internal.compiler.ast.SwitchStatement org.eclipse.jdt.internal.compiler.lookup.BlockScope org.eclipse.jdt.internal.compiler.codegen.CodeStream top top top top top top top top top top top top top top top java.lang.Throwable
StackMap stack:
aload 18
athrow
148: StackMap locals: org.eclipse.jdt.internal.compiler.ast.SwitchStatement org.eclipse.jdt.internal.compiler.lookup.BlockScope org.eclipse.jdt.internal.compiler.codegen.CodeStream
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
ifnull 149
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
aconst_null
putfield org.eclipse.jdt.internal.compiler.lookup.BlockScope.enclosingCase:Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
149: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 150 0 this Lorg/eclipse/jdt/internal/compiler/ast/SwitchStatement;
0 150 1 currentScope Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
0 150 2 codeStream Lorg/eclipse/jdt/internal/compiler/codegen/CodeStream;
4 144 3 pc I
7 144 4 hasCases Z
10 144 5 constSize I
19 34 6 sourceCaseLabels [Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;
35 144 6 sourceCaseLabels [Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;
12 18 7 i I
13 18 8 max I
15 16 9 l I
20 33 7 j I
21 33 8 i I
22 33 9 max I
24 31 10 stmt Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
25 31 11 k I
26 31 12 l I
36 42 7 i I
37 42 8 max I
43 144 7 stringCases [Lorg/eclipse/jdt/internal/compiler/ast/SwitchStatement$1StringSwitchCase;
44 144 8 hashCodeCaseLabels [Lorg/eclipse/jdt/internal/compiler/codegen/CaseLabel;
46 52 9 i I
54 144 9 uniqHashCount I
55 144 10 lastHashCode I
56 63 11 i I
57 63 12 length I
59 61 13 hashCode I
67 144 11 sortedIndexes [I
68 72 12 i I
73 144 12 defaultCaseLabel Lorg/eclipse/jdt/internal/compiler/codegen/CaseLabel;
76 144 13 defaultBranchLabel Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;
86 101 14 i I
87 101 15 j I
88 101 16 max I
90 99 17 hashCode I
105 144 14 caseIndex I
107 124 15 i I
108 124 16 maxCases I
110 122 17 statement Lorg/eclipse/jdt/internal/compiler/ast/Statement;
137 143 15 expectedType Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
140 143 16 optimizedGoto Z
Exception table:
from to target type
0 1 145 any
3 145 145 any
MethodParameters:
Name Flags
currentScope
codeStream
public void generateCode(org.eclipse.jdt.internal.compiler.lookup.BlockScope, org.eclipse.jdt.internal.compiler.codegen.CodeStream);
descriptor: (Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;Lorg/eclipse/jdt/internal/compiler/codegen/CodeStream;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=17, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.expression:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
getfield org.eclipse.jdt.internal.compiler.ast.Expression.resolvedType:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
getfield org.eclipse.jdt.internal.compiler.lookup.TypeBinding.id:I
bipush 11
if_icmpne 3
1: aload 0
aload 1
aload 2
invokevirtual org.eclipse.jdt.internal.compiler.ast.SwitchStatement.generateCodeForStringSwitch:(Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;Lorg/eclipse/jdt/internal/compiler/codegen/CodeStream;)V
2: return
3: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.bits:I
ldc -2147483648
iand
ifne 6
4: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
ifnull 5
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
aconst_null
putfield org.eclipse.jdt.internal.compiler.lookup.BlockScope.enclosingCase:Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
5: StackMap locals:
StackMap stack:
return
6: StackMap locals:
StackMap stack:
aload 2
getfield org.eclipse.jdt.internal.compiler.codegen.CodeStream.position:I
istore 3
start local 3 7: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.breakLabel:Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;
aload 2
invokevirtual org.eclipse.jdt.internal.compiler.codegen.BranchLabel.initialize:(Lorg/eclipse/jdt/internal/compiler/codegen/CodeStream;)V
8: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.constants:[I
ifnonnull 9
iconst_0
goto 10
StackMap locals: int
StackMap stack:
9: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.constants:[I
arraylength
StackMap locals:
StackMap stack: int
10: istore 4
start local 4 11: iconst_0
istore 5
start local 5 12: 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.complianceLevel:J
ldc 3670016
lcmp
iflt 37
13: iconst_0
istore 7
start local 7 14: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.caseCount:I
istore 8
start local 8 15: goto 20
16: StackMap locals: org.eclipse.jdt.internal.compiler.ast.SwitchStatement org.eclipse.jdt.internal.compiler.lookup.BlockScope org.eclipse.jdt.internal.compiler.codegen.CodeStream int int int top int int
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.cases:[Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
iload 7
aaload
getfield org.eclipse.jdt.internal.compiler.ast.CaseStatement.constantExpressions:[Lorg/eclipse/jdt/internal/compiler/ast/Expression;
arraylength
istore 9
start local 9 17: iload 5
iload 9
iadd
istore 5
18: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.cases:[Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
iload 7
aaload
iload 9
anewarray org.eclipse.jdt.internal.compiler.codegen.BranchLabel
putfield org.eclipse.jdt.internal.compiler.ast.CaseStatement.targetLabels:[Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;
end local 9 19: iinc 7 1
StackMap locals:
StackMap stack:
20: iload 7
iload 8
if_icmplt 16
end local 8 end local 7 21: iload 5
anewarray org.eclipse.jdt.internal.compiler.codegen.CaseLabel
astore 6
start local 6 22: iconst_0
istore 7
start local 7 23: iconst_0
istore 8
start local 8 24: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.caseCount:I
istore 9
start local 9 25: goto 35
26: StackMap locals: org.eclipse.jdt.internal.compiler.ast.SwitchStatement org.eclipse.jdt.internal.compiler.lookup.BlockScope org.eclipse.jdt.internal.compiler.codegen.CodeStream int int int org.eclipse.jdt.internal.compiler.codegen.CaseLabel[] int int int
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.cases:[Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
iload 8
aaload
astore 10
start local 10 27: iconst_0
istore 11
start local 11 28: aload 10
getfield org.eclipse.jdt.internal.compiler.ast.CaseStatement.constantExpressions:[Lorg/eclipse/jdt/internal/compiler/ast/Expression;
arraylength
istore 12
start local 12 29: goto 33
30: StackMap locals: org.eclipse.jdt.internal.compiler.ast.CaseStatement int int
StackMap stack:
aload 10
getfield org.eclipse.jdt.internal.compiler.ast.CaseStatement.targetLabels:[Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;
iload 11
aload 6
iload 7
new org.eclipse.jdt.internal.compiler.codegen.CaseLabel
dup
aload 2
invokespecial org.eclipse.jdt.internal.compiler.codegen.CaseLabel.<init>:(Lorg/eclipse/jdt/internal/compiler/codegen/CodeStream;)V
dup_x2
aastore
aastore
31: aload 6
iload 7
iinc 7 1
aaload
dup
getfield org.eclipse.jdt.internal.compiler.codegen.CaseLabel.tagBits:I
iconst_2
ior
putfield org.eclipse.jdt.internal.compiler.codegen.CaseLabel.tagBits:I
32: iinc 11 1
StackMap locals:
StackMap stack:
33: iload 11
iload 12
if_icmplt 30
end local 12 end local 11 end local 10 34: iinc 8 1
StackMap locals:
StackMap stack:
35: iload 8
iload 9
if_icmplt 26
end local 9 end local 8 end local 7 36: goto 45
end local 6 37: StackMap locals: org.eclipse.jdt.internal.compiler.ast.SwitchStatement org.eclipse.jdt.internal.compiler.lookup.BlockScope org.eclipse.jdt.internal.compiler.codegen.CodeStream int int int
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.caseCount:I
anewarray org.eclipse.jdt.internal.compiler.codegen.CaseLabel
astore 6
start local 6 38: iconst_0
istore 7
start local 7 39: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.caseCount:I
istore 8
start local 8 40: goto 44
41: StackMap locals: org.eclipse.jdt.internal.compiler.codegen.CaseLabel[] int int
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.cases:[Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
iload 7
aaload
aload 6
iload 7
new org.eclipse.jdt.internal.compiler.codegen.CaseLabel
dup
aload 2
invokespecial org.eclipse.jdt.internal.compiler.codegen.CaseLabel.<init>:(Lorg/eclipse/jdt/internal/compiler/codegen/CodeStream;)V
dup_x2
aastore
putfield org.eclipse.jdt.internal.compiler.ast.CaseStatement.targetLabel:Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;
42: aload 6
iload 7
aaload
dup
getfield org.eclipse.jdt.internal.compiler.codegen.CaseLabel.tagBits:I
iconst_2
ior
putfield org.eclipse.jdt.internal.compiler.codegen.CaseLabel.tagBits:I
43: iinc 7 1
StackMap locals:
StackMap stack:
44: iload 7
iload 8
if_icmplt 41
end local 8 end local 7 45: StackMap locals:
StackMap stack:
new org.eclipse.jdt.internal.compiler.codegen.CaseLabel
dup
aload 2
invokespecial org.eclipse.jdt.internal.compiler.codegen.CaseLabel.<init>:(Lorg/eclipse/jdt/internal/compiler/codegen/CodeStream;)V
astore 7
start local 7 46: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.caseCount:I
ifeq 47
iconst_1
goto 48
StackMap locals: org.eclipse.jdt.internal.compiler.codegen.CaseLabel
StackMap stack:
47: iconst_0
StackMap locals:
StackMap stack: int
48: istore 8
start local 8 49: iload 8
ifeq 50
aload 7
dup
getfield org.eclipse.jdt.internal.compiler.codegen.CaseLabel.tagBits:I
iconst_2
ior
putfield org.eclipse.jdt.internal.compiler.codegen.CaseLabel.tagBits:I
50: StackMap locals: int
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.defaultCase:Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
ifnull 52
51: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.defaultCase:Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
aload 7
putfield org.eclipse.jdt.internal.compiler.ast.CaseStatement.targetLabel:Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;
52: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.expression:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
getfield org.eclipse.jdt.internal.compiler.ast.Expression.resolvedType:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
astore 9
start local 9 53: iconst_0
istore 10
start local 10 54: aload 9
invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.isEnum:()Z
ifeq 63
55: aload 2
bipush -72
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.synthetic:Lorg/eclipse/jdt/internal/compiler/lookup/SyntheticMethodBinding;
aconst_null
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.invoke:(BLorg/eclipse/jdt/internal/compiler/lookup/MethodBinding;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;)V
56: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.expression:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
aload 1
aload 2
iconst_1
invokevirtual org.eclipse.jdt.internal.compiler.ast.Expression.generateCode:(Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;Lorg/eclipse/jdt/internal/compiler/codegen/CodeStream;Z)V
57: aload 2
aload 9
invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.constantPoolName:()[C
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.invokeEnumOrdinal:([C)V
58: aload 2
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.iaload:()V
59: iload 8
ifne 61
60: aload 2
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.pop:()V
61: StackMap locals: org.eclipse.jdt.internal.compiler.lookup.TypeBinding int
StackMap stack:
iload 8
istore 10
62: goto 67
63: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.expression:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
getfield org.eclipse.jdt.internal.compiler.ast.Expression.constant:Lorg/eclipse/jdt/internal/compiler/impl/Constant;
getstatic org.eclipse.jdt.internal.compiler.impl.Constant.NotAConstant:Lorg/eclipse/jdt/internal/compiler/impl/Constant;
if_acmpeq 64
iload 8
ifne 64
iconst_0
goto 65
StackMap locals:
StackMap stack:
64: iconst_1
StackMap locals:
StackMap stack: int
65: istore 10
66: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.expression:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
aload 1
aload 2
iload 10
invokevirtual org.eclipse.jdt.internal.compiler.ast.Expression.generateCode:(Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;Lorg/eclipse/jdt/internal/compiler/codegen/CodeStream;Z)V
67: StackMap locals:
StackMap stack:
iload 8
ifeq 96
68: iload 4
newarray 10
astore 11
start local 11 69: iconst_0
istore 12
start local 12 70: goto 73
71: StackMap locals: int[] int
StackMap stack:
aload 11
iload 12
iload 12
iastore
72: iinc 12 1
StackMap locals:
StackMap stack:
73: iload 12
iload 4
if_icmplt 71
end local 12 74: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.constants:[I
iconst_0
iload 4
newarray 10
dup
astore 12
start local 12 75: iconst_0
iload 4
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
76: aload 12
iconst_0
iload 4
iconst_1
isub
aload 11
invokestatic org.eclipse.jdt.internal.compiler.codegen.CodeStream.sort:([III[I)V
77: aload 12
iload 4
iconst_1
isub
iaload
istore 13
start local 13 78: aload 12
iconst_0
iaload
istore 14
start local 14 79: iload 4
i2d
ldc 2.5
dmul
d2l
iload 13
i2l
iload 14
i2l
lsub
lcmp
ifle 93
80: iload 13
ldc 2147418112
if_icmple 83
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.complianceLevel:J
ldc 3145728
lcmp
ifge 83
81: aload 2
aload 7
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.constants:[I
aload 11
aload 6
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.lookupswitch:(Lorg/eclipse/jdt/internal/compiler/codegen/CaseLabel;[I[I[Lorg/eclipse/jdt/internal/compiler/codegen/CaseLabel;)V
82: goto 94
83: StackMap locals: org.eclipse.jdt.internal.compiler.ast.SwitchStatement org.eclipse.jdt.internal.compiler.lookup.BlockScope org.eclipse.jdt.internal.compiler.codegen.CodeStream int int int org.eclipse.jdt.internal.compiler.codegen.CaseLabel[] org.eclipse.jdt.internal.compiler.codegen.CaseLabel int org.eclipse.jdt.internal.compiler.lookup.TypeBinding int int[] int[] int int
StackMap stack:
aload 2
84: aload 7
85: iload 14
86: iload 13
87: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.constants:[I
88: aload 11
89: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.constMapping:[I
90: aload 6
91: invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.tableswitch:(Lorg/eclipse/jdt/internal/compiler/codegen/CaseLabel;II[I[I[I[Lorg/eclipse/jdt/internal/compiler/codegen/CaseLabel;)V
92: goto 94
93: StackMap locals:
StackMap stack:
aload 2
aload 7
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.constants:[I
aload 11
aload 6
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.lookupswitch:(Lorg/eclipse/jdt/internal/compiler/codegen/CaseLabel;[I[I[Lorg/eclipse/jdt/internal/compiler/codegen/CaseLabel;)V
94: StackMap locals:
StackMap stack:
aload 2
aload 2
getfield org.eclipse.jdt.internal.compiler.codegen.CodeStream.position:I
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.expression:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
getfield org.eclipse.jdt.internal.compiler.ast.Expression.sourceEnd:I
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.recordPositionsFrom:(II)V
end local 14 end local 13 end local 12 end local 11 95: goto 98
StackMap locals: org.eclipse.jdt.internal.compiler.ast.SwitchStatement org.eclipse.jdt.internal.compiler.lookup.BlockScope org.eclipse.jdt.internal.compiler.codegen.CodeStream int int int org.eclipse.jdt.internal.compiler.codegen.CaseLabel[] org.eclipse.jdt.internal.compiler.codegen.CaseLabel int org.eclipse.jdt.internal.compiler.lookup.TypeBinding int
StackMap stack:
96: iload 10
ifeq 98
97: aload 2
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.pop:()V
98: StackMap locals:
StackMap stack:
iconst_0
istore 11
start local 11 99: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.statements:[Lorg/eclipse/jdt/internal/compiler/ast/Statement;
ifnull 117
100: iconst_0
istore 12
start local 12 101: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.statements:[Lorg/eclipse/jdt/internal/compiler/ast/Statement;
arraylength
istore 13
start local 13 102: goto 116
103: StackMap locals: int int int
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.statements:[Lorg/eclipse/jdt/internal/compiler/ast/Statement;
iload 12
aaload
astore 14
start local 14 104: iload 11
iload 4
if_icmpge 110
aload 14
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.cases:[Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
iload 11
aaload
if_acmpne 110
105: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.cases:[Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
iload 11
aaload
putfield org.eclipse.jdt.internal.compiler.lookup.BlockScope.enclosingCase:Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
106: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.preSwitchInitStateIndex:I
iconst_m1
if_icmpeq 108
107: aload 2
aload 1
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.preSwitchInitStateIndex:I
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.removeNotDefinitelyAssignedVariables:(Lorg/eclipse/jdt/internal/compiler/lookup/Scope;I)V
108: StackMap locals: org.eclipse.jdt.internal.compiler.ast.Statement
StackMap stack:
iinc 11 1
109: goto 114
110: StackMap locals:
StackMap stack:
aload 14
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.defaultCase:Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
if_acmpne 114
111: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.defaultCase:Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
putfield org.eclipse.jdt.internal.compiler.lookup.BlockScope.enclosingCase:Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
112: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.preSwitchInitStateIndex:I
iconst_m1
if_icmpeq 114
113: aload 2
aload 1
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.preSwitchInitStateIndex:I
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.removeNotDefinitelyAssignedVariables:(Lorg/eclipse/jdt/internal/compiler/lookup/Scope;I)V
114: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
aload 14
invokevirtual org.eclipse.jdt.internal.compiler.ast.SwitchStatement.statementGenerateCode:(Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;Lorg/eclipse/jdt/internal/compiler/codegen/CodeStream;Lorg/eclipse/jdt/internal/compiler/ast/Statement;)V
end local 14 115: iinc 12 1
StackMap locals:
StackMap stack:
116: iload 12
iload 13
if_icmplt 103
end local 13 end local 12 117: StackMap locals:
StackMap stack:
aload 9
invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.isEnum:()Z
ifeq 118
aload 0
instanceof org.eclipse.jdt.internal.compiler.ast.SwitchExpression
ifeq 118
iconst_1
goto 119
StackMap locals:
StackMap stack:
118: iconst_0
StackMap locals:
StackMap stack: int
119: istore 12
start local 12 120: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.defaultCase:Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
ifnonnull 121
iload 12
ifeq 121
iconst_1
goto 122
StackMap locals: int
StackMap stack:
121: iconst_0
StackMap locals:
StackMap stack: int
122: istore 13
start local 13 123: iload 13
ifeq 131
124: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.preSwitchInitStateIndex:I
iconst_m1
if_icmpeq 126
125: aload 2
aload 1
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.preSwitchInitStateIndex:I
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.removeNotDefinitelyAssignedVariables:(Lorg/eclipse/jdt/internal/compiler/lookup/Scope;I)V
126: StackMap locals: int
StackMap stack:
aload 7
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CaseLabel.place:()V
127: aload 2
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.newJavaLangIncompatibleClassChangeError:()V
128: aload 2
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.dup:()V
129: aload 2
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.invokeJavaLangIncompatibleClassChangeErrorDefaultConstructor:()V
130: aload 2
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.athrow:()V
131: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.mergedInitStateIndex:I
iconst_m1
if_icmpeq 134
132: aload 2
aload 1
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.mergedInitStateIndex:I
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.removeNotDefinitelyAssignedVariables:(Lorg/eclipse/jdt/internal/compiler/lookup/Scope;I)V
133: aload 2
aload 1
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.mergedInitStateIndex:I
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.addDefinitelyAssignedVariables:(Lorg/eclipse/jdt/internal/compiler/lookup/Scope;I)V
134: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
aload 1
if_acmpeq 136
135: aload 2
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.exitUserScope:(Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;)V
136: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.breakLabel:Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;
invokevirtual org.eclipse.jdt.internal.compiler.codegen.BranchLabel.place:()V
137: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.defaultCase:Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
ifnonnull 140
iload 12
ifne 140
138: aload 2
aload 2
getfield org.eclipse.jdt.internal.compiler.codegen.CodeStream.position:I
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.sourceEnd:I
iconst_1
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.recordPositionsFrom:(IIZ)V
139: aload 7
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CaseLabel.place:()V
140: StackMap locals:
StackMap stack:
aload 0
instanceof org.eclipse.jdt.internal.compiler.ast.SwitchExpression
ifeq 152
141: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.resolvedType:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
astore 14
start local 14 142: aload 0
invokevirtual org.eclipse.jdt.internal.compiler.ast.SwitchStatement.expectedType:()Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
ifnull 144
143: aload 0
invokevirtual org.eclipse.jdt.internal.compiler.ast.SwitchStatement.expectedType:()Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.erasure:()Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
astore 14
144: StackMap locals: org.eclipse.jdt.internal.compiler.lookup.TypeBinding
StackMap stack:
aload 2
getfield org.eclipse.jdt.internal.compiler.codegen.CodeStream.lastAbruptCompletion:I
iconst_m1
if_icmpne 145
iconst_1
goto 146
StackMap locals:
StackMap stack:
145: iconst_0
StackMap locals:
StackMap stack: int
146: istore 15
start local 15 147: aload 2
aload 14
iload 15
ifeq 148
iconst_0
goto 149
StackMap locals: org.eclipse.jdt.internal.compiler.ast.SwitchStatement org.eclipse.jdt.internal.compiler.lookup.BlockScope org.eclipse.jdt.internal.compiler.codegen.CodeStream int int int org.eclipse.jdt.internal.compiler.codegen.CaseLabel[] org.eclipse.jdt.internal.compiler.codegen.CaseLabel int org.eclipse.jdt.internal.compiler.lookup.TypeBinding int int int int org.eclipse.jdt.internal.compiler.lookup.TypeBinding int
StackMap stack: org.eclipse.jdt.internal.compiler.codegen.CodeStream org.eclipse.jdt.internal.compiler.lookup.TypeBinding
148: iconst_1
StackMap locals: org.eclipse.jdt.internal.compiler.ast.SwitchStatement org.eclipse.jdt.internal.compiler.lookup.BlockScope org.eclipse.jdt.internal.compiler.codegen.CodeStream int int int org.eclipse.jdt.internal.compiler.codegen.CaseLabel[] org.eclipse.jdt.internal.compiler.codegen.CaseLabel int org.eclipse.jdt.internal.compiler.lookup.TypeBinding int int int int org.eclipse.jdt.internal.compiler.lookup.TypeBinding int
StackMap stack: org.eclipse.jdt.internal.compiler.codegen.CodeStream org.eclipse.jdt.internal.compiler.lookup.TypeBinding int
149: iload 15
ifne 150
iload 13
ifne 150
iconst_0
goto 151
StackMap locals: org.eclipse.jdt.internal.compiler.ast.SwitchStatement org.eclipse.jdt.internal.compiler.lookup.BlockScope org.eclipse.jdt.internal.compiler.codegen.CodeStream int int int org.eclipse.jdt.internal.compiler.codegen.CaseLabel[] org.eclipse.jdt.internal.compiler.codegen.CaseLabel int org.eclipse.jdt.internal.compiler.lookup.TypeBinding int int int int org.eclipse.jdt.internal.compiler.lookup.TypeBinding int
StackMap stack: org.eclipse.jdt.internal.compiler.codegen.CodeStream org.eclipse.jdt.internal.compiler.lookup.TypeBinding int
150: iconst_1
StackMap locals: org.eclipse.jdt.internal.compiler.ast.SwitchStatement org.eclipse.jdt.internal.compiler.lookup.BlockScope org.eclipse.jdt.internal.compiler.codegen.CodeStream int int int org.eclipse.jdt.internal.compiler.codegen.CaseLabel[] org.eclipse.jdt.internal.compiler.codegen.CaseLabel int org.eclipse.jdt.internal.compiler.lookup.TypeBinding int int int int org.eclipse.jdt.internal.compiler.lookup.TypeBinding int
StackMap stack: org.eclipse.jdt.internal.compiler.codegen.CodeStream org.eclipse.jdt.internal.compiler.lookup.TypeBinding int int
151: invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.recordExpressionType:(Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;IZ)V
end local 15 end local 14 152: StackMap locals:
StackMap stack:
aload 2
iload 3
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.sourceStart:I
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.recordPositionsFrom:(II)V
end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 153: goto 157
StackMap locals: org.eclipse.jdt.internal.compiler.ast.SwitchStatement org.eclipse.jdt.internal.compiler.lookup.BlockScope org.eclipse.jdt.internal.compiler.codegen.CodeStream
StackMap stack: java.lang.Throwable
154: astore 16
155: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
ifnull 156
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
aconst_null
putfield org.eclipse.jdt.internal.compiler.lookup.BlockScope.enclosingCase:Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
156: StackMap locals: org.eclipse.jdt.internal.compiler.ast.SwitchStatement org.eclipse.jdt.internal.compiler.lookup.BlockScope org.eclipse.jdt.internal.compiler.codegen.CodeStream top top top top top top top top top top top top top java.lang.Throwable
StackMap stack:
aload 16
athrow
157: StackMap locals: org.eclipse.jdt.internal.compiler.ast.SwitchStatement org.eclipse.jdt.internal.compiler.lookup.BlockScope org.eclipse.jdt.internal.compiler.codegen.CodeStream
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
ifnull 158
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
aconst_null
putfield org.eclipse.jdt.internal.compiler.lookup.BlockScope.enclosingCase:Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
158: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 159 0 this Lorg/eclipse/jdt/internal/compiler/ast/SwitchStatement;
0 159 1 currentScope Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
0 159 2 codeStream Lorg/eclipse/jdt/internal/compiler/codegen/CodeStream;
7 153 3 pc I
11 153 4 constantCount I
12 153 5 nCaseLabels I
22 37 6 caseLabels [Lorg/eclipse/jdt/internal/compiler/codegen/CaseLabel;
38 153 6 caseLabels [Lorg/eclipse/jdt/internal/compiler/codegen/CaseLabel;
14 21 7 i I
15 21 8 max I
17 19 9 l I
23 36 7 j I
24 36 8 i I
25 36 9 max I
27 34 10 stmt Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
28 34 11 k I
29 34 12 l I
39 45 7 i I
40 45 8 max I
46 153 7 defaultLabel Lorg/eclipse/jdt/internal/compiler/codegen/CaseLabel;
49 153 8 hasCases Z
53 153 9 resolvedType1 Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
54 153 10 valueRequired Z
69 95 11 sortedIndexes [I
70 74 12 i I
75 95 12 localKeysCopy [I
78 95 13 max I
79 95 14 min I
99 153 11 caseIndex I
101 117 12 i I
102 117 13 maxCases I
104 115 14 statement Lorg/eclipse/jdt/internal/compiler/ast/Statement;
120 153 12 enumInSwitchExpression Z
123 153 13 isEnumSwitchWithoutDefaultCase Z
142 152 14 switchResolveType Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
147 152 15 optimizedGoto Z
Exception table:
from to target type
3 4 154 any
6 154 154 any
MethodParameters:
Name Flags
currentScope
codeStream
protected void statementGenerateCode(org.eclipse.jdt.internal.compiler.lookup.BlockScope, org.eclipse.jdt.internal.compiler.codegen.CodeStream, org.eclipse.jdt.internal.compiler.ast.Statement);
descriptor: (Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;Lorg/eclipse/jdt/internal/compiler/codegen/CodeStream;Lorg/eclipse/jdt/internal/compiler/ast/Statement;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 3
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
aload 2
invokevirtual org.eclipse.jdt.internal.compiler.ast.Statement.generateCode:(Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;Lorg/eclipse/jdt/internal/compiler/codegen/CodeStream;)V
1: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/eclipse/jdt/internal/compiler/ast/SwitchStatement;
0 2 1 currentScope Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
0 2 2 codeStream Lorg/eclipse/jdt/internal/compiler/codegen/CodeStream;
0 2 3 statement Lorg/eclipse/jdt/internal/compiler/ast/Statement;
MethodParameters:
Name Flags
currentScope
codeStream
statement
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=3, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
aload 2
invokevirtual org.eclipse.jdt.internal.compiler.ast.SwitchStatement.generateCode:(Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;Lorg/eclipse/jdt/internal/compiler/codegen/CodeStream;)V
1: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/eclipse/jdt/internal/compiler/ast/SwitchStatement;
0 2 1 currentScope Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
0 2 2 codeStream Lorg/eclipse/jdt/internal/compiler/codegen/CodeStream;
0 2 3 valueRequired Z
MethodParameters:
Name Flags
currentScope
codeStream
valueRequired
public java.lang.StringBuffer printStatement(int, java.lang.StringBuffer);
descriptor: (ILjava/lang/StringBuffer;)Ljava/lang/StringBuffer;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: iload 1
aload 2
invokestatic org.eclipse.jdt.internal.compiler.ast.SwitchStatement.printIndent:(ILjava/lang/StringBuffer;)Ljava/lang/StringBuffer;
ldc "switch ("
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
pop
1: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.expression:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
iconst_0
aload 2
invokevirtual org.eclipse.jdt.internal.compiler.ast.Expression.printExpression:(ILjava/lang/StringBuffer;)Ljava/lang/StringBuffer;
ldc ") {"
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
pop
2: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.statements:[Lorg/eclipse/jdt/internal/compiler/ast/Statement;
ifnull 12
3: iconst_0
istore 3
start local 3 4: goto 11
5: StackMap locals: int
StackMap stack:
aload 2
bipush 10
invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
pop
6: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.statements:[Lorg/eclipse/jdt/internal/compiler/ast/Statement;
iload 3
aaload
instanceof org.eclipse.jdt.internal.compiler.ast.CaseStatement
ifeq 9
7: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.statements:[Lorg/eclipse/jdt/internal/compiler/ast/Statement;
iload 3
aaload
iload 1
aload 2
invokevirtual org.eclipse.jdt.internal.compiler.ast.Statement.printStatement:(ILjava/lang/StringBuffer;)Ljava/lang/StringBuffer;
pop
8: goto 10
9: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.statements:[Lorg/eclipse/jdt/internal/compiler/ast/Statement;
iload 3
aaload
iload 1
iconst_2
iadd
aload 2
invokevirtual org.eclipse.jdt.internal.compiler.ast.Statement.printStatement:(ILjava/lang/StringBuffer;)Ljava/lang/StringBuffer;
pop
10: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
11: iload 3
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.statements:[Lorg/eclipse/jdt/internal/compiler/ast/Statement;
arraylength
if_icmplt 5
end local 3 12: StackMap locals:
StackMap stack:
aload 2
ldc "\n"
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
pop
13: iload 1
aload 2
invokestatic org.eclipse.jdt.internal.compiler.ast.SwitchStatement.printIndent:(ILjava/lang/StringBuffer;)Ljava/lang/StringBuffer;
bipush 125
invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lorg/eclipse/jdt/internal/compiler/ast/SwitchStatement;
0 14 1 indent I
0 14 2 output Ljava/lang/StringBuffer;
4 12 3 i I
MethodParameters:
Name Flags
indent
output
private int getNConstants();
descriptor: ()I
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=6, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: iconst_0
istore 2
start local 2 2: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.statements:[Lorg/eclipse/jdt/internal/compiler/ast/Statement;
arraylength
istore 3
start local 3 3: goto 13
4: StackMap locals: int int int
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.statements:[Lorg/eclipse/jdt/internal/compiler/ast/Statement;
iload 2
aaload
astore 4
start local 4 5: aload 4
instanceof org.eclipse.jdt.internal.compiler.ast.CaseStatement
ifne 7
6: goto 12
7: StackMap locals: org.eclipse.jdt.internal.compiler.ast.Statement
StackMap stack:
aload 4
checkcast org.eclipse.jdt.internal.compiler.ast.CaseStatement
astore 5
start local 5 8: iload 1
aload 5
getfield org.eclipse.jdt.internal.compiler.ast.CaseStatement.constantExpressions:[Lorg/eclipse/jdt/internal/compiler/ast/Expression;
ifnull 9
aload 5
getfield org.eclipse.jdt.internal.compiler.ast.CaseStatement.constantExpressions:[Lorg/eclipse/jdt/internal/compiler/ast/Expression;
arraylength
goto 11
9: StackMap locals: org.eclipse.jdt.internal.compiler.ast.SwitchStatement int int int org.eclipse.jdt.internal.compiler.ast.Statement org.eclipse.jdt.internal.compiler.ast.CaseStatement
StackMap stack: int
aload 5
getfield org.eclipse.jdt.internal.compiler.ast.CaseStatement.constantExpression:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
ifnull 10
iconst_1
goto 11
StackMap locals:
StackMap stack: int
10: iconst_0
StackMap locals: org.eclipse.jdt.internal.compiler.ast.SwitchStatement int int int org.eclipse.jdt.internal.compiler.ast.Statement org.eclipse.jdt.internal.compiler.ast.CaseStatement
StackMap stack: int int
11: iadd
istore 1
end local 5 end local 4 12: StackMap locals:
StackMap stack:
iinc 2 1
StackMap locals:
StackMap stack:
13: iload 2
iload 3
if_icmplt 4
end local 3 end local 2 14: iload 1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lorg/eclipse/jdt/internal/compiler/ast/SwitchStatement;
1 15 1 n I
2 14 2 i I
3 14 3 l I
5 12 4 statement Lorg/eclipse/jdt/internal/compiler/ast/Statement;
8 12 5 caseStmt Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
public void resolve(org.eclipse.jdt.internal.compiler.lookup.BlockScope);
descriptor: (Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=20, args_size=2
start local 0 start local 1 0: iconst_0
istore 2
start local 2 1: iconst_0
istore 3
start local 3 2: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.expression:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
aload 1
invokevirtual org.eclipse.jdt.internal.compiler.ast.Expression.resolveType:(Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;)Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
astore 4
start local 4 3: aload 1
invokevirtual org.eclipse.jdt.internal.compiler.lookup.BlockScope.compilerOptions:()Lorg/eclipse/jdt/internal/compiler/impl/CompilerOptions;
astore 5
start local 5 4: aload 4
ifnull 27
5: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.expression:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
aload 1
aload 4
aload 4
invokevirtual org.eclipse.jdt.internal.compiler.ast.Expression.computeConversion:(Lorg/eclipse/jdt/internal/compiler/lookup/Scope;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;)V
6: aload 4
invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.isValidBinding:()Z
ifne 9
7: aconst_null
astore 4
8: goto 27
9: StackMap locals: org.eclipse.jdt.internal.compiler.ast.SwitchStatement org.eclipse.jdt.internal.compiler.lookup.BlockScope int int org.eclipse.jdt.internal.compiler.lookup.TypeBinding org.eclipse.jdt.internal.compiler.impl.CompilerOptions
StackMap stack:
aload 4
invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.isBaseType:()Z
ifeq 14
10: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.expression:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
aload 4
getstatic org.eclipse.jdt.internal.compiler.lookup.TypeBinding.INT:Lorg/eclipse/jdt/internal/compiler/lookup/BaseTypeBinding;
invokevirtual org.eclipse.jdt.internal.compiler.ast.Expression.isConstantValueOfTypeAssignableToType:(Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;)Z
ifeq 12
11: goto 27
12: StackMap locals:
StackMap stack:
aload 4
getstatic org.eclipse.jdt.internal.compiler.lookup.TypeBinding.INT:Lorg/eclipse/jdt/internal/compiler/lookup/BaseTypeBinding;
invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.isCompatibleWith:(Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;)Z
ifeq 25
13: goto 27
14: StackMap locals:
StackMap stack:
aload 4
invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.isEnum:()Z
ifeq 19
15: iconst_1
istore 2
16: aload 5
getfield org.eclipse.jdt.internal.compiler.impl.CompilerOptions.complianceLevel:J
ldc 3211264
lcmp
ifge 27
17: 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.SwitchStatement.expression:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
aload 4
invokevirtual org.eclipse.jdt.internal.compiler.problem.ProblemReporter.incorrectSwitchType:(Lorg/eclipse/jdt/internal/compiler/ast/Expression;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;)V
18: goto 27
19: StackMap locals:
StackMap stack:
aload 1
aload 4
getstatic org.eclipse.jdt.internal.compiler.lookup.TypeBinding.INT:Lorg/eclipse/jdt/internal/compiler/lookup/BaseTypeBinding;
invokevirtual org.eclipse.jdt.internal.compiler.lookup.BlockScope.isBoxingCompatibleWith:(Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;)Z
ifeq 22
20: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.expression:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
aload 1
getstatic org.eclipse.jdt.internal.compiler.lookup.TypeBinding.INT:Lorg/eclipse/jdt/internal/compiler/lookup/BaseTypeBinding;
aload 4
invokevirtual org.eclipse.jdt.internal.compiler.ast.Expression.computeConversion:(Lorg/eclipse/jdt/internal/compiler/lookup/Scope;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;)V
21: goto 27
22: StackMap locals:
StackMap stack:
aload 5
getfield org.eclipse.jdt.internal.compiler.impl.CompilerOptions.complianceLevel:J
ldc 3342336
lcmp
iflt 25
aload 4
getfield org.eclipse.jdt.internal.compiler.lookup.TypeBinding.id:I
bipush 11
if_icmpne 25
23: iconst_1
istore 3
24: goto 27
25: StackMap locals:
StackMap stack:
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.SwitchStatement.expression:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
aload 4
invokevirtual org.eclipse.jdt.internal.compiler.problem.ProblemReporter.incorrectSwitchType:(Lorg/eclipse/jdt/internal/compiler/ast/Expression;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;)V
26: aconst_null
astore 4
27: StackMap locals:
StackMap stack:
iload 3
ifeq 32
28: aload 0
new org.eclipse.jdt.internal.compiler.lookup.LocalVariableBinding
dup
getstatic org.eclipse.jdt.internal.compiler.ast.SwitchStatement.SecretStringVariableName:[C
aload 1
invokevirtual org.eclipse.jdt.internal.compiler.lookup.BlockScope.getJavaLangString:()Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;
iconst_0
iconst_0
invokespecial org.eclipse.jdt.internal.compiler.lookup.LocalVariableBinding.<init>:([CLorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;IZ)V
putfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.dispatchStringCopy:Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;
29: aload 1
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.dispatchStringCopy:Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;
invokevirtual org.eclipse.jdt.internal.compiler.lookup.BlockScope.addLocalVariable:(Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;)V
30: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.dispatchStringCopy:Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;
getstatic org.eclipse.jdt.internal.compiler.impl.Constant.NotAConstant:Lorg/eclipse/jdt/internal/compiler/impl/Constant;
invokevirtual org.eclipse.jdt.internal.compiler.lookup.LocalVariableBinding.setConstant:(Lorg/eclipse/jdt/internal/compiler/impl/Constant;)V
31: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.dispatchStringCopy:Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;
iconst_1
putfield org.eclipse.jdt.internal.compiler.lookup.LocalVariableBinding.useFlag:I
32: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.statements:[Lorg/eclipse/jdt/internal/compiler/ast/Statement;
ifnull 91
33: aload 0
new org.eclipse.jdt.internal.compiler.lookup.BlockScope
dup
aload 1
invokespecial org.eclipse.jdt.internal.compiler.lookup.BlockScope.<init>:(Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;)V
putfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
34: aload 0
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.statements:[Lorg/eclipse/jdt/internal/compiler/ast/Statement;
arraylength
dup
istore 6
start local 6 35: anewarray org.eclipse.jdt.internal.compiler.ast.CaseStatement
putfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.cases:[Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
36: aload 0
aload 0
invokevirtual org.eclipse.jdt.internal.compiler.ast.SwitchStatement.getNConstants:()I
putfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.nConstants:I
37: iload 3
ifne 41
38: aload 0
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.nConstants:I
newarray 10
putfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.constants:[I
39: aload 0
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.nConstants:I
newarray 10
putfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.constMapping:[I
40: goto 43
41: StackMap locals: int
StackMap stack:
aload 0
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.nConstants:I
anewarray java.lang.String
putfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.stringConstants:[Ljava/lang/String;
42: aload 0
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.nConstants:I
newarray 10
putfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.constMapping:[I
43: StackMap locals:
StackMap stack:
iconst_0
istore 7
start local 7 44: iconst_0
istore 8
start local 8 45: iconst_0
istore 9
start local 9 46: goto 83
47: StackMap locals: int int int
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.nConstants:I
newarray 10
astore 11
start local 11 48: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.statements:[Lorg/eclipse/jdt/internal/compiler/ast/Statement;
iload 9
aaload
astore 12
start local 12 49: aload 12
instanceof org.eclipse.jdt.internal.compiler.ast.CaseStatement
ifne 52
50: aload 12
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
invokevirtual org.eclipse.jdt.internal.compiler.ast.Statement.resolve:(Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;)V
51: goto 82
52: StackMap locals: org.eclipse.jdt.internal.compiler.ast.SwitchStatement org.eclipse.jdt.internal.compiler.lookup.BlockScope int int org.eclipse.jdt.internal.compiler.lookup.TypeBinding org.eclipse.jdt.internal.compiler.impl.CompilerOptions int int int int top int[] org.eclipse.jdt.internal.compiler.ast.Statement
StackMap stack:
aload 12
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
aload 4
aload 0
invokevirtual org.eclipse.jdt.internal.compiler.ast.Statement.resolveCase:(Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;Lorg/eclipse/jdt/internal/compiler/ast/SwitchStatement;)[Lorg/eclipse/jdt/internal/compiler/impl/Constant;
dup
astore 10
start local 10 53: getstatic org.eclipse.jdt.internal.compiler.impl.Constant.NotAConstantList:[Lorg/eclipse/jdt/internal/compiler/impl/Constant;
if_acmpeq 81
54: aload 10
dup
astore 16
arraylength
istore 15
iconst_0
istore 14
goto 80
StackMap locals: org.eclipse.jdt.internal.compiler.ast.SwitchStatement org.eclipse.jdt.internal.compiler.lookup.BlockScope int int org.eclipse.jdt.internal.compiler.lookup.TypeBinding org.eclipse.jdt.internal.compiler.impl.CompilerOptions int int int int org.eclipse.jdt.internal.compiler.impl.Constant[] int[] org.eclipse.jdt.internal.compiler.ast.Statement top int int org.eclipse.jdt.internal.compiler.impl.Constant[]
StackMap stack:
55: aload 16
iload 14
aaload
astore 13
start local 13 56: aload 13
getstatic org.eclipse.jdt.internal.compiler.impl.Constant.NotAConstant:Lorg/eclipse/jdt/internal/compiler/impl/Constant;
if_acmpne 58
57: goto 79
58: StackMap locals: org.eclipse.jdt.internal.compiler.ast.SwitchStatement org.eclipse.jdt.internal.compiler.lookup.BlockScope int int org.eclipse.jdt.internal.compiler.lookup.TypeBinding org.eclipse.jdt.internal.compiler.impl.CompilerOptions int int int int org.eclipse.jdt.internal.compiler.impl.Constant[] int[] org.eclipse.jdt.internal.compiler.ast.Statement org.eclipse.jdt.internal.compiler.impl.Constant int int org.eclipse.jdt.internal.compiler.impl.Constant[]
StackMap stack:
iload 3
ifne 68
59: aload 13
invokevirtual org.eclipse.jdt.internal.compiler.impl.Constant.intValue:()I
istore 17
start local 17 60: iconst_0
istore 18
start local 18 61: goto 65
62: StackMap locals: int int
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.constants:[I
iload 18
iaload
iload 17
if_icmpne 64
63: aload 0
aload 12
checkcast org.eclipse.jdt.internal.compiler.ast.CaseStatement
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.cases:[Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
aload 11
iload 18
iaload
aaload
iload 6
invokevirtual org.eclipse.jdt.internal.compiler.ast.SwitchStatement.reportDuplicateCase:(Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;I)V
64: StackMap locals:
StackMap stack:
iinc 18 1
StackMap locals:
StackMap stack:
65: iload 18
iload 7
if_icmplt 62
end local 18 66: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.constants:[I
iload 7
iload 17
iastore
end local 17 67: goto 76
68: StackMap locals:
StackMap stack:
aload 13
invokevirtual org.eclipse.jdt.internal.compiler.impl.Constant.stringValue:()Ljava/lang/String;
astore 17
start local 17 69: iconst_0
istore 18
start local 18 70: goto 74
71: StackMap locals: java.lang.String int
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.stringConstants:[Ljava/lang/String;
iload 18
aaload
aload 17
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 73
72: aload 0
aload 12
checkcast org.eclipse.jdt.internal.compiler.ast.CaseStatement
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.cases:[Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
aload 11
iload 18
iaload
aaload
iload 6
invokevirtual org.eclipse.jdt.internal.compiler.ast.SwitchStatement.reportDuplicateCase:(Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;I)V
73: StackMap locals:
StackMap stack:
iinc 18 1
StackMap locals:
StackMap stack:
74: iload 18
iload 7
if_icmplt 71
end local 18 75: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.stringConstants:[Ljava/lang/String;
iload 7
aload 17
aastore
end local 17 76: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.constMapping:[I
iload 7
iload 7
iastore
77: aload 11
iload 7
iload 8
iastore
78: iinc 7 1
end local 13 79: StackMap locals: org.eclipse.jdt.internal.compiler.ast.SwitchStatement org.eclipse.jdt.internal.compiler.lookup.BlockScope int int org.eclipse.jdt.internal.compiler.lookup.TypeBinding org.eclipse.jdt.internal.compiler.impl.CompilerOptions int int int int org.eclipse.jdt.internal.compiler.impl.Constant[] int[] org.eclipse.jdt.internal.compiler.ast.Statement top int int org.eclipse.jdt.internal.compiler.impl.Constant[]
StackMap stack:
iinc 14 1
StackMap locals:
StackMap stack:
80: iload 14
iload 15
if_icmplt 55
81: StackMap locals: org.eclipse.jdt.internal.compiler.ast.SwitchStatement org.eclipse.jdt.internal.compiler.lookup.BlockScope int int org.eclipse.jdt.internal.compiler.lookup.TypeBinding org.eclipse.jdt.internal.compiler.impl.CompilerOptions int int int int org.eclipse.jdt.internal.compiler.impl.Constant[] int[] org.eclipse.jdt.internal.compiler.ast.Statement
StackMap stack:
iinc 8 1
end local 12 end local 11 end local 10 82: StackMap locals:
StackMap stack:
iinc 9 1
StackMap locals:
StackMap stack:
83: iload 9
iload 6
if_icmplt 47
end local 9 84: iload 6
iload 7
if_icmpeq 93
85: iload 3
ifne 88
86: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.constants:[I
iconst_0
aload 0
iload 7
newarray 10
dup_x1
putfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.constants:[I
iconst_0
iload 7
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
87: goto 89
88: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.stringConstants:[Ljava/lang/String;
iconst_0
aload 0
iload 7
anewarray java.lang.String
dup_x1
putfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.stringConstants:[Ljava/lang/String;
iconst_0
iload 7
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
89: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.constMapping:[I
iconst_0
aload 0
iload 7
newarray 10
dup_x1
putfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.constMapping:[I
iconst_0
iload 7
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
end local 8 end local 7 end local 6 90: goto 93
91: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.bits:I
bipush 8
iand
ifeq 93
92: 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.SwitchStatement.blockStart:I
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.sourceEnd:I
invokevirtual org.eclipse.jdt.internal.compiler.problem.ProblemReporter.undocumentedEmptyBlock:(II)V
93: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.eclipse.jdt.internal.compiler.ast.SwitchStatement.reportMixingCaseTypes:()V
94: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.defaultCase:Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
ifnonnull 100
95: aload 0
aload 5
iload 2
invokevirtual org.eclipse.jdt.internal.compiler.ast.SwitchStatement.ignoreMissingDefaultCase:(Lorg/eclipse/jdt/internal/compiler/impl/CompilerOptions;Z)Z
ifeq 99
96: iload 2
ifeq 100
97: aload 1
invokevirtual org.eclipse.jdt.internal.compiler.lookup.BlockScope.methodScope:()Lorg/eclipse/jdt/internal/compiler/lookup/MethodScope;
iconst_1
putfield org.eclipse.jdt.internal.compiler.lookup.MethodScope.hasMissingSwitchDefault:Z
98: goto 100
99: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.eclipse.jdt.internal.compiler.lookup.BlockScope.problemReporter:()Lorg/eclipse/jdt/internal/compiler/problem/ProblemReporter;
aload 0
iload 2
aload 4
invokevirtual org.eclipse.jdt.internal.compiler.problem.ProblemReporter.missingDefaultCase:(Lorg/eclipse/jdt/internal/compiler/ast/SwitchStatement;ZLorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;)V
100: StackMap locals:
StackMap stack:
iload 2
ifeq 130
aload 5
getfield org.eclipse.jdt.internal.compiler.impl.CompilerOptions.complianceLevel:J
ldc 3211264
lcmp
iflt 130
101: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.defaultCase:Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
ifnull 102
aload 5
getfield org.eclipse.jdt.internal.compiler.impl.CompilerOptions.reportMissingEnumCaseDespiteDefault:Z
ifeq 130
102: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.constants:[I
ifnonnull 103
iconst_0
goto 104
StackMap locals:
StackMap stack:
103: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.constants:[I
arraylength
StackMap locals:
StackMap stack: int
104: istore 6
start local 6 105: iload 6
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.caseCount:I
if_icmplt 130
106: iload 6
aload 4
checkcast org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding
invokevirtual org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding.enumConstantCount:()I
if_icmpeq 130
107: aload 4
invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.erasure:()Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
checkcast org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding
invokevirtual org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding.fields:()[Lorg/eclipse/jdt/internal/compiler/lookup/FieldBinding;
astore 7
start local 7 108: iconst_0
istore 8
start local 8 109: aload 7
arraylength
istore 9
start local 9 110: goto 125
111: StackMap locals: org.eclipse.jdt.internal.compiler.ast.SwitchStatement org.eclipse.jdt.internal.compiler.lookup.BlockScope int int org.eclipse.jdt.internal.compiler.lookup.TypeBinding org.eclipse.jdt.internal.compiler.impl.CompilerOptions int org.eclipse.jdt.internal.compiler.lookup.FieldBinding[] int int
StackMap stack:
aload 7
iload 8
aaload
astore 10
start local 10 112: aload 10
getfield org.eclipse.jdt.internal.compiler.lookup.FieldBinding.modifiers:I
sipush 16384
iand
ifne 113
goto 124
113: StackMap locals: org.eclipse.jdt.internal.compiler.lookup.FieldBinding
StackMap stack:
iconst_0
istore 11
start local 11 114: goto 118
115: StackMap locals: int
StackMap stack:
aload 10
getfield org.eclipse.jdt.internal.compiler.lookup.FieldBinding.id:I
iconst_1
iadd
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.constants:[I
iload 11
iaload
if_icmpne 117
116: goto 124
117: StackMap locals:
StackMap stack:
iinc 11 1
StackMap locals:
StackMap stack:
118: iload 11
iload 6
if_icmplt 115
end local 11 119: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.defaultCase:Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
ifnull 120
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.defaultCase:Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
getfield org.eclipse.jdt.internal.compiler.ast.CaseStatement.bits:I
ldc 1073741824
iand
ifeq 120
iconst_1
goto 121
StackMap locals:
StackMap stack:
120: iconst_0
StackMap locals:
StackMap stack: int
121: istore 11
start local 11 122: iload 11
ifne 124
123: aload 0
aload 1
aload 10
invokevirtual org.eclipse.jdt.internal.compiler.ast.SwitchStatement.reportMissingEnumConstantCase:(Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;Lorg/eclipse/jdt/internal/compiler/lookup/FieldBinding;)V
end local 11 end local 10 124: StackMap locals:
StackMap stack:
iinc 8 1
StackMap locals:
StackMap stack:
125: iload 8
iload 9
if_icmplt 111
end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 126: goto 130
StackMap locals: org.eclipse.jdt.internal.compiler.ast.SwitchStatement org.eclipse.jdt.internal.compiler.lookup.BlockScope
StackMap stack: java.lang.Throwable
127: astore 19
128: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
ifnull 129
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
aconst_null
putfield org.eclipse.jdt.internal.compiler.lookup.BlockScope.enclosingCase:Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
129: StackMap locals: org.eclipse.jdt.internal.compiler.ast.SwitchStatement org.eclipse.jdt.internal.compiler.lookup.BlockScope top top top top top top top top top top top top top top top top top java.lang.Throwable
StackMap stack:
aload 19
athrow
130: StackMap locals: org.eclipse.jdt.internal.compiler.ast.SwitchStatement org.eclipse.jdt.internal.compiler.lookup.BlockScope
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
ifnull 131
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
aconst_null
putfield org.eclipse.jdt.internal.compiler.lookup.BlockScope.enclosingCase:Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
131: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 132 0 this Lorg/eclipse/jdt/internal/compiler/ast/SwitchStatement;
0 132 1 upperScope Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
1 126 2 isEnumSwitch Z
2 126 3 isStringSwitch Z
3 126 4 expressionType Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
4 126 5 compilerOptions Lorg/eclipse/jdt/internal/compiler/impl/CompilerOptions;
35 90 6 length I
44 90 7 counter I
45 90 8 caseCounter I
46 84 9 i I
53 82 10 constantsList [Lorg/eclipse/jdt/internal/compiler/impl/Constant;
48 82 11 caseIndex [I
49 82 12 statement Lorg/eclipse/jdt/internal/compiler/ast/Statement;
56 79 13 con Lorg/eclipse/jdt/internal/compiler/impl/Constant;
60 67 17 key I
61 66 18 j I
69 76 17 key Ljava/lang/String;
70 75 18 j I
105 126 6 constantCount I
108 126 7 enumFields [Lorg/eclipse/jdt/internal/compiler/lookup/FieldBinding;
109 126 8 i I
110 126 9 max I
112 124 10 enumConstant Lorg/eclipse/jdt/internal/compiler/lookup/FieldBinding;
114 119 11 j I
122 124 11 suppress Z
Exception table:
from to target type
0 127 127 any
MethodParameters:
Name Flags
upperScope
protected void reportMissingEnumConstantCase(org.eclipse.jdt.internal.compiler.lookup.BlockScope, org.eclipse.jdt.internal.compiler.lookup.FieldBinding);
descriptor: (Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;Lorg/eclipse/jdt/internal/compiler/lookup/FieldBinding;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual org.eclipse.jdt.internal.compiler.lookup.BlockScope.problemReporter:()Lorg/eclipse/jdt/internal/compiler/problem/ProblemReporter;
aload 0
aload 2
invokevirtual org.eclipse.jdt.internal.compiler.problem.ProblemReporter.missingEnumConstantCase:(Lorg/eclipse/jdt/internal/compiler/ast/SwitchStatement;Lorg/eclipse/jdt/internal/compiler/lookup/FieldBinding;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/eclipse/jdt/internal/compiler/ast/SwitchStatement;
0 2 1 upperScope Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
0 2 2 enumConstant Lorg/eclipse/jdt/internal/compiler/lookup/FieldBinding;
MethodParameters:
Name Flags
upperScope
enumConstant
protected boolean ignoreMissingDefaultCase(org.eclipse.jdt.internal.compiler.impl.CompilerOptions, boolean);
descriptor: (Lorg/eclipse/jdt/internal/compiler/impl/CompilerOptions;Z)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
ldc 1073774592
invokevirtual org.eclipse.jdt.internal.compiler.impl.CompilerOptions.getSeverity:(I)I
sipush 256
if_icmpne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/eclipse/jdt/internal/compiler/ast/SwitchStatement;
0 2 1 compilerOptions Lorg/eclipse/jdt/internal/compiler/impl/CompilerOptions;
0 2 2 isEnumSwitch Z
MethodParameters:
Name Flags
compilerOptions
isEnumSwitch
public boolean isTrulyExpression();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/eclipse/jdt/internal/compiler/ast/SwitchStatement;
private void reportMixingCaseTypes();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=1
start local 0 0: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.caseCount:I
ifne 5
1: aload 0
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.defaultCase:Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
ifnull 2
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.defaultCase:Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
getfield org.eclipse.jdt.internal.compiler.ast.CaseStatement.isExpr:Z
goto 3
StackMap locals:
StackMap stack: org.eclipse.jdt.internal.compiler.ast.SwitchStatement
2: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.switchLabeledRules:Z
StackMap locals: org.eclipse.jdt.internal.compiler.ast.SwitchStatement
StackMap stack: org.eclipse.jdt.internal.compiler.ast.SwitchStatement int
3: putfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.switchLabeledRules:Z
4: return
5: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.cases:[Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
iconst_0
aaload
getfield org.eclipse.jdt.internal.compiler.ast.CaseStatement.isExpr:Z
dup_x1
putfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.switchLabeledRules:Z
istore 1
start local 1 6: iconst_1
istore 2
start local 2 7: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.caseCount:I
istore 3
start local 3 8: goto 13
9: StackMap locals: int int int
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.cases:[Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
iload 2
aaload
getfield org.eclipse.jdt.internal.compiler.ast.CaseStatement.isExpr:Z
iload 1
if_icmpeq 12
10: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
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.SwitchStatement.cases:[Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
iload 2
aaload
invokevirtual org.eclipse.jdt.internal.compiler.problem.ProblemReporter.switchExpressionMixedCase:(Lorg/eclipse/jdt/internal/compiler/ast/ASTNode;)V
11: return
12: StackMap locals:
StackMap stack:
iinc 2 1
StackMap locals:
StackMap stack:
13: iload 2
iload 3
if_icmplt 9
end local 3 end local 2 14: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.defaultCase:Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
ifnull 16
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.defaultCase:Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
getfield org.eclipse.jdt.internal.compiler.ast.CaseStatement.isExpr:Z
iload 1
if_icmpeq 16
15: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
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.SwitchStatement.defaultCase:Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
invokevirtual org.eclipse.jdt.internal.compiler.problem.ProblemReporter.switchExpressionMixedCase:(Lorg/eclipse/jdt/internal/compiler/ast/ASTNode;)V
16: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lorg/eclipse/jdt/internal/compiler/ast/SwitchStatement;
6 17 1 isExpr Z
7 14 2 i I
8 14 3 l I
private void reportDuplicateCase(org.eclipse.jdt.internal.compiler.ast.CaseStatement, org.eclipse.jdt.internal.compiler.ast.CaseStatement, int);
descriptor: (Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.duplicateCaseStatements:[Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
ifnonnull 9
1: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
invokevirtual org.eclipse.jdt.internal.compiler.lookup.BlockScope.problemReporter:()Lorg/eclipse/jdt/internal/compiler/problem/ProblemReporter;
aload 2
invokevirtual org.eclipse.jdt.internal.compiler.problem.ProblemReporter.duplicateCase:(Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;)V
2: aload 1
aload 2
if_acmpeq 4
3: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
invokevirtual org.eclipse.jdt.internal.compiler.lookup.BlockScope.problemReporter:()Lorg/eclipse/jdt/internal/compiler/problem/ProblemReporter;
aload 1
invokevirtual org.eclipse.jdt.internal.compiler.problem.ProblemReporter.duplicateCase:(Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;)V
4: StackMap locals:
StackMap stack:
aload 0
iload 3
anewarray org.eclipse.jdt.internal.compiler.ast.CaseStatement
putfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.duplicateCaseStatements:[Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
5: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.duplicateCaseStatements:[Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
aload 0
dup
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.duplicateCaseStatementsCounter:I
dup_x1
iconst_1
iadd
putfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.duplicateCaseStatementsCounter:I
aload 2
aastore
6: aload 1
aload 2
if_acmpeq 20
7: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.duplicateCaseStatements:[Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
aload 0
dup
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.duplicateCaseStatementsCounter:I
dup_x1
iconst_1
iadd
putfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.duplicateCaseStatementsCounter:I
aload 1
aastore
8: goto 20
9: StackMap locals:
StackMap stack:
iconst_0
istore 4
start local 4 10: iconst_2
istore 5
start local 5 11: goto 16
12: StackMap locals: int int
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.duplicateCaseStatements:[Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
iload 5
aaload
aload 1
if_acmpne 15
13: iconst_1
istore 4
14: goto 17
15: StackMap locals:
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
16: iload 5
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.duplicateCaseStatementsCounter:I
if_icmplt 12
end local 5 17: StackMap locals:
StackMap stack:
iload 4
ifne 20
18: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
invokevirtual org.eclipse.jdt.internal.compiler.lookup.BlockScope.problemReporter:()Lorg/eclipse/jdt/internal/compiler/problem/ProblemReporter;
aload 1
invokevirtual org.eclipse.jdt.internal.compiler.problem.ProblemReporter.duplicateCase:(Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;)V
19: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.duplicateCaseStatements:[Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
aload 0
dup
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.duplicateCaseStatementsCounter:I
dup_x1
iconst_1
iadd
putfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.duplicateCaseStatementsCounter:I
aload 1
aastore
end local 4 20: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lorg/eclipse/jdt/internal/compiler/ast/SwitchStatement;
0 21 1 duplicate Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
0 21 2 original Lorg/eclipse/jdt/internal/compiler/ast/CaseStatement;
0 21 3 length I
10 20 4 found Z
11 17 5 k I
MethodParameters:
Name Flags
duplicate final
original final
length
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=5, 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/SwitchStatement;Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;)Z
ifeq 9
1: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.expression:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
aload 1
aload 2
invokevirtual org.eclipse.jdt.internal.compiler.ast.Expression.traverse:(Lorg/eclipse/jdt/internal/compiler/ASTVisitor;Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;)V
2: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.statements:[Lorg/eclipse/jdt/internal/compiler/ast/Statement;
ifnull 9
3: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.statements:[Lorg/eclipse/jdt/internal/compiler/ast/Statement;
arraylength
istore 3
start local 3 4: iconst_0
istore 4
start local 4 5: goto 8
6: StackMap locals: int int
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.statements:[Lorg/eclipse/jdt/internal/compiler/ast/Statement;
iload 4
aaload
aload 1
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
invokevirtual org.eclipse.jdt.internal.compiler.ast.Statement.traverse:(Lorg/eclipse/jdt/internal/compiler/ASTVisitor;Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;)V
7: iinc 4 1
StackMap locals:
StackMap stack:
8: iload 4
iload 3
if_icmplt 6
end local 4 end local 3 9: StackMap locals:
StackMap stack:
aload 1
aload 0
aload 2
invokevirtual org.eclipse.jdt.internal.compiler.ASTVisitor.endVisit:(Lorg/eclipse/jdt/internal/compiler/ast/SwitchStatement;Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;)V
10: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/eclipse/jdt/internal/compiler/ast/SwitchStatement;
0 11 1 visitor Lorg/eclipse/jdt/internal/compiler/ASTVisitor;
0 11 2 blockScope Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
4 9 3 statementsLength I
5 9 4 i I
MethodParameters:
Name Flags
visitor
blockScope
public void branchChainTo(org.eclipse.jdt.internal.compiler.codegen.BranchLabel);
descriptor: (Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.breakLabel:Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;
invokevirtual org.eclipse.jdt.internal.compiler.codegen.BranchLabel.forwardReferenceCount:()I
ifle 2
1: aload 1
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.breakLabel:Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;
invokevirtual org.eclipse.jdt.internal.compiler.codegen.BranchLabel.becomeDelegateFor:(Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;)V
2: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/eclipse/jdt/internal/compiler/ast/SwitchStatement;
0 3 1 label Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;
MethodParameters:
Name Flags
label
public boolean doesNotCompleteNormally();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.statements:[Lorg/eclipse/jdt/internal/compiler/ast/Statement;
ifnull 1
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.statements:[Lorg/eclipse/jdt/internal/compiler/ast/Statement;
arraylength
ifne 2
1: StackMap locals:
StackMap stack:
iconst_0
ireturn
2: StackMap locals:
StackMap stack:
iconst_0
istore 1
start local 1 3: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.statements:[Lorg/eclipse/jdt/internal/compiler/ast/Statement;
arraylength
istore 2
start local 2 4: goto 8
5: StackMap locals: int int
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.statements:[Lorg/eclipse/jdt/internal/compiler/ast/Statement;
iload 1
aaload
aconst_null
invokevirtual org.eclipse.jdt.internal.compiler.ast.Statement.breaksOut:([C)Z
ifeq 7
6: iconst_0
ireturn
7: StackMap locals:
StackMap stack:
iinc 1 1
StackMap locals:
StackMap stack:
8: iload 1
iload 2
if_icmplt 5
end local 2 end local 1 9: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.statements:[Lorg/eclipse/jdt/internal/compiler/ast/Statement;
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.statements:[Lorg/eclipse/jdt/internal/compiler/ast/Statement;
arraylength
iconst_1
isub
aaload
invokevirtual org.eclipse.jdt.internal.compiler.ast.Statement.doesNotCompleteNormally:()Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/eclipse/jdt/internal/compiler/ast/SwitchStatement;
3 9 1 i I
4 9 2 length I
public boolean completesByContinue();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=1
start local 0 0: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.statements:[Lorg/eclipse/jdt/internal/compiler/ast/Statement;
ifnull 1
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.statements:[Lorg/eclipse/jdt/internal/compiler/ast/Statement;
arraylength
ifne 2
1: StackMap locals:
StackMap stack:
iconst_0
ireturn
2: StackMap locals:
StackMap stack:
iconst_0
istore 1
start local 1 3: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.statements:[Lorg/eclipse/jdt/internal/compiler/ast/Statement;
arraylength
istore 2
start local 2 4: goto 8
5: StackMap locals: int int
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.SwitchStatement.statements:[Lorg/eclipse/jdt/internal/compiler/ast/Statement;
iload 1
aaload
invokevirtual org.eclipse.jdt.internal.compiler.ast.Statement.completesByContinue:()Z
ifeq 7
6: iconst_1
ireturn
7: StackMap locals:
StackMap stack:
iinc 1 1
StackMap locals:
StackMap stack:
8: iload 1
iload 2
if_icmplt 5
end local 2 end local 1 9: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/eclipse/jdt/internal/compiler/ast/SwitchStatement;
3 9 1 i I
4 9 2 length I
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
iload 1
aload 2
invokevirtual org.eclipse.jdt.internal.compiler.ast.SwitchStatement.printStatement:(ILjava/lang/StringBuffer;)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/SwitchStatement;
0 1 1 indent I
0 1 2 output Ljava/lang/StringBuffer;
MethodParameters:
Name Flags
indent
output
}
SourceFile: "SwitchStatement.java"
NestMembers:
org.eclipse.jdt.internal.compiler.ast.SwitchStatement$1StringSwitchCase
InnerClasses:
StringSwitchCase = org.eclipse.jdt.internal.compiler.ast.SwitchStatement$1StringSwitchCase