Lines 22-60
Link Here
|
22 |
|
22 |
|
23 |
public int sourceStart, sourceEnd; |
23 |
public int sourceStart, sourceEnd; |
24 |
|
24 |
|
25 |
// storage for internal flags (32 bits) BIT USAGE |
25 |
// storage for internal flags (32 bits) BIT USAGE |
26 |
public final static int Bit1 = 0x1; // return type (operator) | name reference kind (name ref) | add assertion (type decl) | useful empty statement (empty statement) |
26 |
public final static int Bit1 = 0x1; // return type (operator) | name reference kind (name ref) | add assertion (type decl) | useful empty statement (empty statement) |
27 |
public final static int Bit2 = 0x2; // return type (operator) | name reference kind (name ref) | has local type (type, method, field decl) |
27 |
public final static int Bit2 = 0x2; // return type (operator) | name reference kind (name ref) | has local type (type, method, field decl) |
28 |
public final static int Bit3 = 0x4; // return type (operator) | name reference kind (name ref) | implicit this (this ref) |
28 |
public final static int Bit3 = 0x4; // return type (operator) | name reference kind (name ref) | implicit this (this ref) |
29 |
public final static int Bit4 = 0x8; // return type (operator) | first assignment to local (name ref,local decl) | undocumented empty block (block, type and method decl) |
29 |
public final static int Bit4 = 0x8; // return type (operator) | first assignment to local (name ref,local decl) | undocumented empty block (block, type and method decl) |
30 |
public final static int Bit5 = 0x10; // value for return (expression) | has all method bodies (unit) | supertype ref (type ref) | resolved (field decl) |
30 |
public final static int Bit5 = 0x10; // value for return (expression) | has all method bodies (unit) | supertype ref (type ref) | resolved (field decl) |
31 |
public final static int Bit6 = 0x20; // depth (name ref, msg) | ignore need cast check (cast expression) |
31 |
public final static int Bit6 = 0x20; // depth (name ref, msg) | ignore need cast check (cast expression) | error in signature (method declaration/ initializer) |
32 |
public final static int Bit7 = 0x40; // depth (name ref, msg) | operator (operator) | need runtime checkcast (cast expression) | label used (labelStatement) |
32 |
public final static int Bit7 = 0x40; // depth (name ref, msg) | operator (operator) | need runtime checkcast (cast expression) | label used (labelStatement) | needFreeReturn (AbstractMethodDeclaration) |
33 |
public final static int Bit8 = 0x80; // depth (name ref, msg) | operator (operator) | unsafe cast (cast expression) |
33 |
public final static int Bit8 = 0x80; // depth (name ref, msg) | operator (operator) | unsafe cast (cast expression) | is default constructor (constructor declaration) |
34 |
public final static int Bit9 = 0x100; // depth (name ref, msg) | operator (operator) | is local type (type decl) |
34 |
public final static int Bit9 = 0x100; // depth (name ref, msg) | operator (operator) | is local type (type decl) |
35 |
public final static int Bit10= 0x200; // depth (name ref, msg) | operator (operator) | is anonymous type (type decl) |
35 |
public final static int Bit10= 0x200; // depth (name ref, msg) | operator (operator) | is anonymous type (type decl) |
36 |
public final static int Bit11 = 0x400; // depth (name ref, msg) | operator (operator) | is member type (type decl) |
36 |
public final static int Bit11 = 0x400; // depth (name ref, msg) | operator (operator) | is member type (type decl) |
37 |
public final static int Bit12 = 0x800; // depth (name ref, msg) | operator (operator) | has abstract methods (type decl) |
37 |
public final static int Bit12 = 0x800; // depth (name ref, msg) | operator (operator) | has abstract methods (type decl) |
38 |
public final static int Bit13 = 0x1000; // depth (name ref, msg) | is secondary type (type decl) |
38 |
public final static int Bit13 = 0x1000; // depth (name ref, msg) | is secondary type (type decl) |
39 |
public final static int Bit14 = 0x2000; // strictly assigned (reference lhs) | discard enclosing instance (explicit constr call) |
39 |
public final static int Bit14 = 0x2000; // strictly assigned (reference lhs) | discard enclosing instance (explicit constr call) | hasBeenGenerated (type decl) |
40 |
public final static int Bit15 = 0x4000; // is unnecessary cast (expression) | is varargs (type ref) | isSubRoutineEscaping (try statement) |
40 |
public final static int Bit15 = 0x4000; // is unnecessary cast (expression) | is varargs (type ref) | isSubRoutineEscaping (try statement) | superAccess (javadoc allocation expression/javadoc message send/javadoc return statement) |
41 |
public final static int Bit16 = 0x8000; // in javadoc comment (name ref, type ref, msg) |
41 |
public final static int Bit16 = 0x8000; // in javadoc comment (name ref, type ref, msg) |
42 |
public final static int Bit17 = 0x10000; // compound assigned (reference lhs) |
42 |
public final static int Bit17 = 0x10000; // compound assigned (reference lhs) |
43 |
public final static int Bit18 = 0x20000; // non null (expression) |
43 |
public final static int Bit18 = 0x20000; // non null (expression) | onDemand (import reference) |
44 |
public final static int Bit19 = 0x40000; |
44 |
public final static int Bit19 = 0x40000; // didResolve (parameterized qualified type ref/parameterized single type ref) | empty (javadoc return statement) |
45 |
public final static int Bit20 = 0x80000; |
45 |
public final static int Bit20 = 0x80000; |
46 |
public final static int Bit21 = 0x100000; |
46 |
public final static int Bit21 = 0x100000; |
47 |
public final static int Bit22 = 0x200000; // parenthesis count (expression) |
47 |
public final static int Bit22 = 0x200000; // parenthesis count (expression) | used (import reference) |
48 |
public final static int Bit23 = 0x400000; // parenthesis count (expression) |
48 |
public final static int Bit23 = 0x400000; // parenthesis count (expression) |
49 |
public final static int Bit24 = 0x800000; // parenthesis count (expression) |
49 |
public final static int Bit24 = 0x800000; // parenthesis count (expression) |
50 |
public final static int Bit25 = 0x1000000; // parenthesis count (expression) |
50 |
public final static int Bit25 = 0x1000000; // parenthesis count (expression) |
51 |
public final static int Bit26 = 0x2000000; // parenthesis count (expression) |
51 |
public final static int Bit26 = 0x2000000; // parenthesis count (expression) |
52 |
public final static int Bit27 = 0x4000000; // parenthesis count (expression) |
52 |
public final static int Bit27 = 0x4000000; // parenthesis count (expression) |
53 |
public final static int Bit28 = 0x8000000; // parenthesis count (expression) |
53 |
public final static int Bit28 = 0x8000000; // parenthesis count (expression) |
54 |
public final static int Bit29 = 0x10000000; // parenthesis count (expression) |
54 |
public final static int Bit29 = 0x10000000; // parenthesis count (expression) |
55 |
public final static int Bit30 = 0x20000000; // elseif (if statement) | try block exit (try statement) | fall-through (case statement) | ignore no effect assign (expression ref) |
55 |
public final static int Bit30 = 0x20000000; // elseif (if statement) | try block exit (try statement) | fall-through (case statement) | ignore no effect assign (expression ref) | needScope (for statement) | isAnySubRoutineEscaping (return statement) | blockExit (synchronized statement) |
56 |
public final static int Bit31 = 0x40000000; // local declaration reachable (local decl) | ignore raw type check (type ref) | discard entire assignment (assignment) |
56 |
public final static int Bit31 = 0x40000000; // local declaration reachable (local decl) | ignore raw type check (type ref) | discard entire assignment (assignment) | isSynchronized (return statement) | thenExit (if statement) |
57 |
public final static int Bit32 = 0x80000000; // reachable (statement) |
57 |
public final static int Bit32 = 0x80000000; // reachable (statement) |
58 |
|
58 |
|
59 |
public final static long Bit32L = 0x80000000L; |
59 |
public final static long Bit32L = 0x80000000L; |
60 |
public final static long Bit33L = 0x100000000L; |
60 |
public final static long Bit33L = 0x100000000L; |
Lines 138-143
Link Here
|
138 |
public static final int IsMemberType = Bit11; // local member do not know it is local at parse time (need to look at binding) |
138 |
public static final int IsMemberType = Bit11; // local member do not know it is local at parse time (need to look at binding) |
139 |
public static final int HasAbstractMethods = Bit12; // used to promote abstract enums |
139 |
public static final int HasAbstractMethods = Bit12; // used to promote abstract enums |
140 |
public static final int IsSecondaryType = Bit13; // used to test for secondary |
140 |
public static final int IsSecondaryType = Bit13; // used to test for secondary |
|
|
141 |
public static final int HasBeenGenerated = Bit14; |
141 |
|
142 |
|
142 |
// for type, method and field declarations |
143 |
// for type, method and field declarations |
143 |
public static final int HasLocalType = Bit2; // cannot conflict with AddAssertionMASK |
144 |
public static final int HasLocalType = Bit2; // cannot conflict with AddAssertionMASK |
Lines 162-167
Link Here
|
162 |
public static final int UndocumentedEmptyBlock = Bit4; |
163 |
public static final int UndocumentedEmptyBlock = Bit4; |
163 |
public static final int OverridingMethodWithSupercall = Bit5; |
164 |
public static final int OverridingMethodWithSupercall = Bit5; |
164 |
|
165 |
|
|
|
166 |
// for initializer and method declaration |
167 |
public static final int ErrorInSignature = Bit6; |
168 |
|
169 |
// for abstract method declaration |
170 |
public static final int NeedFreeReturn = Bit7; // abstract method declaration |
171 |
|
172 |
// for constructor declaration |
173 |
public static final int IsDefaultConstructor = Bit8; |
174 |
|
165 |
// for compilation unit |
175 |
// for compilation unit |
166 |
public static final int HasAllMethodBodies = Bit5; |
176 |
public static final int HasAllMethodBodies = Bit5; |
167 |
public static final int IsImplicitUnit = Bit1; |
177 |
public static final int IsImplicitUnit = Bit1; |
Lines 169-176
Link Here
|
169 |
// for references in Javadoc comments |
179 |
// for references in Javadoc comments |
170 |
public static final int InsideJavadoc = Bit16; |
180 |
public static final int InsideJavadoc = Bit16; |
171 |
|
181 |
|
|
|
182 |
// for javadoc allocation expression/javadoc message send/javadoc return statement |
183 |
public static final int SuperAccess = Bit15; |
184 |
|
185 |
// for javadoc return statement |
186 |
public static final int Empty = Bit19; |
187 |
|
172 |
// for if statement |
188 |
// for if statement |
173 |
public static final int IsElseIfStatement = Bit30; |
189 |
public static final int IsElseIfStatement = Bit30; |
|
|
190 |
public static final int ThenExit = Bit31; |
174 |
|
191 |
|
175 |
// for type reference |
192 |
// for type reference |
176 |
public static final int IsSuperType = Bit5; |
193 |
public static final int IsSuperType = Bit5; |
Lines 183-188
Link Here
|
183 |
// for null reference analysis |
200 |
// for null reference analysis |
184 |
public static final int IsNonNull = Bit18; |
201 |
public static final int IsNonNull = Bit18; |
185 |
|
202 |
|
|
|
203 |
// for for statement |
204 |
public static final int NeededScope = Bit30; |
205 |
|
206 |
// for import reference |
207 |
public static final int OnDemand = Bit18; |
208 |
public static final int Used = Bit2; |
209 |
|
210 |
// for parameterized qualified/single type ref |
211 |
public static final int DidResolve = Bit19; |
212 |
|
213 |
// for return statement |
214 |
public static final int IsAnySubRoutineEscaping = Bit30; |
215 |
public static final int IsSynchronized = Bit31; |
216 |
|
217 |
// for synchronized statement |
218 |
public static final int BlockExit = Bit30; |
219 |
|
186 |
// constants used when checking invocation arguments |
220 |
// constants used when checking invocation arguments |
187 |
public static final int INVOCATION_ARGUMENT_OK = 0; |
221 |
public static final int INVOCATION_ARGUMENT_OK = 0; |
188 |
public static final int INVOCATION_ARGUMENT_UNCHECKED = 1; |
222 |
public static final int INVOCATION_ARGUMENT_UNCHECKED = 1; |