😊

[Bug #20433] 特定の値の Hash#inspect の結果がシンタックスエラーになるバグ報告

2024/04/19に公開

[Bug #20433] Hash.inspect for some hash returns syntax invalid representation

  • 次のような HashHash#inspect の戻り値が Ruby のシンタックスとして無効な値を返すバグ報告
{ :a! => 1 } # {:a!=>1}
{ :a? => 1 } # {:a?=>1}
{ :* => 1 }  # {:*=>1}
{ :== => 1 } # {:===>1}
{ :< => 1 }  # {:<=>1}
  • {:===>1}{:<=>1} がシンタックスエラーになるのはわかるんですが {:a!=>1}{:a?=>1} もシンタックスエラーになるんですねー
  • 以前どこかで『 #inspect の結果は必ずしも Ruby の構文として有効とは限らない』みたいな話を聞いたので今回みたいにシンタックスが正しくない出力をするのはしゃーない気はしますね
    • どこで話がでてきたかは忘れた…
    • Hash#inspect の結果を eval したいみたいなのってどういうニーズなんですがね
  • まあ普通に見づらいので => の前後にスペースを入れてもいい気はする
GitHubで編集を提案

Discussion