rubocop-ast 1.30.0 → 1.31.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 84c917625cddd9b79c0979e269fdd324f8119b9d2b3c6081fae0ef449669bea5
4
- data.tar.gz: 8d053cac9c670216326df54b5b7b6a8961bf89614defa16e93ad1c557a8b25a5
3
+ metadata.gz: d7722c3a2f9ea3de0e37210b233d4c13d221e00a8663b643896cffd31aa91c4d
4
+ data.tar.gz: 3294ca8a17a4ec8ecc188552688cf89aa7bb02fc12ae01b7b8a1569c09b6df4c
5
5
  SHA512:
6
- metadata.gz: c95bd42a576592153d70f61367aafacd9677021515534a487706b736cc02cfcf717fc6db39e3df7212088301383cb7d60af9b929b4ca65b7baa5a66f5eca059e
7
- data.tar.gz: f0d99d3695e651ec10709dd729696a2b137c3b11603598164b433f61583218b16807c44ea1637ebe1922b496b8472795e4d54a4dc1312908f049e6f43b242ff8
6
+ metadata.gz: 17f63894fe38bc9f9d5968195cc83a6bc2c8eae330f058f1dbbab36f518e4367154d76f6d5b954085d4ca3876b8ea3aaa2a9ad2400f41396b4249c4f213267e5
7
+ data.tar.gz: 635dc1668c06c77d652dce6b0925059f5ee1bb7c8a35308138d9878b41c3d6d3d7ded8e826e892a03de03efeb7f7cb949ddf46dd83c1578f6061d3dca0c79013
@@ -326,13 +326,13 @@ module RuboCop
326
326
  # what class or module is this method/constant/etc definition in?
327
327
  # returns nil if answer cannot be determined
328
328
  ancestors = each_ancestor(:class, :module, :sclass, :casgn, :block)
329
- result = ancestors.map do |ancestor|
329
+ result = ancestors.filter_map do |ancestor|
330
330
  parent_module_name_part(ancestor) do |full_name|
331
331
  return nil unless full_name
332
332
 
333
333
  full_name
334
334
  end
335
- end.compact.reverse.join('::')
335
+ end.reverse.join('::')
336
336
  result.empty? ? 'Object' : result
337
337
  end
338
338
 
@@ -2,7 +2,7 @@
2
2
  # encoding: UTF-8
3
3
  #--
4
4
  # This file is automatically generated. Do not modify it.
5
- # Generated by: oedipus_lex version 2.6.1.
5
+ # Generated by: oedipus_lex version 2.6.0.
6
6
  # Source: lib/rubocop/ast/node_pattern/lexer.rex
7
7
  #++
8
8
 
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
  #
3
3
  # DO NOT MODIFY!!!!
4
- # This file is automatically generated by Racc 1.7.1
4
+ # This file is automatically generated by Racc 1.5.0
5
5
  # from Racc grammar file "".
6
6
  #
7
7
 
@@ -14,15 +14,15 @@ module RuboCop
14
14
 
15
15
  racc_action_table = [
16
16
  14, 15, 16, 21, 18, 17, 19, 10, 11, 12,
17
- 60, 22, 20, 4, 24, 5, 40, 6, 7, 8,
18
- 28, 23, 56, 50, 40, 61, 43, 66, 51, 51,
17
+ 60, 22, 20, 4, 40, 5, 43, 6, 7, 8,
18
+ 28, 23, 56, 50, 66, 61, 24, 51, 51, 40,
19
19
  58, 14, 15, 16, 21, 18, 17, 19, 10, 11,
20
20
  12, nil, 22, 20, 4, nil, 5, nil, 6, 7,
21
21
  8, 28, 23, nil, nil, -34, 14, 15, 16, 21,
22
22
  18, 17, 19, 10, 11, 12, nil, 22, 20, 4,
23
23
  nil, 5, nil, 6, 7, 8, 9, 23, 14, 15,
24
24
  16, 21, 18, 17, 19, 10, 11, 12, nil, 22,
25
- 20, 4, nil, 5, nil, 6, 7, 8, 28, 23,
25
+ 20, 4, nil, 5, nil, 6, 7, 8, 9, 23,
26
26
  14, 15, 16, 21, 18, 17, 19, 10, 11, 12,
27
27
  nil, 22, 20, 4, nil, 5, nil, 6, 7, 8,
28
28
  9, 23, 14, 15, 16, 21, 18, 17, 19, 10,
@@ -33,7 +33,7 @@ racc_action_table = [
33
33
  18, 17, 19, 10, 11, 12, nil, 22, 20, 4,
34
34
  nil, 5, nil, 6, 7, 8, 9, 23, 14, 15,
35
35
  16, 21, 18, 17, 19, 10, 11, 12, nil, 22,
36
- 20, 4, nil, 5, nil, 6, 7, 8, 9, 23,
36
+ 20, 4, nil, 5, nil, 6, 7, 8, 28, 23,
37
37
  14, 15, 16, 21, 18, 17, 19, 10, 11, 12,
38
38
  nil, 22, 20, 4, 44, 5, nil, 6, 7, 8,
39
39
  28, 23, 14, 15, 16, 21, 18, 17, 19, 10,
@@ -47,31 +47,31 @@ racc_action_table = [
47
47
  20, 4, nil, 5, nil, 6, 7, 8, 9, 23,
48
48
  14, 15, 16, 21, 18, 17, 19, 10, 11, 12,
49
49
  nil, 22, 20, 4, nil, 5, nil, 6, 7, 8,
50
- 9, 23, -1, -1, -1, -2, -2, -2, 47, 48,
51
- 49 ]
50
+ 9, 23, 47, 48, 49, -1, -1, -1, -2, -2,
51
+ -2 ]
52
52
 
53
53
  racc_action_check = [
54
54
  42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
55
- 54, 42, 42, 42, 1, 42, 10, 42, 42, 42,
56
- 42, 42, 42, 30, 11, 54, 24, 62, 30, 63,
55
+ 54, 42, 42, 42, 11, 42, 24, 42, 42, 42,
56
+ 42, 42, 42, 30, 62, 54, 1, 63, 30, 10,
57
57
  42, 59, 59, 59, 59, 59, 59, 59, 59, 59,
58
58
  59, nil, 59, 59, 59, nil, 59, nil, 59, 59,
59
- 59, 59, 59, nil, nil, 59, 0, 0, 0, 0,
59
+ 59, 59, 59, nil, nil, 59, 5, 5, 5, 5,
60
+ 5, 5, 5, 5, 5, 5, nil, 5, 5, 5,
61
+ nil, 5, nil, 5, 5, 5, 5, 5, 6, 6,
62
+ 6, 6, 6, 6, 6, 6, 6, 6, nil, 6,
63
+ 6, 6, nil, 6, nil, 6, 6, 6, 6, 6,
64
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
65
+ nil, 7, 7, 7, nil, 7, nil, 7, 7, 7,
66
+ 7, 7, 8, 8, 8, 8, 8, 8, 8, 8,
67
+ 8, 8, nil, 8, 8, 8, nil, 8, nil, 8,
68
+ 8, 8, 8, 8, 9, 9, 9, 9, 9, 9,
69
+ 9, 9, 9, 9, nil, 9, 9, 9, nil, 9,
70
+ nil, 9, 9, 9, 9, 9, 0, 0, 0, 0,
60
71
  0, 0, 0, 0, 0, 0, nil, 0, 0, 0,
61
72
  nil, 0, nil, 0, 0, 0, 0, 0, 4, 4,
62
73
  4, 4, 4, 4, 4, 4, 4, 4, nil, 4,
63
74
  4, 4, nil, 4, nil, 4, 4, 4, 4, 4,
64
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
65
- nil, 5, 5, 5, nil, 5, nil, 5, 5, 5,
66
- 5, 5, 6, 6, 6, 6, 6, 6, 6, 6,
67
- 6, 6, nil, 6, 6, 6, nil, 6, nil, 6,
68
- 6, 6, 6, 6, 7, 7, 7, 7, 7, 7,
69
- 7, 7, 7, 7, nil, 7, 7, 7, nil, 7,
70
- nil, 7, 7, 7, 7, 7, 8, 8, 8, 8,
71
- 8, 8, 8, 8, 8, 8, nil, 8, 8, 8,
72
- nil, 8, nil, 8, 8, 8, 8, 8, 9, 9,
73
- 9, 9, 9, 9, 9, 9, 9, 9, nil, 9,
74
- 9, 9, nil, 9, nil, 9, 9, 9, 9, 9,
75
75
  27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
76
76
  nil, 27, 27, 27, 27, 27, nil, 27, 27, 27,
77
77
  27, 27, 28, 28, 28, 28, 28, 28, 28, 28,
@@ -85,17 +85,17 @@ racc_action_check = [
85
85
  50, 50, nil, 50, nil, 50, 50, 50, 50, 50,
86
86
  61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
87
87
  nil, 61, 61, 61, nil, 61, nil, 61, 61, 61,
88
- 61, 61, 25, 25, 25, 26, 26, 26, 29, 29,
89
- 29 ]
88
+ 61, 61, 29, 29, 29, 25, 25, 25, 26, 26,
89
+ 26 ]
90
90
 
91
91
  racc_action_pointer = [
92
- 54, 14, nil, nil, 76, 98, 120, 142, 164, 186,
93
- 4, 12, nil, nil, nil, nil, nil, nil, nil, nil,
94
- nil, nil, nil, nil, 26, 315, 318, 208, 230, 321,
92
+ 164, 26, nil, nil, 186, 54, 76, 98, 120, 142,
93
+ 17, 2, nil, nil, nil, nil, nil, nil, nil, nil,
94
+ nil, nil, nil, nil, 16, 318, 321, 208, 230, 315,
95
95
  -2, nil, nil, 252, nil, nil, nil, nil, nil, nil,
96
96
  274, nil, -2, nil, nil, nil, nil, nil, nil, nil,
97
97
  296, nil, nil, nil, -6, nil, nil, nil, nil, 29,
98
- nil, 318, 1, -1, nil, nil, nil ]
98
+ nil, 318, -2, -3, nil, nil, nil ]
99
99
 
100
100
  racc_action_default = [
101
101
  -47, -47, -1, -2, -31, -47, -47, -47, -47, -47,
@@ -107,26 +107,26 @@ racc_action_default = [
107
107
  -37, -47, -47, -47, -35, -39, -26 ]
108
108
 
109
109
  racc_goto_table = [
110
- 1, 33, 27, 25, 26, 34, 35, 36, 37, 38,
111
- 42, 32, 39, 41, 46, 63, 62, 64, 54, nil,
112
- nil, nil, nil, nil, nil, nil, 25, 26, 38, nil,
113
- nil, nil, nil, 53, 45, nil, nil, nil, nil, nil,
114
- 55, 25, 26, nil, nil, nil, 59, nil, nil, 57,
110
+ 1, 33, 64, 32, 25, 34, 35, 36, 37, 38,
111
+ 54, 26, 39, 41, 27, 42, 46, 63, 62, nil,
112
+ nil, nil, nil, nil, nil, nil, 45, 25, 38, nil,
113
+ nil, nil, nil, 53, 26, nil, nil, nil, nil, nil,
114
+ 55, 57, 25, nil, nil, nil, 59, nil, nil, 26,
115
115
  34, nil, nil, nil, nil, nil, nil, nil, nil, 53,
116
116
  nil, 65 ]
117
117
 
118
118
  racc_goto_check = [
119
- 1, 5, 4, 2, 3, 1, 1, 1, 1, 1,
120
- 8, 9, 6, 6, 10, 11, 12, 13, 14, nil,
121
- nil, nil, nil, nil, nil, nil, 2, 3, 1, nil,
122
- nil, nil, nil, 1, 9, nil, nil, nil, nil, nil,
123
- 1, 2, 3, nil, nil, nil, 5, nil, nil, 9,
119
+ 1, 5, 13, 9, 2, 1, 1, 1, 1, 1,
120
+ 14, 3, 6, 6, 4, 8, 10, 11, 12, nil,
121
+ nil, nil, nil, nil, nil, nil, 9, 2, 1, nil,
122
+ nil, nil, nil, 1, 3, nil, nil, nil, nil, nil,
123
+ 1, 9, 2, nil, nil, nil, 5, nil, nil, 3,
124
124
  1, nil, nil, nil, nil, nil, nil, nil, nil, 1,
125
125
  nil, 1 ]
126
126
 
127
127
  racc_goto_pointer = [
128
- nil, 0, -1, 0, -2, -4, 2, nil, -13, 7,
129
- -15, -44, -43, -42, -22 ]
128
+ nil, 0, 0, 7, 10, -4, 2, nil, -8, -1,
129
+ -13, -42, -41, -57, -30 ]
130
130
 
131
131
  racc_goto_default = [
132
132
  nil, 29, 2, 3, nil, nil, nil, 13, nil, nil,
@@ -239,7 +239,6 @@ Racc_arg = [
239
239
  racc_shift_n,
240
240
  racc_reduce_n,
241
241
  racc_use_result_var ]
242
- Ractor.make_shareable(Racc_arg) if defined?(Ractor)
243
242
 
244
243
  Racc_token_to_s_table = [
245
244
  "$end",
@@ -290,7 +289,6 @@ Racc_token_to_s_table = [
290
289
  "opt_rest",
291
290
  "rest",
292
291
  "arg_list" ]
293
- Ractor.make_shareable(Racc_token_to_s_table) if defined?(Ractor)
294
292
 
295
293
  Racc_debug_parser = false
296
294
 
@@ -15,15 +15,23 @@ module RuboCop
15
15
  INVALID_LEVELS = %i[error fatal].freeze
16
16
  private_constant :INVALID_LEVELS
17
17
 
18
+ PARSER_ENGINES = %i[parser_whitequark parser_prism].freeze
19
+ private_constant :PARSER_ENGINES
20
+
18
21
  attr_reader :path, :buffer, :ast, :comments, :tokens, :diagnostics,
19
- :parser_error, :raw_source, :ruby_version
22
+ :parser_error, :raw_source, :ruby_version, :parser_engine
20
23
 
21
- def self.from_file(path, ruby_version)
24
+ def self.from_file(path, ruby_version, parser_engine: :parser_whitequark)
22
25
  file = File.read(path, mode: 'rb')
23
- new(file, ruby_version, path)
26
+ new(file, ruby_version, path, parser_engine: parser_engine)
24
27
  end
25
28
 
26
- def initialize(source, ruby_version, path = nil)
29
+ def initialize(source, ruby_version, path = nil, parser_engine: :parser_whitequark)
30
+ unless PARSER_ENGINES.include?(parser_engine)
31
+ raise ArgumentError, 'The keyword argument `parser_engine` accepts ' \
32
+ "`parser` or `parser_prism`, but `#{parser_engine}` was passed."
33
+ end
34
+
27
35
  # Defaults source encoding to UTF-8, regardless of the encoding it has
28
36
  # been read with, which could be non-utf8 depending on the default
29
37
  # external encoding.
@@ -33,9 +41,10 @@ module RuboCop
33
41
  @path = path
34
42
  @diagnostics = []
35
43
  @ruby_version = ruby_version
44
+ @parser_engine = parser_engine
36
45
  @parser_error = nil
37
46
 
38
- parse(source, ruby_version)
47
+ parse(source, ruby_version, parser_engine)
39
48
  end
40
49
 
41
50
  def ast_with_comments
@@ -193,7 +202,7 @@ module RuboCop
193
202
  end
194
203
  end
195
204
 
196
- def parse(source, ruby_version)
205
+ def parse(source, ruby_version, parser_engine)
197
206
  buffer_name = @path || STRING_SOURCE_NAME
198
207
  @buffer = Parser::Source::Buffer.new(buffer_name, 1)
199
208
 
@@ -207,7 +216,7 @@ module RuboCop
207
216
  return
208
217
  end
209
218
 
210
- @ast, @comments, @tokens = tokenize(create_parser(ruby_version))
219
+ @ast, @comments, @tokens = tokenize(create_parser(ruby_version, parser_engine))
211
220
  end
212
221
 
213
222
  def tokenize(parser)
@@ -227,58 +236,82 @@ module RuboCop
227
236
  end
228
237
 
229
238
  # rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/MethodLength
230
- def parser_class(ruby_version)
231
- case ruby_version
232
- when 1.9
233
- require 'parser/ruby19'
234
- Parser::Ruby19
235
- when 2.0
236
- require 'parser/ruby20'
237
- Parser::Ruby20
238
- when 2.1
239
- require 'parser/ruby21'
240
- Parser::Ruby21
241
- when 2.2
242
- require 'parser/ruby22'
243
- Parser::Ruby22
244
- when 2.3
245
- require 'parser/ruby23'
246
- Parser::Ruby23
247
- when 2.4
248
- require 'parser/ruby24'
249
- Parser::Ruby24
250
- when 2.5
251
- require 'parser/ruby25'
252
- Parser::Ruby25
253
- when 2.6
254
- require 'parser/ruby26'
255
- Parser::Ruby26
256
- when 2.7
257
- require 'parser/ruby27'
258
- Parser::Ruby27
259
- when 2.8, 3.0
260
- require 'parser/ruby30'
261
- Parser::Ruby30
262
- when 3.1
263
- require 'parser/ruby31'
264
- Parser::Ruby31
265
- when 3.2
266
- require 'parser/ruby32'
267
- Parser::Ruby32
268
- when 3.3
269
- require 'parser/ruby33'
270
- Parser::Ruby33
271
- else
272
- raise ArgumentError,
273
- "RuboCop found unknown Ruby version: #{ruby_version.inspect}"
239
+ def parser_class(ruby_version, parser_engine)
240
+ case parser_engine
241
+ when :parser_whitequark
242
+ case ruby_version
243
+ when 1.9
244
+ require 'parser/ruby19'
245
+ Parser::Ruby19
246
+ when 2.0
247
+ require 'parser/ruby20'
248
+ Parser::Ruby20
249
+ when 2.1
250
+ require 'parser/ruby21'
251
+ Parser::Ruby21
252
+ when 2.2
253
+ require 'parser/ruby22'
254
+ Parser::Ruby22
255
+ when 2.3
256
+ require 'parser/ruby23'
257
+ Parser::Ruby23
258
+ when 2.4
259
+ require 'parser/ruby24'
260
+ Parser::Ruby24
261
+ when 2.5
262
+ require 'parser/ruby25'
263
+ Parser::Ruby25
264
+ when 2.6
265
+ require 'parser/ruby26'
266
+ Parser::Ruby26
267
+ when 2.7
268
+ require 'parser/ruby27'
269
+ Parser::Ruby27
270
+ when 2.8, 3.0
271
+ require 'parser/ruby30'
272
+ Parser::Ruby30
273
+ when 3.1
274
+ require 'parser/ruby31'
275
+ Parser::Ruby31
276
+ when 3.2
277
+ require 'parser/ruby32'
278
+ Parser::Ruby32
279
+ when 3.3
280
+ require 'parser/ruby33'
281
+ Parser::Ruby33
282
+ when 3.4
283
+ require 'parser/ruby34'
284
+ Parser::Ruby34
285
+ else
286
+ raise ArgumentError, "RuboCop found unknown Ruby version: #{ruby_version.inspect}"
287
+ end
288
+ when :parser_prism
289
+ begin
290
+ require 'prism'
291
+ rescue LoadError
292
+ warn "Error: Unable to load Prism. Add `gem 'prism'` to your Gemfile."
293
+ exit!
294
+ end
295
+
296
+ case ruby_version
297
+ when 3.3
298
+ require 'prism/translation/parser33'
299
+ Prism::Translation::Parser33
300
+ when 3.4
301
+ require 'prism/translation/parser34'
302
+ Prism::Translation::Parser34
303
+ else
304
+ raise ArgumentError, 'RuboCop supports target Ruby versions 3.3 and above with Prism. ' \
305
+ "Specified target Ruby version: #{ruby_version.inspect}"
306
+ end
274
307
  end
275
308
  end
276
309
  # rubocop:enable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/MethodLength
277
310
 
278
- def create_parser(ruby_version)
311
+ def create_parser(ruby_version, parser_engine)
279
312
  builder = RuboCop::AST::Builder.new
280
313
 
281
- parser_class(ruby_version).new(builder).tap do |parser|
314
+ parser_class(ruby_version, parser_engine).new(builder).tap do |parser|
282
315
  # On JRuby there's a risk that we hang in tokenize() if we
283
316
  # don't set the all errors as fatal flag. The problem is caused by a bug
284
317
  # in Racc that is discussed in issue #93 of the whitequark/parser
@@ -83,7 +83,7 @@ module RuboCop
83
83
  end
84
84
 
85
85
  def left_curly_brace?
86
- type == :tLCURLY
86
+ type == :tLCURLY || type == :tLAMBEG
87
87
  end
88
88
 
89
89
  def right_curly_brace?
@@ -45,7 +45,7 @@ module RuboCop
45
45
  end # end
46
46
  RUBY
47
47
  aliases.each do |m|
48
- alias_method "on_#{m}", "on_#{type}"
48
+ alias_method :"on_#{m}", :"on_#{type}"
49
49
  end
50
50
  end
51
51
 
@@ -3,7 +3,7 @@
3
3
  module RuboCop
4
4
  module AST
5
5
  module Version
6
- STRING = '1.30.0'
6
+ STRING = '1.31.1'
7
7
  end
8
8
  end
9
9
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubocop-ast
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.30.0
4
+ version: 1.31.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bozhidar Batsov
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2023-10-26 00:00:00.000000000 Z
13
+ date: 2024-03-01 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: parser
@@ -18,14 +18,14 @@ dependencies:
18
18
  requirements:
19
19
  - - ">="
20
20
  - !ruby/object:Gem::Version
21
- version: 3.2.1.0
21
+ version: 3.3.0.4
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  requirements:
26
26
  - - ">="
27
27
  - !ruby/object:Gem::Version
28
- version: 3.2.1.0
28
+ version: 3.3.0.4
29
29
  description: " RuboCop's Node and NodePattern classes.\n"
30
30
  email: rubocop@googlegroups.com
31
31
  executables: []
@@ -149,14 +149,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
149
149
  requirements:
150
150
  - - ">="
151
151
  - !ruby/object:Gem::Version
152
- version: 2.6.0
152
+ version: 2.7.0
153
153
  required_rubygems_version: !ruby/object:Gem::Requirement
154
154
  requirements:
155
155
  - - ">="
156
156
  - !ruby/object:Gem::Version
157
157
  version: '0'
158
158
  requirements: []
159
- rubygems_version: 3.4.10
159
+ rubygems_version: 3.1.6
160
160
  signing_key:
161
161
  specification_version: 4
162
162
  summary: RuboCop tools to deal with Ruby code AST.