🚀

[Bug #21186] `?あand` が parse.y と prism で一貫性がないバグ報告

に公開

[Bug #21186] Inconsistent parsing of ?あand 0

  • ?あand 0parse.yprism で挙動が違うというバグ報告
    • parse.y だとエラーにならないんですが prism だとエラーになるみたい
$ ruby -v
ruby 3.4.2 (2025-02-15 revision d2930f8e7a) +PRISM [x86_64-linux]
$ ruby --parser=prism -e "?あand 0"
-e: -e:1: syntax error found (SyntaxError)
> 1 | ?あand 0
    | ^ unexpected '?', ignoring it

$ ruby --parser=parse.y -e "?あand 0"
$
  • ?aand 0 だと両方ともエラーになり、 ?\caand 0 だと両方ともエラーにならないのは一貫しているみたいですね
  • ? の挙動としては後続の『1文字が』Symbol リテラルとして定義される想定なので2文字以上の場合はエラーになるのが期待する挙動みたいですね
  • この不具合は開発版の Ruby 3.5-dev で『両方をもエラーになるように』修正済みです
GitHubで編集を提案

Discussion