👋
[Bug #21974] ::Foo = 1 を RubyVM::AST.parse でパースすると segv するというバグ報告
[Bug #21974] Cannot inspect RubyVM::AST for CDECL
-
::Foo = 1をRubyVM::AbstractSyntaxTree.parseでパースすると segv するというバグ報告
pp RubyVM::AbstractSyntaxTree.parse("::Foo = 1")
# => [BUG] Segmentation fault at 0x0000000000000000
- Ruby 4.0 から再現するみたいですね
-
Foo = 1だと問題ないのでエラーになるケースは限られてそう?
pp RubyVM::AbstractSyntaxTree.parse("Foo = 1")
# => (SCOPE@1:0-1:7 tbl: [] args: nil body: (CDECL@1:0-1:7 :Foo (INTEGER@1:6-1:7 1)))
- この不具合は開発版の Ruby 4.1-dev で修正済み
pp RubyVM::AbstractSyntaxTree.parse("::Foo = 1")
# Ruby 4.0 => [BUG] Segmentation fault at 0x0000000000000000
# Ruby 4.1 => (SCOPE@1:0-1:9 tbl: [] args: nil body: (CDECL@1:0-1:9 (COLON3@1:0-1:5 :Foo) :Foo (INTEGER@1:8-1:9 1)))
Discussion