anchor.diff:      Expression function = node.function;
       DartType staticInvokeType = _instantiateGenericMethod(
           function.staticType, node.typeArguments, node);
  -    DartType propagatedInvokeType = _instantiateGenericMethod(
  -        function.propagatedType, node.typeArguments, node);
   
       node.staticInvokeType = staticInvokeType;
  -    node.propagatedInvokeType = null;
   
       List<ParameterElement> parameters =
           _computeCorrespondingParameters(node.argumentList, staticInvokeType);
       if (parameters != null) {
         node.argumentList.correspondingStaticParameters = parameters;
  -    }
  -
  -    parameters = _computeCorrespondingParameters(
  -        node.argumentList, propagatedInvokeType);
  -    if (parameters != null) {
  -      node.argumentList.correspondingPropagatedParameters = parameters;
       }
       return null;
     }
  
positive.code:       if (isCascaded) {
          typeReference = _typeType.element;
        }
        // TODO(brianwilkerson) Why are we setting the propagated element here?
        // It looks wrong.
        staticElement =
            propagatedElement = _resolveElement(typeReference, propertyName);
      } else {
        staticElement = _resolveProperty(target, staticType, propertyName);
        propagatedElement =
            _resolveProperty(target, propagatedType, propertyName);
      }
      // May be part of annotation, record property element only if exists.
      // Error was already reported in validateAnnotationElement().
  
negative.code:       return;
      }
      propertyName.staticElement = staticElement;
      if (_shouldReportMissingMember(staticType, staticElement)) {
        Element staticOrPropagatedEnclosingElt = staticType.element;
        bool isStaticProperty = _isStatic(staticOrPropagatedEnclosingElt);
        // Special getter cases.
        if (propertyName.inGetterContext()) {
          if (!isStaticProperty &&
  