1. A computer-implemented method for performing out of order name resolution in an electronic design language comprising: receiving, one or more design units associated with an electronic design; registering the one or more design units in a registry database; performing local name resolution for each element reference within at least one of the one or more design units, wherein performing local name resolution is performed out of order as it is not constrained to an order of declarations; in response to registering, identifying at least one element reference upon which local name resolution was not performed and obtaining an appropriate element reference from the registry database; reviewing at least one secondary design unit for one or more local declarations; and performing local name resolution for one or more remaining element references using a design hierarchy.