anchor.diff:      } else {
         return returnTypeOfElement(element);
       }
  +  }
  +
  +  void updateSelectorInTree(Element owner, Node node, Selector selector) {
  +    var elements = compiler.enqueuer.resolution.getCachedElements(owner);
  +    if (node.asSendSet() != null) {
  +      if (selector.isSetter() || selector.isIndexSet()) {
  +        elements.setSelector(node, selector);
  +      } else if (selector.isGetter() || selector.isIndex()) {
  +        elements.setGetterSelectorInComplexSendSet(node, selector);
  +      } else {
  +        assert(selector.isOperator());
  +        elements.setOperatorSelectorInComplexSendSet(node, selector);
  +      }
  +    } else if (node.asSend() != null) {
  +      elements.setSelector(node, selector);
  +    } else {
  +      assert(node.asForIn() != null);
  +      if (selector.asUntyped == compiler.iteratorSelector) {
  +        elements.setIteratorSelector(node, selector);
  +      } else if (selector.asUntyped == compiler.currentSelector) {
  +        elements.setCurrentSelector(node, selector);
  +      } else {
  +        assert(selector.asUntyped == compiler.moveNextSelector);
  +        elements.setMoveNextSelector(node, selector);
  +      }
  +    }
  +  }
  +
  +  bool isNativeElement(Element element) {
  +    if (element.isNative()) return true;
  +    return element.isMember()
  +        && element.getEnclosingClass().isNative()
  +        && element.isField();
     }
   }
   
  
positive.code:         && newType != types.nullType;
    }
  
    bool isNativeElement(Element element) {
      if (element.isNative()) return true;
      return element.isMember()
          && element.getEnclosingClass().isNative()
          && element.isField();
    }
  
    TypeMask checkTypeAnnotation(Element analyzedElement, TypeMask newType) {
      if (compiler.trustTypeAnnotations
          // Parameters are being checked by the method, and we can
  
negative.code:       selector = (receiverType == types.dynamicType)
            ? selector.asUntyped
            : types.newTypedSelector(receiverType, selector);
        inferrer.updateSelectorInTree(analyzedElement, node, selector);
      }
  
      // If the receiver of the call is a local, we may know more about
  