The front-end performs link checking on identifiers, method invocations and
constructor invocations associated to new instance creation variables. These
checkings are needed in order to ensure that the names used to refer the above
mentioned entities are related to declared symbols. Otherwise, compile-time errors
are signaled. For example, it is allowed in Java for an identifier to name a field
variable who's declaration occur after the identifier
. In this case the parser is not capable
of telling what object the identifier names, until the declaration of the field is
encountered. Therefore, we chose to leave the details concerning the meaning of
identifiers to the static checking stage.