anchor.diff:      VariableElement element = getPromotionStaticElement(expression);
       if (element != null) {
         // may be mutated somewhere in closure
  -      if (element.isPotentiallyMutatedInClosure) {
  +      if (_currentFunctionBody.isPotentiallyMutatedInClosure(element)) {
           return;
         }
         // prepare current variable type
  
positive.code:       InferenceContext.setType(node.body, returnType);
        super.visitMethodDeclaration(node);
      } finally {
        _enclosingFunction = outerFunction;
      }
      return null;
  
negative.code:   void _clearTypePromotionsIfAccessedInClosureAndProtentiallyMutated(
        AstNode target) {
      for (Element element in _promoteManager.promotedElements) {
        if (_currentFunctionBody.isPotentiallyMutatedInScope(element)) {
          if (_isVariableAccessedInClosure(element, target)) {
            _promoteManager.setType(element, null);
          }
  