anchor.diff:     * compilation unit has been resolved, this set should be empty.
      */
     Set<Element> _expectedElements;
  -
  -  /**
  -   * The compilation unit containing the AST nodes being visited.
  -   */
  -  CompilationUnitElementImpl _enclosingUnit;
   
     /**
      * The function type alias containing the AST nodes being visited, or `null`
  
positive.code:  * This class must not assume that the [CompilationUnitElement] passed to it is
   * any more complete than a [COMPILATION_UNIT_ELEMENT].
   */
  class DeclarationResolver extends RecursiveAstVisitor<Object> {
    /**
     * The analysis context containing the sources to be analyzed.
     */
  
negative.code:  * The resulting AST must have everything resolved that would have been resolved
   * by a [DirectiveElementBuilder].
   */
  class DirectiveResolver extends SimpleAstVisitor with ExistingElementResolver {
    @override
    void visitCompilationUnit(CompilationUnit node) {
      _enclosingUnit = node.element;
  