[ruby/prism] Update for Ruby 3.4 errors
https://github.com/ruby/prism/commit/20fea2cf2b
This commit is contained in:
parent
90c5393f9f
commit
31735d77c5
@ -190,7 +190,9 @@ static const pm_diagnostic_data_t diagnostic_messages[PM_DIAGNOSTIC_ID_LEN] = {
|
||||
[PM_ERR_HASH_VALUE] = { "expected a value in the hash literal", PM_ERROR_LEVEL_FATAL },
|
||||
[PM_ERR_HEREDOC_TERM] = { "could not find a terminator for the heredoc", PM_ERROR_LEVEL_FATAL },
|
||||
[PM_ERR_INCOMPLETE_QUESTION_MARK] = { "incomplete expression at `?`", PM_ERROR_LEVEL_FATAL },
|
||||
[PM_ERR_INCOMPLETE_VARIABLE_CLASS_3_3_0] = { "`%.*s' is not allowed as a class variable name", PM_ERROR_LEVEL_FATAL },
|
||||
[PM_ERR_INCOMPLETE_VARIABLE_CLASS] = { "'%.*s' is not allowed as a class variable name", PM_ERROR_LEVEL_FATAL },
|
||||
[PM_ERR_INCOMPLETE_VARIABLE_INSTANCE_3_3_0] = { "`%.*s' is not allowed as an instance variable name", PM_ERROR_LEVEL_FATAL },
|
||||
[PM_ERR_INCOMPLETE_VARIABLE_INSTANCE] = { "'%.*s' is not allowed as an instance variable name", PM_ERROR_LEVEL_FATAL },
|
||||
[PM_ERR_INVALID_FLOAT_EXPONENT] = { "invalid exponent", PM_ERROR_LEVEL_FATAL },
|
||||
[PM_ERR_INVALID_NUMBER_BINARY] = { "invalid binary number", PM_ERROR_LEVEL_FATAL },
|
||||
@ -202,14 +204,10 @@ static const pm_diagnostic_data_t diagnostic_messages[PM_DIAGNOSTIC_ID_LEN] = {
|
||||
[PM_ERR_INVALID_MULTIBYTE_CHARACTER] = { "invalid multibyte character 0x%X", PM_ERROR_LEVEL_FATAL },
|
||||
[PM_ERR_INVALID_PRINTABLE_CHARACTER] = { "invalid character `%c`", PM_ERROR_LEVEL_FATAL },
|
||||
[PM_ERR_INVALID_PERCENT] = { "invalid `%` token", PM_ERROR_LEVEL_FATAL }, // TODO WHAT?
|
||||
<<<<<<< HEAD:prism/diagnostic.c
|
||||
[PM_ERR_INVALID_VARIABLE_GLOBAL_3_3_0] = { "`%.*s' is not allowed as a global variable name", PM_ERROR_LEVEL_FATAL },
|
||||
[PM_ERR_INVALID_VARIABLE_GLOBAL] = { "'%.*s' is not allowed as a global variable name", PM_ERROR_LEVEL_FATAL },
|
||||
[PM_ERR_IT_NOT_ALLOWED] = { "`it` is not allowed when an ordinary parameter is defined", PM_ERROR_LEVEL_FATAL },
|
||||
=======
|
||||
[PM_ERR_INVALID_VARIABLE_GLOBAL] = { "`%.*s' is not allowed as a global variable name", PM_ERROR_LEVEL_FATAL },
|
||||
[PM_ERR_IT_NOT_ALLOWED_NUMBERED] = { "`it` is not allowed when an numbered parameter is defined", PM_ERROR_LEVEL_FATAL },
|
||||
[PM_ERR_IT_NOT_ALLOWED_ORDINARY] = { "`it` is not allowed when an ordinary parameter is defined", PM_ERROR_LEVEL_FATAL },
|
||||
>>>>>>> 7f1aadd057 (Support ItParametersNode):src/diagnostic.c
|
||||
[PM_ERR_LAMBDA_OPEN] = { "expected a `do` keyword or a `{` to open the lambda block", PM_ERROR_LEVEL_FATAL },
|
||||
[PM_ERR_LAMBDA_TERM_BRACE] = { "expected a lambda block beginning with `{` to end with `}`", PM_ERROR_LEVEL_FATAL },
|
||||
[PM_ERR_LAMBDA_TERM_END] = { "expected a lambda block beginning with `do` to end with `end`", PM_ERROR_LEVEL_FATAL },
|
||||
|
@ -187,7 +187,9 @@ typedef enum {
|
||||
PM_ERR_HASH_VALUE,
|
||||
PM_ERR_HEREDOC_TERM,
|
||||
PM_ERR_INCOMPLETE_QUESTION_MARK,
|
||||
PM_ERR_INCOMPLETE_VARIABLE_CLASS_3_3_0,
|
||||
PM_ERR_INCOMPLETE_VARIABLE_CLASS,
|
||||
PM_ERR_INCOMPLETE_VARIABLE_INSTANCE_3_3_0,
|
||||
PM_ERR_INCOMPLETE_VARIABLE_INSTANCE,
|
||||
PM_ERR_INVALID_ENCODING_MAGIC_COMMENT,
|
||||
PM_ERR_INVALID_FLOAT_EXPONENT,
|
||||
@ -200,6 +202,7 @@ typedef enum {
|
||||
PM_ERR_INVALID_MULTIBYTE_CHARACTER,
|
||||
PM_ERR_INVALID_PRINTABLE_CHARACTER,
|
||||
PM_ERR_INVALID_PERCENT,
|
||||
PM_ERR_INVALID_VARIABLE_GLOBAL_3_3_0,
|
||||
PM_ERR_INVALID_VARIABLE_GLOBAL,
|
||||
PM_ERR_IT_NOT_ALLOWED_NUMBERED,
|
||||
PM_ERR_IT_NOT_ALLOWED_ORDINARY,
|
||||
|
@ -7290,7 +7290,8 @@ lex_numeric(pm_parser_t *parser) {
|
||||
static pm_token_type_t
|
||||
lex_global_variable(pm_parser_t *parser) {
|
||||
if (parser->current.end >= parser->end) {
|
||||
PM_PARSER_ERR_TOKEN_FORMAT_CONTENT(parser, parser->current, PM_ERR_INVALID_VARIABLE_GLOBAL);
|
||||
pm_diagnostic_id_t diag_id = parser->version == PM_OPTIONS_VERSION_CRUBY_3_3_0 ? PM_ERR_INVALID_VARIABLE_GLOBAL_3_3_0 : PM_ERR_INVALID_VARIABLE_GLOBAL;
|
||||
PM_PARSER_ERR_TOKEN_FORMAT_CONTENT(parser, parser->current, diag_id);
|
||||
return PM_TOKEN_GLOBAL_VARIABLE;
|
||||
}
|
||||
|
||||
@ -7331,7 +7332,8 @@ lex_global_variable(pm_parser_t *parser) {
|
||||
} while (parser->current.end < parser->end && (width = char_is_identifier(parser, parser->current.end)) > 0);
|
||||
|
||||
// $0 isn't allowed to be followed by anything.
|
||||
PM_PARSER_ERR_TOKEN_FORMAT_CONTENT(parser, parser->current, PM_ERR_INVALID_VARIABLE_GLOBAL);
|
||||
pm_diagnostic_id_t diag_id = parser->version == PM_OPTIONS_VERSION_CRUBY_3_3_0 ? PM_ERR_INVALID_VARIABLE_GLOBAL_3_3_0 : PM_ERR_INVALID_VARIABLE_GLOBAL;
|
||||
PM_PARSER_ERR_TOKEN_FORMAT_CONTENT(parser, parser->current, diag_id);
|
||||
}
|
||||
|
||||
return PM_TOKEN_GLOBAL_VARIABLE;
|
||||
@ -7362,7 +7364,8 @@ lex_global_variable(pm_parser_t *parser) {
|
||||
} else {
|
||||
// If we get here, then we have a $ followed by something that isn't
|
||||
// recognized as a global variable.
|
||||
PM_PARSER_ERR_TOKEN_FORMAT_CONTENT(parser, parser->current, PM_ERR_INVALID_VARIABLE_GLOBAL);
|
||||
pm_diagnostic_id_t diag_id = parser->version == PM_OPTIONS_VERSION_CRUBY_3_3_0 ? PM_ERR_INVALID_VARIABLE_GLOBAL_3_3_0 : PM_ERR_INVALID_VARIABLE_GLOBAL;
|
||||
PM_PARSER_ERR_TOKEN_FORMAT_CONTENT(parser, parser->current, diag_id);
|
||||
}
|
||||
|
||||
return PM_TOKEN_GLOBAL_VARIABLE;
|
||||
@ -8268,6 +8271,10 @@ lex_at_variable(pm_parser_t *parser) {
|
||||
}
|
||||
} else {
|
||||
pm_diagnostic_id_t diag_id = (type == PM_TOKEN_CLASS_VARIABLE) ? PM_ERR_INCOMPLETE_VARIABLE_CLASS : PM_ERR_INCOMPLETE_VARIABLE_INSTANCE;
|
||||
if (parser->version == PM_OPTIONS_VERSION_CRUBY_3_3_0) {
|
||||
diag_id = (type == PM_TOKEN_CLASS_VARIABLE) ? PM_ERR_INCOMPLETE_VARIABLE_CLASS_3_3_0 : PM_ERR_INCOMPLETE_VARIABLE_INSTANCE_3_3_0;
|
||||
}
|
||||
|
||||
size_t width = parser->encoding->char_width(parser->current.end, parser->end - parser->current.end);
|
||||
PM_PARSER_ERR_TOKEN_FORMAT(parser, parser->current, diag_id, (int) ((parser->current.end + width) - parser->current.start), (const char *) parser->current.start);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user