anchor.diff:        DartType type =
             shouldReportMissingMember_static ? staticType : propagatedType;
         if (leftBracket == null || rightBracket == null) {
  -        _recordUndefinedNode(
  -            type.element, errorCode, node, [methodName, type.displayName]);
  +        _recordUndefinedNode(type.element, errorCode, expression, [
  +          methodName,
  +          type.displayName
  +        ]);
         } else {
           int offset = leftBracket.offset;
           int length = rightBracket.offset - offset + 1;
  
positive.code:   }
  
    /**
     * Given an invocation of the form 'e.m(a1, ..., an)', resolve 'e.m' to the element being invoked.
     * If the returned element is a method, then the method will be invoked. If the returned element
     * is a getter, the getter will be invoked without arguments and the result of that invocation
     * will then be invoked with the arguments.
     *
     * @param target the target of the invocation ('e')
     * @param targetType the type of the target
     * @param methodName the name of the method being invoked ('m')
     * @return the element being invoked
     */
    Element _resolveInvokedElementWithTarget(
        Expression target, DartType targetType, SimpleIdentifier methodName) {
  
negative.code:   }
  
    /**
     * Given that we are accessing a property of the given [targetType] with the
     * given [propertyName], return the element that represents the property. The
     * [target] is the target of the invocation ('e').
     */
    ExecutableElement _resolveProperty(
        Expression target, DartType targetType, SimpleIdentifier propertyName) {
  