anchor.diff:    @override
     DartType visitAssignmentExpression(AssignmentExpression node) {
       if (childNode == node.rightHandSide) {
  -      return node.leftHandSide.staticType;
  +      if (node.operator.type == TokenType.EQ) {
  +        return node.leftHandSide.staticType;
  +      }
  +      var method = node.staticElement;
  +      if (method != null) {
  +        var parameters = method.parameters;
  +        if (parameters != null && parameters.isNotEmpty) {
  +          return parameters[0].type;
  +        }
  +      }
       }
       return null;
     }
  
positive.code:   }
  
    @override
    DartType visitVariableDeclaration(VariableDeclaration node) {
      if (childNode == node.initializer) {
        var parent = node.parent;
  
negative.code:   }
  
    @override
    DartType visitAsExpression(AsExpression node) {
      if (childNode == node.type) {
        return node.expression.staticType;
      }
      return null;
    }
  
    @override
    DartType visitAssertInitializer(AssertInitializer node) {
      if (childNode == node.condition) {
        return typeProvider.boolType;
  