public class org.eclipse.jdt.internal.compiler.ast.ForeachStatement extends org.eclipse.jdt.internal.compiler.ast.Statement
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.eclipse.jdt.internal.compiler.ast.ForeachStatement
super_class: org.eclipse.jdt.internal.compiler.ast.Statement
{
public org.eclipse.jdt.internal.compiler.ast.LocalDeclaration elementVariable;
descriptor: Lorg/eclipse/jdt/internal/compiler/ast/LocalDeclaration;
flags: (0x0001) ACC_PUBLIC
public int elementVariableImplicitWidening;
descriptor: I
flags: (0x0001) ACC_PUBLIC
public org.eclipse.jdt.internal.compiler.ast.Expression collection;
descriptor: Lorg/eclipse/jdt/internal/compiler/ast/Expression;
flags: (0x0001) ACC_PUBLIC
public org.eclipse.jdt.internal.compiler.ast.Statement action;
descriptor: Lorg/eclipse/jdt/internal/compiler/ast/Statement;
flags: (0x0001) ACC_PUBLIC
private int kind;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private static final int ARRAY;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private static final int RAW_ITERABLE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int GENERIC_ITERABLE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2
private org.eclipse.jdt.internal.compiler.lookup.TypeBinding iteratorReceiverType;
descriptor: Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
flags: (0x0002) ACC_PRIVATE
private org.eclipse.jdt.internal.compiler.lookup.TypeBinding collectionElementType;
descriptor: Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
flags: (0x0002) ACC_PRIVATE
private org.eclipse.jdt.internal.compiler.codegen.BranchLabel breakLabel;
descriptor: Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;
flags: (0x0002) ACC_PRIVATE
private org.eclipse.jdt.internal.compiler.codegen.BranchLabel continueLabel;
descriptor: Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;
flags: (0x0002) ACC_PRIVATE
public org.eclipse.jdt.internal.compiler.lookup.BlockScope scope;
descriptor: Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
flags: (0x0001) ACC_PUBLIC
public org.eclipse.jdt.internal.compiler.lookup.LocalVariableBinding indexVariable;
descriptor: Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;
flags: (0x0001) ACC_PUBLIC
public org.eclipse.jdt.internal.compiler.lookup.LocalVariableBinding collectionVariable;
descriptor: Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;
flags: (0x0001) ACC_PUBLIC
public org.eclipse.jdt.internal.compiler.lookup.LocalVariableBinding maxVariable;
descriptor: Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;
flags: (0x0001) ACC_PUBLIC
private static final char[] SecretIteratorVariableName;
descriptor: [C
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final char[] SecretIndexVariableName;
descriptor: [C
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final char[] SecretCollectionVariableName;
descriptor: [C
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final char[] SecretMaxVariableName;
descriptor: [C
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
int postCollectionInitStateIndex;
descriptor: I
flags: (0x0000)
int mergedInitStateIndex;
descriptor: I
flags: (0x0000)
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc " iterator"
invokevirtual java.lang.String.toCharArray:()[C
putstatic org.eclipse.jdt.internal.compiler.ast.ForeachStatement.SecretIteratorVariableName:[C
1: ldc " index"
invokevirtual java.lang.String.toCharArray:()[C
putstatic org.eclipse.jdt.internal.compiler.ast.ForeachStatement.SecretIndexVariableName:[C
2: ldc " collection"
invokevirtual java.lang.String.toCharArray:()[C
putstatic org.eclipse.jdt.internal.compiler.ast.ForeachStatement.SecretCollectionVariableName:[C
3: ldc " max"
invokevirtual java.lang.String.toCharArray:()[C
putstatic org.eclipse.jdt.internal.compiler.ast.ForeachStatement.SecretMaxVariableName:[C
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(org.eclipse.jdt.internal.compiler.ast.LocalDeclaration, int);
descriptor: (Lorg/eclipse/jdt/internal/compiler/ast/LocalDeclaration;I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial org.eclipse.jdt.internal.compiler.ast.Statement.<init>:()V
1: aload 0
iconst_m1
putfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.elementVariableImplicitWidening:I
2: aload 0
iconst_m1
putfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.postCollectionInitStateIndex:I
3: aload 0
iconst_m1
putfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.mergedInitStateIndex:I
4: aload 0
aload 1
putfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.elementVariable:Lorg/eclipse/jdt/internal/compiler/ast/LocalDeclaration;
5: aload 0
iload 2
putfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.sourceStart:I
6: aload 0
iconst_m1
putfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.kind:I
7: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/eclipse/jdt/internal/compiler/ast/ForeachStatement;
0 8 1 elementVariable Lorg/eclipse/jdt/internal/compiler/ast/LocalDeclaration;
0 8 2 start I
MethodParameters:
Name Flags
elementVariable
start
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=9, locals=12, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
new org.eclipse.jdt.internal.compiler.codegen.BranchLabel
dup
invokespecial org.eclipse.jdt.internal.compiler.codegen.BranchLabel.<init>:()V
putfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.breakLabel:Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;
1: aload 0
new org.eclipse.jdt.internal.compiler.codegen.BranchLabel
dup
invokespecial org.eclipse.jdt.internal.compiler.codegen.BranchLabel.<init>:()V
putfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.continueLabel:Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;
2: aload 3
invokevirtual org.eclipse.jdt.internal.compiler.flow.FlowInfo.reachMode:()I
iconst_3
iand
ifeq 3
iconst_1
goto 4
StackMap locals:
StackMap stack:
3: iconst_0
StackMap locals:
StackMap stack: int
4: istore 4
start local 4 5: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.elementVariable:Lorg/eclipse/jdt/internal/compiler/ast/LocalDeclaration;
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
aload 2
aload 3
invokevirtual org.eclipse.jdt.internal.compiler.ast.LocalDeclaration.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
6: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.collection:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
aload 2
aload 3
invokevirtual org.eclipse.jdt.internal.compiler.flow.FlowInfo.copy:()Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
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 5
start local 5 7: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.collection:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
aload 1
aload 2
aload 5
invokevirtual org.eclipse.jdt.internal.compiler.flow.FlowInfo.copy:()Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
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
8: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.elementVariable:Lorg/eclipse/jdt/internal/compiler/ast/LocalDeclaration;
getfield org.eclipse.jdt.internal.compiler.ast.LocalDeclaration.binding:Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;
astore 6
start local 6 9: aload 5
aload 6
invokevirtual org.eclipse.jdt.internal.compiler.flow.FlowInfo.markAsDefinitelyAssigned:(Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;)V
10: aload 0
aload 1
invokevirtual org.eclipse.jdt.internal.compiler.lookup.BlockScope.methodScope:()Lorg/eclipse/jdt/internal/compiler/lookup/MethodScope;
aload 5
invokevirtual org.eclipse.jdt.internal.compiler.lookup.MethodScope.recordInitializationStates:(Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;)I
putfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.postCollectionInitStateIndex:I
11: new org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext
dup
aload 2
aload 3
aload 0
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.breakLabel:Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;
12: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.continueLabel:Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
iconst_1
13: invokespecial org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext.<init>:(Lorg/eclipse/jdt/internal/compiler/flow/FlowContext;Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;Lorg/eclipse/jdt/internal/compiler/ast/ASTNode;Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;Lorg/eclipse/jdt/internal/compiler/lookup/Scope;Z)V
14: astore 7
start local 7 15: aload 5
invokevirtual org.eclipse.jdt.internal.compiler.flow.FlowInfo.nullInfoLessUnconditionalCopy:()Lorg/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo;
16: astore 8
start local 8 17: aload 8
aload 6
invokevirtual org.eclipse.jdt.internal.compiler.flow.UnconditionalFlowInfo.markAsDefinitelyUnknown:(Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;)V
18: 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.isAnnotationBasedNullAnalysisEnabled:Z
ifeq 25
19: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.collectionElementType:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
invokestatic org.eclipse.jdt.internal.compiler.ast.NullAnnotationMatching.nullStatusFromExpressionType:(Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;)I
istore 9
start local 9 20: aload 1
aload 2
aload 6
aconst_null
21: iload 9
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.collection:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.collectionElementType:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
22: invokestatic org.eclipse.jdt.internal.compiler.ast.NullAnnotationMatching.checkAssignment:(Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;Lorg/eclipse/jdt/internal/compiler/flow/FlowContext;Lorg/eclipse/jdt/internal/compiler/lookup/VariableBinding;Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;ILorg/eclipse/jdt/internal/compiler/ast/Expression;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;)I
istore 10
start local 10 23: aload 6
getfield org.eclipse.jdt.internal.compiler.lookup.LocalVariableBinding.type:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
getfield org.eclipse.jdt.internal.compiler.lookup.TypeBinding.tagBits:J
ldc 2
land
lconst_0
lcmp
ifne 25
24: aload 8
aload 6
iload 10
invokevirtual org.eclipse.jdt.internal.compiler.flow.UnconditionalFlowInfo.markNullStatus:(Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;I)V
end local 10 end local 9 25: StackMap locals: org.eclipse.jdt.internal.compiler.ast.ForeachStatement org.eclipse.jdt.internal.compiler.lookup.BlockScope org.eclipse.jdt.internal.compiler.flow.FlowContext org.eclipse.jdt.internal.compiler.flow.FlowInfo int org.eclipse.jdt.internal.compiler.flow.FlowInfo org.eclipse.jdt.internal.compiler.lookup.LocalVariableBinding org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext org.eclipse.jdt.internal.compiler.flow.UnconditionalFlowInfo
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.action:Lorg/eclipse/jdt/internal/compiler/ast/Statement;
ifnull 44
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.action:Lorg/eclipse/jdt/internal/compiler/ast/Statement;
invokevirtual org.eclipse.jdt.internal.compiler.ast.Statement.isEmptyBlock:()Z
ifeq 27
26: 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 3080192
lcmp
ifle 44
27: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.action:Lorg/eclipse/jdt/internal/compiler/ast/Statement;
aload 8
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
iload 4
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
iconst_2
if_icmpge 32
28: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.action:Lorg/eclipse/jdt/internal/compiler/ast/Statement;
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
aload 7
aload 8
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;
invokevirtual org.eclipse.jdt.internal.compiler.flow.FlowInfo.unconditionalCopy:()Lorg/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo;
astore 8
29: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.action:Lorg/eclipse/jdt/internal/compiler/ast/Statement;
instanceof org.eclipse.jdt.internal.compiler.ast.Block
ifeq 32
30: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.elementVariable:Lorg/eclipse/jdt/internal/compiler/ast/LocalDeclaration;
invokestatic org.eclipse.jdt.internal.compiler.ast.FakedTrackingVariable.markForeachElementVar:(Lorg/eclipse/jdt/internal/compiler/ast/LocalDeclaration;)V
31: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
aload 8
aload 7
aconst_null
aconst_null
invokevirtual org.eclipse.jdt.internal.compiler.lookup.BlockScope.checkUnclosedCloseables:(Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;Lorg/eclipse/jdt/internal/compiler/flow/FlowContext;Lorg/eclipse/jdt/internal/compiler/ast/ASTNode;Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;)V
32: StackMap locals:
StackMap stack:
aload 3
invokevirtual org.eclipse.jdt.internal.compiler.flow.FlowInfo.unconditionalCopy:()Lorg/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo;
33: aload 5
invokevirtual org.eclipse.jdt.internal.compiler.flow.FlowInfo.initsWhenFalse:()Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
invokevirtual org.eclipse.jdt.internal.compiler.flow.UnconditionalFlowInfo.addInitializationsFrom:(Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;)Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
34: astore 9
start local 9 35: aload 8
getfield org.eclipse.jdt.internal.compiler.flow.UnconditionalFlowInfo.tagBits:I
aload 7
getfield org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext.initsOnContinue:Lorg/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo;
getfield org.eclipse.jdt.internal.compiler.flow.UnconditionalFlowInfo.tagBits:I
iand
36: iconst_1
37: iand
ifeq 40
38: aload 0
aconst_null
putfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.continueLabel:Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;
39: goto 47
40: StackMap locals: org.eclipse.jdt.internal.compiler.flow.FlowInfo
StackMap stack:
aload 8
aload 7
getfield org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext.initsOnContinue:Lorg/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo;
invokevirtual org.eclipse.jdt.internal.compiler.flow.UnconditionalFlowInfo.mergedWith:(Lorg/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo;)Lorg/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo;
astore 8
41: aload 7
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
aload 8
invokevirtual org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext.complainOnDeferredFinalChecks:(Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;)V
42: aload 9
aload 8
invokevirtual org.eclipse.jdt.internal.compiler.flow.FlowInfo.addPotentialInitializationsFrom:(Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;)Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
pop
43: goto 47
end local 9 44: StackMap locals:
StackMap stack:
aload 5
invokevirtual org.eclipse.jdt.internal.compiler.flow.FlowInfo.initsWhenFalse:()Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
astore 9
start local 9 45: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.action:Lorg/eclipse/jdt/internal/compiler/ast/Statement;
instanceof org.eclipse.jdt.internal.compiler.ast.Block
ifeq 47
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.action:Lorg/eclipse/jdt/internal/compiler/ast/Statement;
invokevirtual org.eclipse.jdt.internal.compiler.ast.Statement.isEmptyBlock:()Z
ifne 47
46: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
aload 8
aload 7
aconst_null
aconst_null
invokevirtual org.eclipse.jdt.internal.compiler.lookup.BlockScope.checkUnclosedCloseables:(Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;Lorg/eclipse/jdt/internal/compiler/flow/FlowContext;Lorg/eclipse/jdt/internal/compiler/ast/ASTNode;Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;)V
47: StackMap locals: org.eclipse.jdt.internal.compiler.flow.FlowInfo
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.action:Lorg/eclipse/jdt/internal/compiler/ast/Statement;
ifnull 51
48: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.action:Lorg/eclipse/jdt/internal/compiler/ast/Statement;
invokevirtual org.eclipse.jdt.internal.compiler.ast.Statement.isEmptyBlock:()Z
ifne 51
49: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.action:Lorg/eclipse/jdt/internal/compiler/ast/Statement;
getfield org.eclipse.jdt.internal.compiler.ast.Statement.bits:I
iconst_1
iand
ifne 51
50: iconst_0
goto 52
StackMap locals:
StackMap stack:
51: iconst_1
StackMap locals:
StackMap stack: int
52: istore 10
start local 10 53: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.kind:I
tableswitch { // 0 - 2
0: 54
1: 61
2: 61
default: 62
}
54: StackMap locals: int
StackMap stack:
iload 10
ifeq 56
55: aload 6
getfield org.eclipse.jdt.internal.compiler.lookup.LocalVariableBinding.resolvedPosition:I
iconst_m1
if_icmpeq 62
56: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.collectionVariable:Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;
iconst_1
putfield org.eclipse.jdt.internal.compiler.lookup.LocalVariableBinding.useFlag:I
57: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.continueLabel:Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;
ifnull 62
58: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.indexVariable:Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;
iconst_1
putfield org.eclipse.jdt.internal.compiler.lookup.LocalVariableBinding.useFlag:I
59: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.maxVariable:Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;
iconst_1
putfield org.eclipse.jdt.internal.compiler.lookup.LocalVariableBinding.useFlag:I
60: goto 62
61: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.indexVariable:Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;
iconst_1
putfield org.eclipse.jdt.internal.compiler.lookup.LocalVariableBinding.useFlag:I
62: StackMap locals:
StackMap stack:
aload 7
aload 1
aload 8
invokevirtual org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext.complainOnDeferredNullChecks:(Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;)V
63: aload 7
invokevirtual org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext.hasEscapingExceptions:()Z
ifeq 68
64: aload 3
invokevirtual org.eclipse.jdt.internal.compiler.flow.FlowInfo.copy:()Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
astore 11
start local 11 65: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.continueLabel:Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;
ifnull 67
66: aload 11
aload 11
invokevirtual org.eclipse.jdt.internal.compiler.flow.FlowInfo.unconditionalCopy:()Lorg/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo;
aload 8
invokevirtual org.eclipse.jdt.internal.compiler.flow.UnconditionalFlowInfo.addNullInfoFrom:(Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;)Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
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 11
67: StackMap locals: org.eclipse.jdt.internal.compiler.flow.FlowInfo
StackMap stack:
aload 7
aload 11
invokevirtual org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext.simulateThrowAfterLoopBack:(Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;)V
end local 11 68: StackMap locals:
StackMap stack:
aload 7
getfield org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext.initsOnBreak:Lorg/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo;
getfield org.eclipse.jdt.internal.compiler.flow.UnconditionalFlowInfo.tagBits:I
69: iconst_3
70: iand
ifeq 72
71: aload 7
getfield org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext.initsOnBreak:Lorg/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo;
goto 73
72: StackMap locals:
StackMap stack:
aload 3
aload 7
getfield org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext.initsOnBreak:Lorg/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo;
invokevirtual org.eclipse.jdt.internal.compiler.flow.FlowInfo.addInitializationsFrom:(Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;)Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
73: StackMap locals:
StackMap stack: org.eclipse.jdt.internal.compiler.flow.FlowInfo
iconst_0
74: aload 9
75: iconst_0
76: iconst_1
77: invokestatic org.eclipse.jdt.internal.compiler.flow.FlowInfo.mergedOptimizedBranches:(Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;ZLorg/eclipse/jdt/internal/compiler/flow/FlowInfo;ZZ)Lorg/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo;
astore 11
start local 11 78: aload 11
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.elementVariable:Lorg/eclipse/jdt/internal/compiler/ast/LocalDeclaration;
getfield org.eclipse.jdt.internal.compiler.ast.LocalDeclaration.binding:Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;
invokevirtual org.eclipse.jdt.internal.compiler.flow.FlowInfo.resetAssignmentInfo:(Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;)V
79: aload 0
aload 1
invokevirtual org.eclipse.jdt.internal.compiler.lookup.BlockScope.methodScope:()Lorg/eclipse/jdt/internal/compiler/lookup/MethodScope;
aload 11
invokevirtual org.eclipse.jdt.internal.compiler.lookup.MethodScope.recordInitializationStates:(Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;)I
putfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.mergedInitStateIndex:I
80: aload 11
areturn
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 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 81 0 this Lorg/eclipse/jdt/internal/compiler/ast/ForeachStatement;
0 81 1 currentScope Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
0 81 2 flowContext Lorg/eclipse/jdt/internal/compiler/flow/FlowContext;
0 81 3 flowInfo Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
5 81 4 initialComplaintLevel I
7 81 5 condInfo Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
9 81 6 elementVarBinding Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;
15 81 7 loopingContext Lorg/eclipse/jdt/internal/compiler/flow/LoopingFlowContext;
17 81 8 actionInfo Lorg/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo;
20 25 9 elementNullStatus I
23 25 10 nullStatus I
35 44 9 exitBranch Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
45 81 9 exitBranch Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
53 81 10 hasEmptyAction Z
65 68 11 loopbackFlowInfo Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
78 81 11 mergedInfo Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
MethodParameters:
Name Flags
currentScope
flowContext
flowInfo
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=4, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.bits:I
ldc -2147483648
iand
ifne 2
1: return
2: StackMap locals:
StackMap stack:
aload 2
getfield org.eclipse.jdt.internal.compiler.codegen.CodeStream.position:I
istore 3
start local 3 3: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.action:Lorg/eclipse/jdt/internal/compiler/ast/Statement;
ifnull 7
4: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.action:Lorg/eclipse/jdt/internal/compiler/ast/Statement;
invokevirtual org.eclipse.jdt.internal.compiler.ast.Statement.isEmptyBlock:()Z
ifne 7
5: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.action:Lorg/eclipse/jdt/internal/compiler/ast/Statement;
getfield org.eclipse.jdt.internal.compiler.ast.Statement.bits:I
iconst_1
iand
ifne 7
6: iconst_0
goto 8
StackMap locals: int
StackMap stack:
7: iconst_1
StackMap locals:
StackMap stack: int
8: istore 4
start local 4 9: iload 4
ifeq 19
10: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.elementVariable:Lorg/eclipse/jdt/internal/compiler/ast/LocalDeclaration;
getfield org.eclipse.jdt.internal.compiler.ast.LocalDeclaration.binding:Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;
getfield org.eclipse.jdt.internal.compiler.lookup.LocalVariableBinding.resolvedPosition:I
iconst_m1
if_icmpne 19
11: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.kind:I
ifne 19
12: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.collection:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
aload 2
iconst_0
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
13: aload 2
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.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
14: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.mergedInitStateIndex:I
iconst_m1
if_icmpeq 17
15: aload 2
aload 1
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.mergedInitStateIndex:I
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.removeNotDefinitelyAssignedVariables:(Lorg/eclipse/jdt/internal/compiler/lookup/Scope;I)V
16: aload 2
aload 1
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.mergedInitStateIndex:I
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.addDefinitelyAssignedVariables:(Lorg/eclipse/jdt/internal/compiler/lookup/Scope;I)V
17: StackMap locals: int
StackMap stack:
aload 2
iload 3
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.sourceStart:I
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.recordPositionsFrom:(II)V
18: return
19: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.kind:I
tableswitch { // 0 - 2
0: 20
1: 31
2: 31
default: 35
}
20: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.collection:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
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
21: aload 2
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.collectionVariable: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
22: aload 2
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.collectionVariable:Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.addVariable:(Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;)V
23: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.continueLabel:Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;
ifnull 35
24: aload 2
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.arraylength:()V
25: aload 2
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.maxVariable:Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;
iconst_0
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.store:(Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;Z)V
26: aload 2
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.maxVariable:Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.addVariable:(Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;)V
27: aload 2
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.iconst_0:()V
28: aload 2
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.indexVariable:Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;
iconst_0
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.store:(Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;Z)V
29: aload 2
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.indexVariable:Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.addVariable:(Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;)V
30: goto 35
31: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.collection:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
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
32: aload 2
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.iteratorReceiverType:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.invokeIterableIterator:(Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;)V
33: aload 2
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.indexVariable:Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;
iconst_0
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.store:(Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;Z)V
34: aload 2
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.indexVariable:Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.addVariable:(Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;)V
35: StackMap locals:
StackMap stack:
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 5
start local 5 36: aload 5
dup
getfield org.eclipse.jdt.internal.compiler.codegen.BranchLabel.tagBits:I
iconst_2
ior
putfield org.eclipse.jdt.internal.compiler.codegen.BranchLabel.tagBits:I
37: 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 6
start local 6 38: aload 6
dup
getfield org.eclipse.jdt.internal.compiler.codegen.BranchLabel.tagBits:I
iconst_2
ior
putfield org.eclipse.jdt.internal.compiler.codegen.BranchLabel.tagBits:I
39: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.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
40: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.continueLabel:Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;
ifnonnull 52
41: aload 6
invokevirtual org.eclipse.jdt.internal.compiler.codegen.BranchLabel.place:()V
42: aload 2
getfield org.eclipse.jdt.internal.compiler.codegen.CodeStream.position:I
istore 7
start local 7 43: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.kind:I
tableswitch { // 0 - 2
0: 44
1: 47
2: 47
default: 50
}
44: StackMap locals: org.eclipse.jdt.internal.compiler.codegen.BranchLabel org.eclipse.jdt.internal.compiler.codegen.BranchLabel int
StackMap stack:
aload 2
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.arraylength:()V
45: aload 2
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.breakLabel:Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.ifeq:(Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;)V
46: goto 50
47: StackMap locals:
StackMap stack:
aload 2
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.indexVariable:Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.load:(Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;)V
48: aload 2
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.invokeJavaUtilIteratorHasNext:()V
49: aload 2
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.breakLabel:Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.ifeq:(Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;)V
50: StackMap locals:
StackMap stack:
aload 2
iload 7
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.elementVariable:Lorg/eclipse/jdt/internal/compiler/ast/LocalDeclaration;
getfield org.eclipse.jdt.internal.compiler.ast.LocalDeclaration.sourceStart:I
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.recordPositionsFrom:(II)V
end local 7 51: goto 55
52: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.continueLabel: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
53: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.continueLabel:Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;
dup
getfield org.eclipse.jdt.internal.compiler.codegen.BranchLabel.tagBits:I
iconst_2
ior
putfield org.eclipse.jdt.internal.compiler.codegen.BranchLabel.tagBits:I
54: aload 2
aload 6
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.goto_:(Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;)V
55: StackMap locals:
StackMap stack:
aload 5
invokevirtual org.eclipse.jdt.internal.compiler.codegen.BranchLabel.place:()V
56: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.kind:I
tableswitch { // 0 - 2
0: 57
1: 74
2: 74
default: 95
}
57: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.elementVariable:Lorg/eclipse/jdt/internal/compiler/ast/LocalDeclaration;
getfield org.eclipse.jdt.internal.compiler.ast.LocalDeclaration.binding:Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;
getfield org.eclipse.jdt.internal.compiler.lookup.LocalVariableBinding.resolvedPosition:I
iconst_m1
if_icmpeq 95
58: aload 2
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.collectionVariable:Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.load:(Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;)V
59: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.continueLabel:Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;
ifnonnull 62
60: aload 2
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.iconst_0:()V
61: goto 63
62: StackMap locals:
StackMap stack:
aload 2
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.indexVariable:Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.load:(Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;)V
63: StackMap locals:
StackMap stack:
aload 2
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.collectionElementType:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
getfield org.eclipse.jdt.internal.compiler.lookup.TypeBinding.id:I
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.arrayAt:(I)V
64: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.elementVariableImplicitWidening:I
iconst_m1
if_icmpeq 66
65: aload 2
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.elementVariableImplicitWidening:I
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.generateImplicitConversion:(I)V
66: StackMap locals:
StackMap stack:
aload 2
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.elementVariable:Lorg/eclipse/jdt/internal/compiler/ast/LocalDeclaration;
getfield org.eclipse.jdt.internal.compiler.ast.LocalDeclaration.binding:Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;
iconst_0
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.store:(Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;Z)V
67: aload 2
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.elementVariable:Lorg/eclipse/jdt/internal/compiler/ast/LocalDeclaration;
getfield org.eclipse.jdt.internal.compiler.ast.LocalDeclaration.binding:Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.addVisibleLocalVariable:(Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;)V
68: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.postCollectionInitStateIndex:I
iconst_m1
if_icmpeq 95
69: aload 2
70: aload 1
71: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.postCollectionInitStateIndex:I
72: invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.addDefinitelyAssignedVariables:(Lorg/eclipse/jdt/internal/compiler/lookup/Scope;I)V
73: goto 95
74: StackMap locals:
StackMap stack:
aload 2
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.indexVariable:Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.load:(Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;)V
75: aload 2
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.invokeJavaUtilIteratorNext:()V
76: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.elementVariable:Lorg/eclipse/jdt/internal/compiler/ast/LocalDeclaration;
getfield org.eclipse.jdt.internal.compiler.ast.LocalDeclaration.binding:Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;
getfield org.eclipse.jdt.internal.compiler.lookup.LocalVariableBinding.type:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
getfield org.eclipse.jdt.internal.compiler.lookup.TypeBinding.id:I
iconst_1
if_icmpeq 82
77: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.elementVariableImplicitWidening:I
iconst_m1
if_icmpeq 81
78: aload 2
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.collectionElementType:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.checkcast:(Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;)V
79: aload 2
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.elementVariableImplicitWidening:I
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.generateImplicitConversion:(I)V
80: goto 82
81: StackMap locals:
StackMap stack:
aload 2
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.elementVariable:Lorg/eclipse/jdt/internal/compiler/ast/LocalDeclaration;
getfield org.eclipse.jdt.internal.compiler.ast.LocalDeclaration.binding:Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;
getfield org.eclipse.jdt.internal.compiler.lookup.LocalVariableBinding.type:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.checkcast:(Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;)V
82: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.elementVariable:Lorg/eclipse/jdt/internal/compiler/ast/LocalDeclaration;
getfield org.eclipse.jdt.internal.compiler.ast.LocalDeclaration.binding:Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;
getfield org.eclipse.jdt.internal.compiler.lookup.LocalVariableBinding.resolvedPosition:I
iconst_m1
if_icmpne 88
83: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.elementVariable:Lorg/eclipse/jdt/internal/compiler/ast/LocalDeclaration;
getfield org.eclipse.jdt.internal.compiler.ast.LocalDeclaration.binding:Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;
getfield org.eclipse.jdt.internal.compiler.lookup.LocalVariableBinding.type:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
getfield org.eclipse.jdt.internal.compiler.lookup.TypeBinding.id:I
tableswitch { // 7 - 8
7: 84
8: 84
default: 86
}
84: StackMap locals:
StackMap stack:
aload 2
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.pop2:()V
85: goto 95
86: StackMap locals:
StackMap stack:
aload 2
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.pop:()V
87: goto 95
88: StackMap locals:
StackMap stack:
aload 2
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.elementVariable:Lorg/eclipse/jdt/internal/compiler/ast/LocalDeclaration;
getfield org.eclipse.jdt.internal.compiler.ast.LocalDeclaration.binding:Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;
iconst_0
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.store:(Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;Z)V
89: aload 2
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.elementVariable:Lorg/eclipse/jdt/internal/compiler/ast/LocalDeclaration;
getfield org.eclipse.jdt.internal.compiler.ast.LocalDeclaration.binding:Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.addVisibleLocalVariable:(Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;)V
90: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.postCollectionInitStateIndex:I
iconst_m1
if_icmpeq 95
91: aload 2
92: aload 1
93: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.postCollectionInitStateIndex:I
94: invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.addDefinitelyAssignedVariables:(Lorg/eclipse/jdt/internal/compiler/lookup/Scope;I)V
95: StackMap locals:
StackMap stack:
iload 4
ifne 97
96: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.action:Lorg/eclipse/jdt/internal/compiler/ast/Statement;
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.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
97: StackMap locals:
StackMap stack:
aload 2
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.elementVariable:Lorg/eclipse/jdt/internal/compiler/ast/LocalDeclaration;
getfield org.eclipse.jdt.internal.compiler.ast.LocalDeclaration.binding:Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.removeVariable:(Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;)V
98: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.postCollectionInitStateIndex:I
iconst_m1
if_icmpeq 100
99: aload 2
aload 1
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.postCollectionInitStateIndex:I
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.removeNotDefinitelyAssignedVariables:(Lorg/eclipse/jdt/internal/compiler/lookup/Scope;I)V
100: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.continueLabel:Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;
ifnull 116
101: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.continueLabel:Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;
invokevirtual org.eclipse.jdt.internal.compiler.codegen.BranchLabel.place:()V
102: aload 2
getfield org.eclipse.jdt.internal.compiler.codegen.CodeStream.position:I
istore 7
start local 7 103: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.kind:I
tableswitch { // 0 - 2
0: 104
1: 111
2: 111
default: 115
}
104: StackMap locals: int
StackMap stack:
iload 4
ifeq 105
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.elementVariable:Lorg/eclipse/jdt/internal/compiler/ast/LocalDeclaration;
getfield org.eclipse.jdt.internal.compiler.ast.LocalDeclaration.binding:Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;
getfield org.eclipse.jdt.internal.compiler.lookup.LocalVariableBinding.resolvedPosition:I
iflt 106
105: StackMap locals:
StackMap stack:
aload 2
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.indexVariable:Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;
getfield org.eclipse.jdt.internal.compiler.lookup.LocalVariableBinding.resolvedPosition:I
iconst_1
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.iinc:(II)V
106: StackMap locals:
StackMap stack:
aload 6
invokevirtual org.eclipse.jdt.internal.compiler.codegen.BranchLabel.place:()V
107: aload 2
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.indexVariable:Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.load:(Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;)V
108: aload 2
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.maxVariable:Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.load:(Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;)V
109: aload 2
aload 5
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.if_icmplt:(Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;)V
110: goto 115
111: StackMap locals:
StackMap stack:
aload 6
invokevirtual org.eclipse.jdt.internal.compiler.codegen.BranchLabel.place:()V
112: aload 2
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.indexVariable:Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.load:(Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;)V
113: aload 2
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.invokeJavaUtilIteratorHasNext:()V
114: aload 2
aload 5
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.ifne:(Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;)V
115: StackMap locals:
StackMap stack:
aload 2
iload 7
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.elementVariable:Lorg/eclipse/jdt/internal/compiler/ast/LocalDeclaration;
getfield org.eclipse.jdt.internal.compiler.ast.LocalDeclaration.sourceStart:I
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.recordPositionsFrom:(II)V
end local 7 116: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.kind:I
tableswitch { // 0 - 2
0: 117
1: 121
2: 121
default: 122
}
117: StackMap locals:
StackMap stack:
aload 2
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.indexVariable:Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.removeVariable:(Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;)V
118: aload 2
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.maxVariable:Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.removeVariable:(Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;)V
119: aload 2
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.collectionVariable:Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.removeVariable:(Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;)V
120: goto 122
121: StackMap locals:
StackMap stack:
aload 2
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.indexVariable:Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.removeVariable:(Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;)V
122: StackMap locals:
StackMap stack:
aload 2
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.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
123: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.mergedInitStateIndex:I
iconst_m1
if_icmpeq 126
124: aload 2
aload 1
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.mergedInitStateIndex:I
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.removeNotDefinitelyAssignedVariables:(Lorg/eclipse/jdt/internal/compiler/lookup/Scope;I)V
125: aload 2
aload 1
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.mergedInitStateIndex:I
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.addDefinitelyAssignedVariables:(Lorg/eclipse/jdt/internal/compiler/lookup/Scope;I)V
126: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.breakLabel:Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;
invokevirtual org.eclipse.jdt.internal.compiler.codegen.BranchLabel.place:()V
127: aload 2
iload 3
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.sourceStart:I
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.recordPositionsFrom:(II)V
128: return
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 129 0 this Lorg/eclipse/jdt/internal/compiler/ast/ForeachStatement;
0 129 1 currentScope Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
0 129 2 codeStream Lorg/eclipse/jdt/internal/compiler/codegen/CodeStream;
3 129 3 pc I
9 129 4 hasEmptyAction Z
36 129 5 actionLabel Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;
38 129 6 conditionLabel Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;
43 51 7 conditionPC I
103 116 7 continuationPC I
MethodParameters:
Name Flags
currentScope
codeStream
public java.lang.StringBuffer printStatement(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: iload 1
aload 2
invokestatic org.eclipse.jdt.internal.compiler.ast.ForeachStatement.printIndent:(ILjava/lang/StringBuffer;)Ljava/lang/StringBuffer;
ldc "for ("
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
pop
1: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.elementVariable:Lorg/eclipse/jdt/internal/compiler/ast/LocalDeclaration;
iconst_0
aload 2
invokevirtual org.eclipse.jdt.internal.compiler.ast.LocalDeclaration.printAsExpression:(ILjava/lang/StringBuffer;)Ljava/lang/StringBuffer;
pop
2: aload 2
ldc " : "
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
pop
3: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.collection:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
ifnull 6
4: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.collection:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
iconst_0
aload 2
invokevirtual org.eclipse.jdt.internal.compiler.ast.Expression.print:(ILjava/lang/StringBuffer;)Ljava/lang/StringBuffer;
ldc ") "
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
pop
5: goto 7
6: StackMap locals:
StackMap stack:
aload 2
bipush 41
invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
pop
7: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.action:Lorg/eclipse/jdt/internal/compiler/ast/Statement;
ifnonnull 10
8: aload 2
bipush 59
invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
pop
9: goto 12
10: StackMap locals:
StackMap stack:
aload 2
bipush 10
invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
pop
11: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.action:Lorg/eclipse/jdt/internal/compiler/ast/Statement;
iload 1
iconst_1
iadd
aload 2
invokevirtual org.eclipse.jdt.internal.compiler.ast.Statement.printStatement:(ILjava/lang/StringBuffer;)Ljava/lang/StringBuffer;
pop
12: StackMap locals:
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/eclipse/jdt/internal/compiler/ast/ForeachStatement;
0 13 1 indent I
0 13 2 output Ljava/lang/StringBuffer;
MethodParameters:
Name Flags
indent
output
public static org.eclipse.jdt.internal.compiler.lookup.TypeBinding getCollectionElementType(org.eclipse.jdt.internal.compiler.lookup.BlockScope, org.eclipse.jdt.internal.compiler.lookup.TypeBinding);
descriptor: (Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;)Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 1
aconst_null
areturn
1: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.eclipse.jdt.internal.compiler.lookup.BlockScope.compilerOptions:()Lorg/eclipse/jdt/internal/compiler/impl/CompilerOptions;
getfield org.eclipse.jdt.internal.compiler.impl.CompilerOptions.targetJDK:J
ldc 3145728
lcmp
ifne 2
iconst_1
goto 3
StackMap locals:
StackMap stack:
2: iconst_0
StackMap locals:
StackMap stack: int
3: istore 2
start local 2 4: aload 1
invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.isCapture:()Z
ifeq 8
5: aload 1
checkcast org.eclipse.jdt.internal.compiler.lookup.CaptureBinding
getfield org.eclipse.jdt.internal.compiler.lookup.CaptureBinding.firstBound:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
astore 3
start local 3 6: aload 3
ifnull 8
aload 3
invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.isArrayType:()Z
ifeq 8
7: aload 3
astore 1
end local 3 8: StackMap locals: int
StackMap stack:
aload 1
invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.isArrayType:()Z
ifeq 10
9: aload 1
checkcast org.eclipse.jdt.internal.compiler.lookup.ArrayBinding
invokevirtual org.eclipse.jdt.internal.compiler.lookup.ArrayBinding.elementsType:()Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
areturn
10: StackMap locals:
StackMap stack:
aload 1
instanceof org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding
ifeq 25
11: aload 1
checkcast org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding
bipush 38
iconst_0
invokevirtual org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding.findSuperTypeOriginatingFrom:(IZ)Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;
astore 3
start local 3 12: aload 3
ifnonnull 14
iload 2
ifeq 14
13: aload 1
checkcast org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding
bipush 59
iconst_0
invokevirtual org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding.findSuperTypeOriginatingFrom:(IZ)Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;
astore 3
14: StackMap locals: org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding
StackMap stack:
aload 3
ifnonnull 15
aconst_null
areturn
15: StackMap locals:
StackMap stack:
aconst_null
astore 4
start local 4 16: aload 3
invokevirtual org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding.kind:()I
lookupswitch { // 3
260: 20
1028: 17
2052: 18
default: 22
}
17: StackMap locals: org.eclipse.jdt.internal.compiler.lookup.TypeBinding[]
StackMap stack:
aload 0
invokevirtual org.eclipse.jdt.internal.compiler.lookup.BlockScope.getJavaLangObject:()Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;
areturn
18: StackMap locals:
StackMap stack:
aload 3
invokevirtual org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding.typeVariables:()[Lorg/eclipse/jdt/internal/compiler/lookup/TypeVariableBinding;
astore 4
19: goto 23
20: StackMap locals:
StackMap stack:
aload 3
checkcast org.eclipse.jdt.internal.compiler.lookup.ParameterizedTypeBinding
getfield org.eclipse.jdt.internal.compiler.lookup.ParameterizedTypeBinding.arguments:[Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
astore 4
21: goto 23
22: StackMap locals:
StackMap stack:
aconst_null
areturn
23: StackMap locals:
StackMap stack:
aload 4
arraylength
iconst_1
if_icmpeq 24
aconst_null
areturn
24: StackMap locals:
StackMap stack:
aload 4
iconst_0
aaload
areturn
end local 4 end local 3 25: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 scope Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
0 26 1 collectionType Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
4 26 2 isTargetJsr14 Z
6 8 3 upperBound Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
12 25 3 iterableType Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;
16 25 4 arguments [Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
MethodParameters:
Name Flags
scope
collectionType
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=9, args_size=2
start local 0 start local 1 0: 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.ForeachStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
1: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
aload 0
putfield org.eclipse.jdt.internal.compiler.lookup.BlockScope.blockStatement:Lorg/eclipse/jdt/internal/compiler/ast/Statement;
2: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.elementVariable:Lorg/eclipse/jdt/internal/compiler/ast/LocalDeclaration;
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
invokevirtual org.eclipse.jdt.internal.compiler.ast.LocalDeclaration.resolve:(Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;)V
3: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.elementVariable:Lorg/eclipse/jdt/internal/compiler/ast/LocalDeclaration;
getfield org.eclipse.jdt.internal.compiler.ast.LocalDeclaration.type:Lorg/eclipse/jdt/internal/compiler/ast/TypeReference;
getfield org.eclipse.jdt.internal.compiler.ast.TypeReference.resolvedType:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
astore 2
start local 2 4: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.collection:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
ifnonnull 5
aconst_null
goto 6
StackMap locals: org.eclipse.jdt.internal.compiler.lookup.TypeBinding
StackMap stack:
5: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.collection: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;
StackMap locals:
StackMap stack: org.eclipse.jdt.internal.compiler.lookup.TypeBinding
6: astore 3
start local 3 7: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.elementVariable:Lorg/eclipse/jdt/internal/compiler/ast/LocalDeclaration;
aload 1
invokevirtual org.eclipse.jdt.internal.compiler.ast.LocalDeclaration.isTypeNameVar:(Lorg/eclipse/jdt/internal/compiler/lookup/Scope;)Z
ifeq 23
8: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.elementVariable:Lorg/eclipse/jdt/internal/compiler/ast/LocalDeclaration;
getfield org.eclipse.jdt.internal.compiler.ast.LocalDeclaration.type:Lorg/eclipse/jdt/internal/compiler/ast/TypeReference;
invokevirtual org.eclipse.jdt.internal.compiler.ast.TypeReference.dimensions:()I
ifgt 9
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.elementVariable:Lorg/eclipse/jdt/internal/compiler/ast/LocalDeclaration;
getfield org.eclipse.jdt.internal.compiler.ast.LocalDeclaration.type:Lorg/eclipse/jdt/internal/compiler/ast/TypeReference;
invokevirtual org.eclipse.jdt.internal.compiler.ast.TypeReference.extraDimensions:()I
ifle 10
9: StackMap locals: org.eclipse.jdt.internal.compiler.lookup.TypeBinding
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.ForeachStatement.elementVariable:Lorg/eclipse/jdt/internal/compiler/ast/LocalDeclaration;
invokevirtual org.eclipse.jdt.internal.compiler.problem.ProblemReporter.varLocalCannotBeArray:(Lorg/eclipse/jdt/internal/compiler/ast/AbstractVariableDeclaration;)V
10: StackMap locals:
StackMap stack:
getstatic org.eclipse.jdt.internal.compiler.lookup.TypeBinding.NULL:Lorg/eclipse/jdt/internal/compiler/lookup/NullTypeBinding;
aload 3
invokestatic org.eclipse.jdt.internal.compiler.lookup.TypeBinding.equalsEquals:(Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;)Z
ifeq 14
11: 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.ForeachStatement.elementVariable:Lorg/eclipse/jdt/internal/compiler/ast/LocalDeclaration;
invokevirtual org.eclipse.jdt.internal.compiler.problem.ProblemReporter.varLocalInitializedToNull:(Lorg/eclipse/jdt/internal/compiler/ast/AbstractVariableDeclaration;)V
12: aload 3
astore 2
13: goto 17
StackMap locals:
StackMap stack:
14: getstatic org.eclipse.jdt.internal.compiler.lookup.TypeBinding.VOID:Lorg/eclipse/jdt/internal/compiler/lookup/VoidTypeBinding;
aload 3
invokestatic org.eclipse.jdt.internal.compiler.lookup.TypeBinding.equalsEquals:(Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;)Z
ifeq 17
15: aload 1
invokevirtual org.eclipse.jdt.internal.compiler.lookup.BlockScope.problemReporter:()Lorg/eclipse/jdt/internal/compiler/problem/ProblemReporter;
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.elementVariable:Lorg/eclipse/jdt/internal/compiler/ast/LocalDeclaration;
invokevirtual org.eclipse.jdt.internal.compiler.problem.ProblemReporter.varLocalInitializedToVoid:(Lorg/eclipse/jdt/internal/compiler/ast/AbstractVariableDeclaration;)V
16: aload 3
astore 2
17: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
aload 3
invokestatic org.eclipse.jdt.internal.compiler.ast.ForeachStatement.getCollectionElementType:(Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;)Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
dup
astore 2
ifnonnull 20
18: aload 3
astore 2
19: goto 21
20: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.elementVariable:Lorg/eclipse/jdt/internal/compiler/ast/LocalDeclaration;
aload 2
invokevirtual org.eclipse.jdt.internal.compiler.ast.LocalDeclaration.patchType:(Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;)Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
astore 2
21: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.elementVariable:Lorg/eclipse/jdt/internal/compiler/ast/LocalDeclaration;
getfield org.eclipse.jdt.internal.compiler.ast.LocalDeclaration.binding:Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;
ifnull 23
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.elementVariable:Lorg/eclipse/jdt/internal/compiler/ast/LocalDeclaration;
getfield org.eclipse.jdt.internal.compiler.ast.LocalDeclaration.binding:Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;
invokevirtual org.eclipse.jdt.internal.compiler.lookup.LocalVariableBinding.isValidBinding:()Z
ifeq 23
22: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.elementVariable:Lorg/eclipse/jdt/internal/compiler/ast/LocalDeclaration;
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
invokevirtual org.eclipse.jdt.internal.compiler.ast.LocalDeclaration.validateNullAnnotations:(Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;)V
23: StackMap locals:
StackMap stack:
aconst_null
astore 4
start local 4 24: aload 2
ifnull 137
aload 3
ifnull 137
25: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
invokevirtual org.eclipse.jdt.internal.compiler.lookup.BlockScope.compilerOptions:()Lorg/eclipse/jdt/internal/compiler/impl/CompilerOptions;
getfield org.eclipse.jdt.internal.compiler.impl.CompilerOptions.targetJDK:J
ldc 3145728
lcmp
ifne 26
iconst_1
goto 27
StackMap locals: org.eclipse.jdt.internal.compiler.lookup.TypeBinding
StackMap stack:
26: iconst_0
StackMap locals:
StackMap stack: int
27: istore 5
start local 5 28: aload 3
invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.isCapture:()Z
ifeq 32
29: aload 3
checkcast org.eclipse.jdt.internal.compiler.lookup.CaptureBinding
getfield org.eclipse.jdt.internal.compiler.lookup.CaptureBinding.firstBound:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
astore 6
start local 6 30: aload 6
ifnull 32
aload 6
invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.isArrayType:()Z
ifeq 32
31: aload 6
astore 3
end local 6 32: StackMap locals: int
StackMap stack:
aload 3
invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.isArrayType:()Z
ifeq 63
33: aload 0
iconst_0
putfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.kind:I
34: aload 0
aload 3
checkcast org.eclipse.jdt.internal.compiler.lookup.ArrayBinding
invokevirtual org.eclipse.jdt.internal.compiler.lookup.ArrayBinding.elementsType:()Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
putfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.collectionElementType:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
35: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.collectionElementType:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
aload 2
invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.isCompatibleWith:(Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;)Z
ifne 39
36: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.collectionElementType:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
aload 2
invokevirtual org.eclipse.jdt.internal.compiler.lookup.BlockScope.isBoxingCompatibleWith:(Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;)Z
ifne 39
37: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.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.ForeachStatement.collection:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.collectionElementType:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
aload 2
invokevirtual org.eclipse.jdt.internal.compiler.problem.ProblemReporter.notCompatibleTypesErrorInForeach:(Lorg/eclipse/jdt/internal/compiler/ast/Expression;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;)V
38: goto 41
StackMap locals:
StackMap stack:
39: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.collectionElementType:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
aload 2
invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.needsUncheckedConversion:(Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;)Z
ifeq 41
40: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.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.ForeachStatement.collection:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.collectionElementType:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
aload 2
invokevirtual org.eclipse.jdt.internal.compiler.problem.ProblemReporter.unsafeElementTypeConversion:(Lorg/eclipse/jdt/internal/compiler/ast/Expression;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;)V
41: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.collectionElementType:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
getfield org.eclipse.jdt.internal.compiler.lookup.TypeBinding.id:I
istore 6
start local 6 42: aload 2
invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.isBaseType:()Z
ifeq 53
43: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.collection:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
aload 3
aload 3
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
44: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.collectionElementType:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.isBaseType:()Z
ifne 51
45: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
invokevirtual org.eclipse.jdt.internal.compiler.lookup.BlockScope.environment:()Lorg/eclipse/jdt/internal/compiler/lookup/LookupEnvironment;
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.collectionElementType:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
invokevirtual org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.computeBoxingType:(Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;)Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
getfield org.eclipse.jdt.internal.compiler.lookup.TypeBinding.id:I
istore 6
46: aload 0
sipush 1024
putfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.elementVariableImplicitWidening:I
47: aload 2
invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.isBaseType:()Z
ifeq 115
48: aload 0
dup
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.elementVariableImplicitWidening:I
aload 2
getfield org.eclipse.jdt.internal.compiler.lookup.TypeBinding.id:I
iconst_4
ishl
iload 6
iadd
ior
putfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.elementVariableImplicitWidening:I
49: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.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.ForeachStatement.collection:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.collectionElementType:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
aload 2
invokevirtual org.eclipse.jdt.internal.compiler.problem.ProblemReporter.autoboxing:(Lorg/eclipse/jdt/internal/compiler/ast/Expression;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;)V
50: goto 115
51: StackMap locals: int
StackMap stack:
aload 0
aload 2
getfield org.eclipse.jdt.internal.compiler.lookup.TypeBinding.id:I
iconst_4
ishl
iload 6
iadd
putfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.elementVariableImplicitWidening:I
52: goto 115
StackMap locals:
StackMap stack:
53: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.collectionElementType:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.isBaseType:()Z
ifeq 60
54: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.collection:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
aload 3
aload 3
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
55: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
invokevirtual org.eclipse.jdt.internal.compiler.lookup.BlockScope.environment:()Lorg/eclipse/jdt/internal/compiler/lookup/LookupEnvironment;
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.collectionElementType:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
invokevirtual org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.computeBoxingType:(Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;)Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
getfield org.eclipse.jdt.internal.compiler.lookup.TypeBinding.id:I
istore 7
start local 7 56: aload 0
sipush 512
iload 6
iconst_4
ishl
ior
iload 6
ior
putfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.elementVariableImplicitWidening:I
57: iload 7
istore 6
58: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.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.ForeachStatement.collection:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.collectionElementType:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
aload 2
invokevirtual org.eclipse.jdt.internal.compiler.problem.ProblemReporter.autoboxing:(Lorg/eclipse/jdt/internal/compiler/ast/Expression;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;)V
end local 7 59: goto 115
60: StackMap locals:
StackMap stack:
aload 1
aload 2
iconst_1
invokevirtual org.eclipse.jdt.internal.compiler.lookup.BlockScope.createArrayType:(Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;I)Lorg/eclipse/jdt/internal/compiler/lookup/ArrayBinding;
astore 4
61: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.collection:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
aload 4
aload 3
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
end local 6 62: goto 115
StackMap locals:
StackMap stack:
63: aload 3
instanceof org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding
ifeq 115
64: aload 3
checkcast org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding
bipush 38
iconst_0
invokevirtual org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding.findSuperTypeOriginatingFrom:(IZ)Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;
astore 6
start local 6 65: aload 6
ifnonnull 67
iload 5
ifeq 67
66: aload 3
checkcast org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding
bipush 59
iconst_0
invokevirtual org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding.findSuperTypeOriginatingFrom:(IZ)Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;
astore 6
67: StackMap locals: org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding
StackMap stack:
aload 6
ifnonnull 68
goto 115
68: StackMap locals:
StackMap stack:
aload 0
aload 3
invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.erasure:()Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
putfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.iteratorReceiverType:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
69: iload 5
ifeq 76
70: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.iteratorReceiverType:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
checkcast org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding
bipush 59
iconst_0
invokevirtual org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding.findSuperTypeOriginatingFrom:(IZ)Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;
ifnonnull 74
71: aload 0
aload 6
putfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.iteratorReceiverType:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
72: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.collection:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
aload 6
aload 3
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
73: goto 81
74: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.collection:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
aload 3
aload 3
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
75: goto 81
StackMap locals:
StackMap stack:
76: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.iteratorReceiverType:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
checkcast org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding
bipush 38
iconst_0
invokevirtual org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding.findSuperTypeOriginatingFrom:(IZ)Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;
ifnonnull 80
77: aload 0
aload 6
putfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.iteratorReceiverType:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
78: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.collection:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
aload 6
aload 3
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
79: goto 81
80: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.collection:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
aload 3
aload 3
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
81: StackMap locals:
StackMap stack:
aconst_null
astore 7
start local 7 82: aload 6
invokevirtual org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding.kind:()I
lookupswitch { // 3
260: 91
1028: 83
2052: 89
default: 93
}
83: StackMap locals: org.eclipse.jdt.internal.compiler.lookup.TypeBinding[]
StackMap stack:
aload 0
iconst_1
putfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.kind:I
84: aload 0
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
invokevirtual org.eclipse.jdt.internal.compiler.lookup.BlockScope.getJavaLangObject:()Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;
putfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.collectionElementType:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
85: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.collectionElementType:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
aload 2
invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.isCompatibleWith:(Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;)Z
ifne 115
86: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.collectionElementType:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
aload 2
invokevirtual org.eclipse.jdt.internal.compiler.lookup.BlockScope.isBoxingCompatibleWith:(Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;)Z
ifne 115
87: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.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.ForeachStatement.collection:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.collectionElementType:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
aload 2
invokevirtual org.eclipse.jdt.internal.compiler.problem.ProblemReporter.notCompatibleTypesErrorInForeach:(Lorg/eclipse/jdt/internal/compiler/ast/Expression;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;)V
88: goto 115
89: StackMap locals:
StackMap stack:
aload 6
invokevirtual org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding.typeVariables:()[Lorg/eclipse/jdt/internal/compiler/lookup/TypeVariableBinding;
astore 7
90: goto 94
91: StackMap locals:
StackMap stack:
aload 6
checkcast org.eclipse.jdt.internal.compiler.lookup.ParameterizedTypeBinding
getfield org.eclipse.jdt.internal.compiler.lookup.ParameterizedTypeBinding.arguments:[Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
astore 7
92: goto 94
93: StackMap locals:
StackMap stack:
goto 115
94: StackMap locals:
StackMap stack:
aload 7
arraylength
iconst_1
if_icmpeq 95
goto 115
95: StackMap locals:
StackMap stack:
aload 0
iconst_2
putfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.kind:I
96: aload 0
aload 7
iconst_0
aaload
putfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.collectionElementType:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
97: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.collectionElementType:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
aload 2
invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.isCompatibleWith:(Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;)Z
ifne 101
98: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.collectionElementType:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
aload 2
invokevirtual org.eclipse.jdt.internal.compiler.lookup.BlockScope.isBoxingCompatibleWith:(Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;)Z
ifne 101
99: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.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.ForeachStatement.collection:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.collectionElementType:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
aload 2
invokevirtual org.eclipse.jdt.internal.compiler.problem.ProblemReporter.notCompatibleTypesErrorInForeach:(Lorg/eclipse/jdt/internal/compiler/ast/Expression;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;)V
100: goto 103
StackMap locals:
StackMap stack:
101: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.collectionElementType:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
aload 2
invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.needsUncheckedConversion:(Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;)Z
ifeq 103
102: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.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.ForeachStatement.collection:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.collectionElementType:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
aload 2
invokevirtual org.eclipse.jdt.internal.compiler.problem.ProblemReporter.unsafeElementTypeConversion:(Lorg/eclipse/jdt/internal/compiler/ast/Expression;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;)V
103: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.collectionElementType:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
getfield org.eclipse.jdt.internal.compiler.lookup.TypeBinding.id:I
istore 8
start local 8 104: aload 2
invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.isBaseType:()Z
ifeq 113
105: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.collectionElementType:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.isBaseType:()Z
ifne 111
106: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
invokevirtual org.eclipse.jdt.internal.compiler.lookup.BlockScope.environment:()Lorg/eclipse/jdt/internal/compiler/lookup/LookupEnvironment;
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.collectionElementType:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
invokevirtual org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.computeBoxingType:(Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;)Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
getfield org.eclipse.jdt.internal.compiler.lookup.TypeBinding.id:I
istore 8
107: aload 0
sipush 1024
putfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.elementVariableImplicitWidening:I
108: aload 2
invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.isBaseType:()Z
ifeq 115
109: aload 0
dup
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.elementVariableImplicitWidening:I
aload 2
getfield org.eclipse.jdt.internal.compiler.lookup.TypeBinding.id:I
iconst_4
ishl
iload 8
iadd
ior
putfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.elementVariableImplicitWidening:I
110: goto 115
111: StackMap locals: int
StackMap stack:
aload 0
aload 2
getfield org.eclipse.jdt.internal.compiler.lookup.TypeBinding.id:I
iconst_4
ishl
iload 8
iadd
putfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.elementVariableImplicitWidening:I
112: goto 115
113: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.collectionElementType:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.isBaseType:()Z
ifeq 115
114: aload 0
sipush 512
iload 8
iconst_4
ishl
ior
iload 8
ior
putfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.elementVariableImplicitWidening:I
end local 8 end local 7 end local 6 115: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.kind:I
tableswitch { // 0 - 2
0: 116
1: 129
2: 129
default: 133
}
116: StackMap locals:
StackMap stack:
aload 0
new org.eclipse.jdt.internal.compiler.lookup.LocalVariableBinding
dup
getstatic org.eclipse.jdt.internal.compiler.ast.ForeachStatement.SecretIndexVariableName:[C
getstatic org.eclipse.jdt.internal.compiler.lookup.TypeBinding.INT:Lorg/eclipse/jdt/internal/compiler/lookup/BaseTypeBinding;
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.ForeachStatement.indexVariable:Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;
117: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.indexVariable:Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;
invokevirtual org.eclipse.jdt.internal.compiler.lookup.BlockScope.addLocalVariable:(Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;)V
118: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.indexVariable: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
119: aload 0
new org.eclipse.jdt.internal.compiler.lookup.LocalVariableBinding
dup
getstatic org.eclipse.jdt.internal.compiler.ast.ForeachStatement.SecretMaxVariableName:[C
getstatic org.eclipse.jdt.internal.compiler.lookup.TypeBinding.INT:Lorg/eclipse/jdt/internal/compiler/lookup/BaseTypeBinding;
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.ForeachStatement.maxVariable:Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;
120: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.maxVariable:Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;
invokevirtual org.eclipse.jdt.internal.compiler.lookup.BlockScope.addLocalVariable:(Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;)V
121: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.maxVariable: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
122: aload 4
ifnonnull 125
123: aload 0
new org.eclipse.jdt.internal.compiler.lookup.LocalVariableBinding
dup
getstatic org.eclipse.jdt.internal.compiler.ast.ForeachStatement.SecretCollectionVariableName:[C
aload 3
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.ForeachStatement.collectionVariable:Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;
124: goto 126
125: StackMap locals:
StackMap stack:
aload 0
new org.eclipse.jdt.internal.compiler.lookup.LocalVariableBinding
dup
getstatic org.eclipse.jdt.internal.compiler.ast.ForeachStatement.SecretCollectionVariableName:[C
aload 4
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.ForeachStatement.collectionVariable:Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;
126: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.collectionVariable:Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;
invokevirtual org.eclipse.jdt.internal.compiler.lookup.BlockScope.addLocalVariable:(Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;)V
127: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.collectionVariable: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
128: goto 137
129: StackMap locals:
StackMap stack:
aload 0
new org.eclipse.jdt.internal.compiler.lookup.LocalVariableBinding
dup
getstatic org.eclipse.jdt.internal.compiler.ast.ForeachStatement.SecretIteratorVariableName:[C
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
invokevirtual org.eclipse.jdt.internal.compiler.lookup.BlockScope.getJavaUtilIterator:()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.ForeachStatement.indexVariable:Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;
130: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.indexVariable:Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;
invokevirtual org.eclipse.jdt.internal.compiler.lookup.BlockScope.addLocalVariable:(Lorg/eclipse/jdt/internal/compiler/lookup/LocalVariableBinding;)V
131: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.indexVariable: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
132: goto 137
133: StackMap locals:
StackMap stack:
iload 5
ifeq 136
134: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.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.ForeachStatement.collection:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
invokevirtual org.eclipse.jdt.internal.compiler.problem.ProblemReporter.invalidTypeForCollectionTarget14:(Lorg/eclipse/jdt/internal/compiler/ast/Expression;)V
135: goto 137
136: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.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.ForeachStatement.collection:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
invokevirtual org.eclipse.jdt.internal.compiler.problem.ProblemReporter.invalidTypeForCollection:(Lorg/eclipse/jdt/internal/compiler/ast/Expression;)V
end local 5 137: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.action:Lorg/eclipse/jdt/internal/compiler/ast/Statement;
ifnull 139
138: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.action:Lorg/eclipse/jdt/internal/compiler/ast/Statement;
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.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
139: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 140 0 this Lorg/eclipse/jdt/internal/compiler/ast/ForeachStatement;
0 140 1 upperScope Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
4 140 2 elementType Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
7 140 3 collectionType Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
24 140 4 expectedCollectionType Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
28 137 5 isTargetJsr14 Z
30 32 6 upperBound Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
42 62 6 compileTimeTypeID I
56 59 7 boxedID I
65 115 6 iterableType Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;
82 115 7 arguments [Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
104 115 8 compileTimeTypeID I
MethodParameters:
Name Flags
upperScope
public void traverse(org.eclipse.jdt.internal.compiler.ASTVisitor, org.eclipse.jdt.internal.compiler.lookup.BlockScope);
descriptor: (Lorg/eclipse/jdt/internal/compiler/ASTVisitor;Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
aload 0
aload 2
invokevirtual org.eclipse.jdt.internal.compiler.ASTVisitor.visit:(Lorg/eclipse/jdt/internal/compiler/ast/ForeachStatement;Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;)Z
ifeq 6
1: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.elementVariable:Lorg/eclipse/jdt/internal/compiler/ast/LocalDeclaration;
aload 1
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
invokevirtual org.eclipse.jdt.internal.compiler.ast.LocalDeclaration.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.ForeachStatement.collection:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
ifnull 4
3: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.collection:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
aload 1
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.scope:Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
invokevirtual org.eclipse.jdt.internal.compiler.ast.Expression.traverse:(Lorg/eclipse/jdt/internal/compiler/ASTVisitor;Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;)V
4: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.action:Lorg/eclipse/jdt/internal/compiler/ast/Statement;
ifnull 6
5: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.action:Lorg/eclipse/jdt/internal/compiler/ast/Statement;
aload 1
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.ForeachStatement.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
6: StackMap locals:
StackMap stack:
aload 1
aload 0
aload 2
invokevirtual org.eclipse.jdt.internal.compiler.ASTVisitor.endVisit:(Lorg/eclipse/jdt/internal/compiler/ast/ForeachStatement;Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;)V
7: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/eclipse/jdt/internal/compiler/ast/ForeachStatement;
0 8 1 visitor Lorg/eclipse/jdt/internal/compiler/ASTVisitor;
0 8 2 blockScope Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
MethodParameters:
Name Flags
visitor
blockScope
public boolean doesNotCompleteNormally();
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/ForeachStatement;
}
SourceFile: "ForeachStatement.java"