anchor.diff:    /// message based on the given [context]. Return the synthetic identifier that
     /// was inserted.
     Token insertSyntheticIdentifier(Token token, IdentifierContext context,
  -      [String stringValue = '']) {
  +      [String stringValue]) {
       // TODO(brianwilkerson) Accept the last consumed token.
  +    stringValue ??= '';
       Message message = context.recoveryTemplate.withArguments(token);
       Token identifier = new SyntheticStringToken(
           TokenType.IDENTIFIER, stringValue, token.charOffset, 0);
  
positive.code:         token = next;
          break;
        }
        var type = FormalParameterKind.optionalPositional;
        token = parseFormalParameter(token, type, kind).next;
        ++parameterCount;
      } while (optional(',', token));
      if (parameterCount == 0) {
  
negative.code:         token = next;
          break;
        }
        token =
            parseFormalParameter(token, FormalParameterKind.optionalNamed, kind)
                .next;
        ++parameterCount;
      } while (optional(',', token));
      if (parameterCount == 0) {
  