
Issue #20761 has been updated by Earlopain (A S). kddnewton (Kevin Newton) wrote in #note-1:
This is expected behavior. The instruction sequences will have different node ids, so it's not possible to retrieve the RubyVM::AbstractSyntaxTree representation of the AST. If you want to retrieve the Prism AST, you can do so using `Prism.parse` in the same way that error highlight does here: https://github.com/ruby/error_highlight/blob/452f78640c08ab277683416668a52d9....
Thanks, I have already looked at that code since you linked to it in the PR that made this error. It seems to rely on a backtrace to understand which node to look for but is that possible if I just have a proc that doesn't raise by itself? I'd guess the proc does have a node id but I'm not sure how to retrieve it. ---------------------------------------- Bug #20761: [DOC] `RubyVM::AbstractSyntaxTree.of` examples raise because parser is prism by default https://bugs.ruby-lang.org/issues/20761#change-109914 * Author: Earlopain (A S) * Status: Closed * ruby -v: 3.4-dev * Backport: 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN ---------------------------------------- https://docs.ruby-lang.org/en/master/RubyVM/AbstractSyntaxTree.html#method-c... ```rb RubyVM::AbstractSyntaxTree.of(proc {1 + 2}) # => <internal:ast>:97:in 'RubyVM::AbstractSyntaxTree.of': cannot get AST for ISEQ compiled by prism (RuntimeError) ``` Same for the method example. Is this method even functional when prism is used, or is the prism gem able to do this somehow? -- https://bugs.ruby-lang.org/