From 7beabb9a9d3420bc3910ec621a8a4a49fe9ed93f Mon Sep 17 00:00:00 2001 From: Koichi ITO Date: Tue, 16 Jan 2024 08:29:49 +0900 Subject: [PATCH] Support `Parser::Ruby34` Parser gem has been started development for Ruby 3.4 (edge Ruby). https://github.com/whitequark/parser/pull/991 And this PR update to require Parser 3.3.0.4 or higher, which contains `Parser::Ruby34`. https://github.com/whitequark/parser/blob/master/CHANGELOG.md#not-released-2024-01-15 --- changelog/new_support_ruby_3_4_parser.md | 1 + lib/rubocop/ast/processed_source.rb | 3 +++ rubocop-ast.gemspec | 2 +- spec/spec_helper.rb | 4 ++++ 4 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 changelog/new_support_ruby_3_4_parser.md 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