anchor.diff:      for (var variable in node.variables) {
         variable.metadata.accept(this);
         var initializer = variable.initializer;
  +      _flowAnalysis.add(variable.declaredElement,
  +          assigned: initializer != null);
         if (initializer != null) {
           var destinationType = getOrComputeElementType(variable.declaredElement);
           if (typeAnnotation == null) {
  
positive.code:         }
        }
      } finally {
        _flowAnalysis = null;
        _currentFunctionType = null;
        _postDominatedLocals.popScope();
  
negative.code:     }
    }
  
    void _createFlowAnalysis(FunctionBody node, FormalParameterList parameters) {
      assert(_flowAnalysis == null);
      _flowAnalysis =
          FlowAnalysis<Statement, Expression, VariableElement, DecoratedType>(
              const AnalyzerNodeOperations(),
              DecoratedTypeOperations(_typeSystem, _variables, _graph),
              AnalyzerFunctionBodyAccess(node));
      if (parameters != null) {
        for (var parameter in parameters.parameters) {
          _flowAnalysis.add(parameter.declaredElement, assigned: true);
        }
      }
    }
  
    DecoratedType _decorateUpperOrLowerBound(AstNode astNode, DartType type,
  