anchor.diff:    /// needed by type inference.
     bool _serializeClosureBodyExprs = false;
   
  -  /// If a closure function body is being serialized, the set of closure
  -  /// parameter names which are currently in scope.  Otherwise `null`.
  -  Set<String> _parameterNames;
  +  /// The set of variable names which are currently in scope.
  +  List<String> _variableNames = [];
   
     /// Indicates whether parameters found during visitors might inherit
     /// covariance.
  
positive.code:     if (serializeBodyExpr) {
        if (body is Expression) {
          b.bodyExpr = serializeConstExpr(
              forConst, _localClosureIndexMap, body, _parameterNames);
        } else if (body is ExpressionFunctionBody) {
          b.bodyExpr = serializeConstExpr(
              forConst, _localClosureIndexMap, body.expression, _parameterNames);
        } else {
          // TODO(paulberry): serialize other types of function bodies.
        }
  
negative.code:     }
      b.visibleOffset = enclosingBlock?.offset;
      b.visibleLength = enclosingBlock?.length;
      int oldVariableNamesLength = _variableNames.length;
      if (formalParameters != null && formalParameters.parameters.isNotEmpty) {
        _variableNames.addAll(formalParameters.parameters
            .map((FormalParameter p) => p.identifier.name));
      }
      serializeFunctionBody(
  