anchor.diff:      }
     }
   
  +  @override
  +  visitMethodInvocation(MethodInvocation node) {
  +    node.safelyVisitChild(node.target, this);
  +
  +    if (node.target == null)
  +      node.safelyVisitChild(node.methodName, this);
  +
  +    node.safelyVisitChild(node.argumentList, this);
  +  }
  +
     //Only resolve the prefix.
     //TODO handle library 'as ...' imports.
  +  @override
     visitPrefixedIdentifier(PrefixedIdentifier node) {
       node.safelyVisitChild(node.prefix, this);
     }
   
     //Only try to resolve the target.
  -  visitPropertyAcces(PropertyAccess node) {
  +  @override
  +  visitPropertyAccess(PropertyAccess node) {
       node.safelyVisitChild(node.target, this);
     }
   
  +  @override
  +  visitNamedExpression(NamedExpression node) {
  +    node.safelyVisitChild(node.expression, this);
  +  }
  +
     //Dont visit identifiers in these AST nodes.
  +  @override
     visitLibraryDirective(LibraryDirective node) {}
  +
  +  @override
     visitImportDirective(ImportDirective node) {}
  +
  +  @override
     visitExportDirective(ExportDirective node) {}
  +
  +  @override
     visitPartDirective(PartDirective node) {}
  +
  +  @override
     visitPartOfDirective(PartOfDirective node) {}
   }
positive.code: 
    }
    
    visitSimpleIdentifier(SimpleIdentifier node) {
  
      Our.Name n = new Our.Name(node.name.toString());
      var local_element = scope[node.name.toString()];
      var lib_element = library.lookup(n, false);
  
negative.code:     this.scope = {};
    }
  
    @override
    visitBlock(Block node) {
      _openNewScope(scope, (_) =>
          super.visitBlock(node));
    }
  
    @override
    visitFormalParameter(FormalParameter node) {
      this.scope[node.identifier.toString()] = this.declaredElements[node];
      super.visitFormalParameter(node);
    }
    
    @override
    visitClassDeclaration(ClassDeclaration node){
      
      _openNewScope(scope, (_) {
        Our.ClassElement c = this.declaredElements[node];
  
        c.declaredElements.forEach((k, v) {
          this.scope[k.toString()] = v;
        });
  
        this.scope["this"] = c;
        super.visitClassDeclaration(node);
      });
    }
  
    @override
    visitVariableDeclaration(VariableDeclaration node) {
      node.safelyVisitChild(node.initializer, this);
      var namedElem = this.declaredElements[node];
      if (namedElem != null)
        this.scope[node.name.toString()] = namedElem;
  
      node.safelyVisitChild(node.name, this);
    }
  
    @override
    visitCascadeExpression(CascadeExpression node) {
    }
    
    @override
    visitFieldDeclaration(FieldDeclaration node) {
      node.visitChildren(this);
    }
    
    @override
    visitFunctionDeclaration(FunctionDeclaration node) {
  
      if (node.name != null) {
  