diff --git a/changelog/new_support_ruby_3_4_parser.md b/changelog/new_support_ruby_3_4_parser.md new file mode 100644 index 000000000..f29e785e9 --- /dev/null +++ b/changelog/new_support_ruby_3_4_parser.md @@ -0,0 +1 @@ +* [#276](https://github.com/rubocop-hq/rubocop-ast/pull/276): Support `Parser::Ruby34` for Ruby 3.4 parser (experimental). ([@koic][]) diff --git a/lib/rubocop/ast/processed_source.rb b/lib/rubocop/ast/processed_source.rb index c79a98aec..9a9a5bd29 100644 --- a/lib/rubocop/ast/processed_source.rb +++ b/lib/rubocop/ast/processed_source.rb @@ -268,6 +268,9 @@ def parser_class(ruby_version) when 3.3 require 'parser/ruby33' Parser::Ruby33 + when 3.4 + require 'parser/ruby34' + Parser::Ruby34 else raise ArgumentError, "RuboCop found unknown Ruby version: #{ruby_version.inspect}" diff --git a/rubocop-ast.gemspec b/rubocop-ast.gemspec index 44f6054ef..4f820ade2 100644 --- a/rubocop-ast.gemspec +++ b/rubocop-ast.gemspec @@ -33,7 +33,7 @@ Gem::Specification.new do |s| 'rubygems_mfa_required' => 'true' } - s.add_runtime_dependency('parser', '>= 3.2.1.0') + s.add_runtime_dependency('parser', '>= 3.3.0.4') ##### Do NOT add `rubocop` (or anything depending on `rubocop`) here. See Gemfile end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 06f0e1e16..b4bb88634 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -55,6 +55,10 @@ let(:ruby_version) { 3.3 } end +RSpec.shared_context 'ruby 3.4', :ruby34 do + let(:ruby_version) { 3.4 } +end + # ... module DefaultRubyVersion extend RSpec::SharedContext