diff --git a/changelog/new_support_ruby_3_1_parser.md b/changelog/new_support_ruby_3_1_parser.md new file mode 100644 index 000000000..b3d93f4db --- /dev/null +++ b/changelog/new_support_ruby_3_1_parser.md @@ -0,0 +1 @@ +* [#182](https://github.com/rubocop-hq/rubocop-ast/pull/182): Support `Parser::Ruby31` for Ruby 3.1 parser (experimental). ([@koic][]) diff --git a/lib/rubocop/ast/processed_source.rb b/lib/rubocop/ast/processed_source.rb index 566e5d343..558038461 100644 --- a/lib/rubocop/ast/processed_source.rb +++ b/lib/rubocop/ast/processed_source.rb @@ -236,6 +236,9 @@ def parser_class(ruby_version) when 2.8, 3.0 require 'parser/ruby30' Parser::Ruby30 + when 3.1 + require 'parser/ruby31' + Parser::Ruby31 else raise ArgumentError, "RuboCop found unknown Ruby version: #{ruby_version.inspect}" diff --git a/rubocop-ast.gemspec b/rubocop-ast.gemspec index 607954c68..2151cf112 100644 --- a/rubocop-ast.gemspec +++ b/rubocop-ast.gemspec @@ -32,7 +32,7 @@ Gem::Specification.new do |s| 'bug_tracker_uri' => 'https://github.com/rubocop-hq/rubocop-ast/issues' } - s.add_runtime_dependency('parser', '>= 2.7.1.5') + s.add_runtime_dependency('parser', '>= 3.0.1.1') s.add_development_dependency('bundler', '>= 1.15.0', '< 3.0') diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index e2a06b840..e9ae3db95 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -43,6 +43,10 @@ let(:ruby_version) { 3.0 } end +RSpec.shared_context 'ruby 3.1', :ruby31 do + let(:ruby_version) { 3.1 } +end + # ... module DefaultRubyVersion extend RSpec::SharedContext