[#120465] [Ruby master Bug#20998] rb_str_locktmp() changes flags of frozen strings and string literals — "Eregon (Benoit Daloze) via ruby-core" <ruby-core@...>
Issue #20998 has been reported by Eregon (Benoit Daloze).
17 messages
2025/01/03
[ruby-core:120538] [Ruby master Bug#21014] Prism doesn't set node_id on iseqs correctly
From:
"tenderlovemaking (Aaron Patterson) via ruby-core" <ruby-core@...>
Date:
2025-01-08 00:35:03 UTC
List:
ruby-core #120538
Issue #21014 has been reported by tenderlovemaking (Aaron Patterson).
----------------------------------------
Bug #21014: Prism doesn't set node_id on iseqs correctly
https://bugs.ruby-lang.org/issues/21014
* Author: tenderlovemaking (Aaron Patterson)
* Status: Open
* Assignee: prism
* Backport: 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN, 3.4: UNKNOWN
----------------------------------------
Given this code:
```ruby
f = proc { <<END }
heredoc
END
iseq = RubyVM::InstructionSequence.of(f)
p iseq.to_a[4][:node_id]
```
Output on parse.y:
```
$ ./miniruby --parser=parse.y test.rb
3
```
Output on Prism:
```
$ ./miniruby test.rb
-1
```
I don't expect node IDs on Prism to match parse.y, but I do expect the node id to be a legitimate node id. For example, this program should work:
```ruby
f = proc { <<END }
heredoc
END
iseq = RubyVM::InstructionSequence.of(f)
require "prism"
node_id = iseq.to_a[4][:node_id]
ast = Prism.parse(File.binread(__FILE__))
p ast.value.breadth_first_search { |node| node.node_id == node_id }
```
--
https://bugs.ruby-lang.org/
______________________________________________
ruby-core mailing list -- ruby-core@ml.ruby-lang.org
To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/