anchor.diff:    ast.Expression visitFunctionExpressionInvocation(
         FunctionExpressionInvocation node) {
       return new ast.MethodInvocation(
  -        build(node.function), callName, buildArgumentsForInvocation(node));
  +        build(node.function),
  +        callName,
  +        buildArgumentsForInvocation(node),
  +        scope.resolveInterfaceFunctionCallOnType(node.function.staticType));
     }
   
     visitPrefixedIdentifier(PrefixedIdentifier node) {
  
positive.code:             new ast.NullLiteral(), node.methodName.name, new ast.Arguments([]),
              candidateTarget: element);
        }
        return new ast.MethodInvocation(new ast.StaticGet(method), callName,
            buildArgumentsForInvocation(node));
      } else if (target == null && !scope.allowThis ||
          target is Identifier && target.staticElement is ClassElement ||
          target is Identifier && target.staticElement is PrefixElement) {
  
negative.code:       return new ast.MethodInvocation(
            new ast.PropertyGet(receiver, name, targetGetter),
            callName,
            arguments,
            scope.resolveInterfaceFunctionCall(targetElement));
      }
      // Emit a dynamic call.
      return new ast.MethodInvocation(receiver, name, arguments);
  