diff options
| author | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2026-03-07 10:39:46 +0900 |
|---|---|---|
| committer | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2026-03-07 10:39:46 +0900 |
| commit | 55694ad7efc3f8dc6d5c7aefa60ded4c303ed6cf (patch) | |
| tree | b242ac448c84eccf336add2fcae6656c19443c8e /parse.y | |
| parent | b324803732c8568738a4484be495dcae56997086 (diff) | |
[Bug #21945] Correctly handle `and?` and similar
Diffstat (limited to 'parse.y')
| -rw-r--r-- | parse.y | 3 |
1 files changed, 3 insertions, 0 deletions
@@ -6978,6 +6978,9 @@ peek_word_at(struct parser_params *p, const char *str, size_t len, int at) if (lex_eol_ptr_n_p(p, ptr, len-1)) return false; if (memcmp(ptr, str, len)) return false; if (lex_eol_ptr_n_p(p, ptr, len)) return true; + switch (ptr[len]) { + case '!': case '?': return false; + } return !is_identchar(p, ptr+len, p->lex.pend, p->enc); } |
