summaryrefslogtreecommitdiff
path: root/lib/prism/ffi.rb
diff options
context:
space:
mode:
authorKevin Newton <[email protected]>2024-01-02 11:18:29 -0500
committergit <[email protected]>2024-01-02 18:51:18 +0000
commit23beceedb76a47b3f4497809eefb7338690df191 ()
treee482db37df537fe2548b906c29b3f376b365555c /lib/prism/ffi.rb
parent04f64608e8bfb50f62633864e68f83b2a6099714 (diff)
[ruby/prism] IndexTargetNode should always have ATTRIBUTE_WRITE
Because this is a user-facing change, we also need to deal with the fact that CRuby 3.3.0 was just released. In order to support workflows that want to parse exactly as CRuby parses in a specific version, this PR introduces a new option to the options struct that is "version". This allows you to specify that you want "3.3.0" parsing. I'm not sure if this is the correct solution. Another solution is to just fork and keep around the old branch for security es. Or we could keep around a copy of the source files within this repository as another directory and only update when necessary. There are a lot of potential solutions here. Because this change is so small and the check for it is so minimal, I've decided to go with this enum. If this ends up entirely cluttering the codebase with version checks, we'll come up with another solution. But for now this works, so we're going to go in this direction for a bit until we determine it's no longer working. https://.com/ruby/prism/commit/d8c7e6bd10
-rw-r--r--lib/prism/ffi.rb3
1 files changed, 3 insertions, 0 deletions
@@ -314,6 +314,9 @@ module Prism
template << "C"
values << (options.fetch(:verbose, true) ? 0 : 1)
template << "L"
if (scopes = options[:scopes])
values << scopes.length