anchor.diff:        // [: foo = 42 :] or [: foo.bar = 42 :].
         ArgumentsTypes arguments =  new ArgumentsTypes([rhsType], null);
         if (Elements.isStaticOrTopLevelField(element)) {
  -        if (element.isSetter()) {
  -          handleStaticSend(node, setterSelector, element, arguments);
  -        } else {
  -          assert(element.isField());
  -          inferrer.recordNonFinalFieldElementType(node, element, rhsType);
  -        }
  +        handleStaticSend(node, setterSelector, element, arguments);
         } else if (Elements.isUnresolved(element) || element.isSetter()) {
           handleDynamicSend(node, setterSelector, receiverType, arguments);
         } else if (element.isField()) {
  
positive.code:         getterType = getterElement.isField()
              ? inferrer.typeOfElement(element)
              : inferrer.returnTypeOfElement(element);
          if (getterElement.isGetter()) {
            handleStaticSend(node, getterSelector, getterElement, null);
          }
          newType = handleDynamicSend(
              node, operatorSelector, getterType, operatorArguments);
          if (element.isField()) {
            inferrer.recordNonFinalFieldElementType(node, element, newType);
          } else {
            assert(element.isSetter());
            handleStaticSend(
                node, setterSelector, element,
                new ArgumentsTypes([newType], null));
          }
        } else if (Elements.isUnresolved(element) || element.isSetter()) {
          getterType = handleDynamicSend(
              node, getterSelector, receiverType, null);
          newType = handleDynamicSend(
              node, operatorSelector, getterType, operatorArguments);
          handleDynamicSend(node, setterSelector, receiverType,
                            new ArgumentsTypes([newType], null));
        } else if (element.isField()) {
          assert(!element.modifiers.isFinal());
          getterType = inferrer.dynamicType; // The type of the field.
          newType = handleDynamicSend(
              node, operatorSelector, getterType, operatorArguments);
          handleDynamicSend(node, setterSelector, receiverType,
  
negative.code:                         Selector selector,
                          Element element,
                          ArgumentsTypes arguments) {
      if (Elements.isUnresolved(element)) return;
      inferrer.registerCalledElement(
          node, selector, outermostElement, element, arguments, inLoop);
    }
  
  