anchor.diff:          kind = ParameterKind.REQUIRED;
         } else if (_matches(TokenType.CLOSE_CURLY_BRACKET)) {
           rightCurlyBracket = getAndAdvance();
  -        currentParameters = normalParameters;
           if (leftCurlyBracket == null) {
             if (leftSquareBracket != null) {
               _reportErrorForCurrentToken(
  
positive.code:       // mismatched delimiters.
        if (_matches(TokenType.CLOSE_SQUARE_BRACKET)) {
          rightSquareBracket = getAndAdvance();
          currentParameters = normalParameters;
          if (leftSquareBracket == null) {
            if (leftCurlyBracket != null) {
              _reportErrorForCurrentToken(
  
negative.code:       //
        FormalParameter parameter = _parseFormalParameter(kind);
        parameters.add(parameter);
        if (kind == ParameterKind.REQUIRED && wasOptionalParameter) {
          _reportErrorForNode(
              ParserErrorCode.NORMAL_BEFORE_OPTIONAL_PARAMETERS, parameter);
  