anchor.diff:  
     @override
     void functionExpression_end() {
  -    --_functionNestingLevel;
  -    assert(_functionNestingLevel >= 0);
       _SimpleContext<Variable, Type> context =
           _stack.removeLast() as _FunctionExpressionContext<Variable, Type>;
       _current = context._previous;
  
positive.code:   void functionExpression_begin(Node node) {
      AssignedVariablesNodeInfo<Variable> info =
          _assignedVariables._getInfoForNode(node);
      ++_functionNestingLevel;
      _current = _current.conservativeJoin(const [], info._written);
      _stack.add(new _FunctionExpressionContext(_current));
      _current = _current.conservativeJoin(_assignedVariables._anywhere._written,
  
negative.code:   /// Otherwise `null`.
    ReferenceWithType<Variable, Type>? _expressionReference;
  
    final AssignedVariables<Node, Variable> _assignedVariables;
  
    /// Indicates whether initializers of implicitly typed variables should be
  