@Override
 protected Element internalLookup(
     Identifier identifier, String name, LibraryElement referencingLibrary) {
   Element element = localLookup(name, referencingLibrary);
   if (element != null) {
     return element;
   }
   // May be there is a hidden Element.
   if (hasHiddenName) {
     Element hiddenElement = hiddenElements.get(name);
     if (hiddenElement != null) {
       getErrorListener()
           .onError(
               new AnalysisError(
                   getSource(identifier),
                   identifier.getOffset(),
                   identifier.getLength(),
                   CompileTimeErrorCode.REFERENCED_BEFORE_DECLARATION));
       return hiddenElement;
     }
   }
   // Check enclosing scope.
   return enclosingScope.internalLookup(identifier, name, referencingLibrary);
 }