anchor.diff:      }
     }
   
  -  void _createFlowAnalysis(FunctionBody node) {
  +  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,
  
positive.code:     assert(_currentFunctionType == null);
      _currentFunctionType =
          _variables.decoratedElementType(node.declaredElement);
      _createFlowAnalysis(node.functionExpression.body);
      // Initialize a new postDominator scope that contains only the parameters.
      try {
        _postDominatedLocals.doScoped(
  
negative.code:     returnType?.accept(this);
      parameters?.accept(this);
      _currentFunctionType = _variables.decoratedElementType(declaredElement);
      _createFlowAnalysis(body, parameters);
      // Push a scope of post-dominated declarations on the stack.
      _postDominatedLocals.pushScope(elements: declaredElement.parameters);
      try {
  