anchor.diff:    }
   
     @override
  -  Object visitAnnotation(Annotation node) {
  +  void visitAnnotation(Annotation node) {
       // Annotations can only contain elements in certain erroneous situations,
       // in which case the elements are disconnected from the rest of the element
       // model, thus we can't reconnect to them.  To avoid crashes, just create
       // fresh elements.
       ElementHolder elementHolder = new ElementHolder();
       new ElementBuilder(elementHolder, _enclosingUnit).visitAnnotation(node);
  -    return null;
  -  }
  -
  -  @override
  -  Object visitBlockFunctionBody(BlockFunctionBody node) {
  +  }
  +
  +  @override
  +  void visitBlockFunctionBody(BlockFunctionBody node) {
       if (_isBodyToCreateElementsFor(node)) {
         _walker.consumeLocalElements();
         node.accept(_walker.elementBuilder);
  -      return null;
  -    } else {
  -      return super.visitBlockFunctionBody(node);
  -    }
  -  }
  -
  -  @override
  -  Object visitCatchClause(CatchClause node) {
  +    } else {
  +      super.visitBlockFunctionBody(node);
  +    }
  +  }
  +
  +  @override
  +  void visitCatchClause(CatchClause node) {
       _walker.elementBuilder.buildCatchVariableElements(node);
  -    return super.visitCatchClause(node);
  -  }
  -
  -  @override
  -  Object visitClassDeclaration(ClassDeclaration node) {
  +    super.visitCatchClause(node);
  +  }
  +
  +  @override
  +  void visitClassDeclaration(ClassDeclaration node) {
       ClassElement element = _match(node.name, _walker.getClass());
       _walk(new ElementWalker.forClass(element), () {
         super.visitClassDeclaration(node);
       });
       resolveMetadata(node, node.metadata, element);
  -    return null;
  -  }
  -
  -  @override
  -  Object visitClassTypeAlias(ClassTypeAlias node) {
  +  }
  +
  +  @override
  +  void visitClassTypeAlias(ClassTypeAlias node) {
       ClassElement element = _match(node.name, _walker.getClass());
       _walk(new ElementWalker.forClass(element), () {
         super.visitClassTypeAlias(node);
       });
       resolveMetadata(node, node.metadata, element);
  -    return null;
  -  }
  -
  -  @override
  -  Object visitConstructorDeclaration(ConstructorDeclaration node) {
  +  }
  +
  +  @override
  +  void visitConstructorDeclaration(ConstructorDeclaration node) {
       ConstructorElement element = _match(node.name, _walker.getConstructor(),
           offset: node.name?.offset ?? node.returnType.offset);
       _walk(new ElementWalker.forExecutable(element, _enclosingUnit), () {
  
positive.code:       _walker.getFunction(); // toString()
        super.visitEnumDeclaration(node);
      });
      return null;
    }
  
    @override
    Object visitExportDirective(ExportDirective node) {
      super.visitExportDirective(node);
      List<ElementAnnotation> annotations =
          _enclosingUnit.getAnnotations(node.offset);
  
negative.code:       annotations = _walker.element.library.metadata;
      }
      resolveAnnotations(node, node.metadata, annotations);
    }
  
    @override
    void visitMethodDeclaration(MethodDeclaration node) {
      Token property = node.propertyKeyword;
      SimpleIdentifier methodName = node.name;
      String nameOfMethod = methodName.name;
  