@@ -2202,8 +2202,7 @@ rb_parser_enc_associate(struct parser_params *p, rb_parser_string_t *str, rb_enc
2202
2202
{
2203
2203
if (rb_parser_str_get_encoding(str) == enc)
2204
2204
return str;
2205
- if (!PARSER_ENC_CODERANGE_ASCIIONLY(str) ||
2206
- !rb_enc_asciicompat(enc)) {
2205
+ if (!PARSER_ENC_CODERANGE_ASCIIONLY(str)) {
2207
2206
PARSER_ENC_CODERANGE_CLEAR(str);
2208
2207
}
2209
2208
rb_parser_string_set_encoding(str, enc);
@@ -2216,18 +2215,6 @@ rb_parser_is_ascii_string(struct parser_params *p, rb_parser_string_t *str)
2216
2215
return rb_parser_enc_str_coderange(p, str) == RB_PARSER_ENC_CODERANGE_7BIT;
2217
2216
}
2218
2217
2219
- static int
2220
- rb_parser_enc_str_asciionly_p(struct parser_params *p, rb_parser_string_t *str)
2221
- {
2222
- rb_encoding *enc = rb_parser_str_get_encoding(str);
2223
-
2224
- if (!rb_enc_asciicompat(enc))
2225
- return FALSE;
2226
- else if (rb_parser_is_ascii_string(p, str))
2227
- return TRUE;
2228
- return FALSE;
2229
- }
2230
-
2231
2218
static rb_encoding *
2232
2219
rb_parser_enc_compatible_latter(struct parser_params *p, rb_parser_string_t *str1, rb_parser_string_t *str2, rb_encoding *enc1, rb_encoding *enc2)
2233
2220
{
@@ -2236,10 +2223,7 @@ rb_parser_enc_compatible_latter(struct parser_params *p, rb_parser_string_t *str
2236
2223
if (PARSER_STRING_LEN(str2) == 0)
2237
2224
return enc1;
2238
2225
if (PARSER_STRING_LEN(str1) == 0)
2239
- return (rb_enc_asciicompat(enc1) && rb_parser_enc_str_asciionly_p(p, str2)) ? enc1 : enc2;
2240
- if (!rb_enc_asciicompat(enc1) || !rb_enc_asciicompat(enc2)) {
2241
- return 0;
2242
- }
2226
+ return rb_parser_is_ascii_string(p, str2) ? enc1 : enc2;
2243
2227
2244
2228
cr1 = rb_parser_enc_str_coderange(p, str1);
2245
2229
cr2 = rb_parser_enc_str_coderange(p, str2);
@@ -6991,7 +6975,6 @@ rb_parser_str_escape(struct parser_params *p, rb_parser_string_t *str)
6991
6975
const char *prev = ptr;
6992
6976
char charbuf[5] = {'\\', 'x', 0, 0, 0};
6993
6977
rb_parser_string_t * result = rb_parser_string_new(p, 0, 0);
6994
- int asciicompat = rb_enc_asciicompat(enc);
6995
6978
6996
6979
while (ptr < pend) {
6997
6980
unsigned int c;
@@ -7021,7 +7004,7 @@ rb_parser_str_escape(struct parser_params *p, rb_parser_string_t *str)
7021
7004
parser_str_cat_cstr(result, cc);
7022
7005
prev = ptr;
7023
7006
}
7024
- else if (asciicompat && rb_enc_isascii(c, enc) && ISPRINT(c)) {
7007
+ else if (rb_enc_isascii(c, enc) && ISPRINT(c)) {
7025
7008
}
7026
7009
else {
7027
7010
if (ptr - n > prev) {
@@ -7703,7 +7686,7 @@ parser_str_new(struct parser_params *p, const char *ptr, long len, rb_encoding *
7703
7686
7704
7687
pstr = rb_parser_encoding_string_new(p, ptr, len, enc);
7705
7688
7706
- if (!(func & STR_FUNC_REGEXP) && rb_enc_asciicompat(enc) ) {
7689
+ if (!(func & STR_FUNC_REGEXP)) {
7707
7690
if (rb_parser_is_ascii_string(p, pstr)) {
7708
7691
}
7709
7692
else if (rb_is_usascii_enc((void *)enc0) && enc != rb_utf8_encoding()) {
@@ -9187,7 +9170,7 @@ here_document(struct parser_params *p, rb_strterm_heredoc_t *here)
9187
9170
}
9188
9171
else {
9189
9172
if ((len = p->lex.pcur - p->lex.ptok) > 0) {
9190
- if (!(func & STR_FUNC_REGEXP) && rb_enc_asciicompat(enc) ) {
9173
+ if (!(func & STR_FUNC_REGEXP)) {
9191
9174
int cr = ENC_CODERANGE_UNKNOWN;
9192
9175
rb_str_coderange_scan_restartable(p->lex.ptok, p->lex.pcur, enc, &cr);
9193
9176
if (cr != ENC_CODERANGE_7BIT &&
0 commit comments