anchor.diff:        return;
       }
   
  -    // TODO(scheglov) It is wasteful: get library URI multiple times.
  -    // TODO(scheglov) It is wasteful: create names multiple times.
  -    var targetType = _inheritance.getMember(
  -      receiverType,
  -      new Name(_definingLibrary.source.uri, name),
  -    );
  +    var targetType = _inheritance.getMember(receiverType, _currentName);
       if (targetType != null) {
         var calleeType = _getCalleeType(targetType);
   
  
positive.code:   void resolve(MethodInvocation node) {
      SimpleIdentifier nameNode = node.methodName;
      String name = nameNode.name;
  
      //
      // Synthetic identifiers have been already reported during parsing.
  
negative.code:   /// The element for the library containing the compilation unit being visited.
    final LibraryElement _definingLibrary;
  
    /// The URI of [_definingLibrary].
    final Uri _definingLibraryUri;
  
    /// The object keeping track of which elements have had their types promoted.
    final TypePromotionManager _promoteManager;
  
    /// The [Name] object of the invocation being resolved by [resolve].
    Name _currentName;
  
    MethodInvocationResolver(this._resolver)
        : _typeType = _resolver.typeProvider.typeType,
          _inheritance = _resolver.inheritance,
          _definingLibrary = _resolver.definingLibrary,
          _definingLibraryUri = _resolver.definingLibrary.source.uri,
          _promoteManager = _resolver.promoteManager;
  
    /// The scope used to resolve identifiers.
  