’i’ == ’true’, ’false’, ’this’, ’super’ or ’null’
Local variable ’i’ exists
Current field is static?
Current class or parent class have field ’i’
Static extension with ’this’-type
Current class has static field ’i’
Imported enum has constructor ‘i’
Static ‘i’ imported
‘i’ starts with lower-case character
Type ‘i’ imported
Current package contains module ‘i’ with type ‘i’
Top-level type ‘i’ exists
Untyped mode
‘i’ == ‘ this ’
Generate local variable ‘i’
No
Yes
No
No
No
No
No
No
No
No
No
No
No
No
Resolve
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Fail
No
Figure 3.1: Resolution order of identifier ‘i’