rubocop-ast 1.1.1 → 1.2.0

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: ec19a654b5c38c2a70e811bd7c16a86473bd9fec2444774e9d8ef3cfa9d9de58
4
- data.tar.gz: 6a0ef9e9d121c5ba9991bb7cd534f8e180d84718ef093fc0be8099175bf027b4
3
+ metadata.gz: d42f2a7ab5fe1a168c8307ffad746e21eaa3811cdb5f9236ce423f2fb829b9ae
4
+ data.tar.gz: 74ca8b1fbbbb9f0a89ae61136235f9066579da11b4a056c0161a7a7a34092e19
5
5
  SHA512:
6
- metadata.gz: a720f20464156e92dddd9979ae2dff71a7a5deca84b2e8c717b9165fa9e831b4c15c5f7cba3c33cd8986a2618822ee0e82386e58d1586b1ebefbb5a74f9972b6
7
- data.tar.gz: bf26e4aa780bf56d029ca9272825a4a91d8c76f87d88e7c43de8167e06d8e2687d2d450e28f989b77c3d61169a0d91866bfe1504f2069aee3d0d2e16e2ce4444
6
+ metadata.gz: ffeca2200e1825749aa09f72e90b98b643617b55f4300ad9de8f34bedb59534278ebd4490d50d6e6866b055a5b5d9e28707e69c221c8da16e6c6691b83e7b162
7
+ data.tar.gz: 4e7b93a612f88394024fd26d025cbca1cf3b1926ea27650a115efd89b9f8bda2aab52d55968d427d1e63a295d588407046841d00ef5823e80443bb4d73b3acd2
@@ -5,6 +5,7 @@ require 'forwardable'
5
5
  require 'set'
6
6
 
7
7
  require_relative 'ast/ext/range'
8
+ require_relative 'ast/ext/range_min_max'
8
9
  require_relative 'ast/ext/set'
9
10
  require_relative 'ast/node_pattern/method_definer'
10
11
  require_relative 'ast/node_pattern'
@@ -36,6 +37,7 @@ require_relative 'ast/node/mixin/predicate_operator_node'
36
37
  require_relative 'ast/node/mixin/basic_literal_node'
37
38
  require_relative 'ast/node/alias_node'
38
39
  require_relative 'ast/node/and_node'
40
+ require_relative 'ast/node/arg_node'
39
41
  require_relative 'ast/node/args_node'
40
42
  require_relative 'ast/node/array_node'
41
43
  require_relative 'ast/node/block_node'
@@ -61,6 +63,7 @@ require_relative 'ast/node/module_node'
61
63
  require_relative 'ast/node/next_node'
62
64
  require_relative 'ast/node/or_node'
63
65
  require_relative 'ast/node/pair_node'
66
+ require_relative 'ast/node/procarg0_node'
64
67
  require_relative 'ast/node/range_node'
65
68
  require_relative 'ast/node/regexp_node'
66
69
  require_relative 'ast/node/rescue_node'
@@ -20,6 +20,15 @@ module RuboCop
20
20
  NODE_MAP = {
21
21
  and: AndNode,
22
22
  alias: AliasNode,
23
+ arg: ArgNode,
24
+ blockarg: ArgNode,
25
+ forward_arg: ArgNode,
26
+ kwarg: ArgNode,
27
+ kwoptarg: ArgNode,
28
+ kwrestarg: ArgNode,
29
+ optarg: ArgNode,
30
+ restarg: ArgNode,
31
+ shadowarg: ArgNode,
23
32
  args: ArgsNode,
24
33
  array: ArrayNode,
25
34
  block: BlockNode,
@@ -49,6 +58,7 @@ module RuboCop
49
58
  next: NextNode,
50
59
  or: OrNode,
51
60
  pair: PairNode,
61
+ procarg0: Procarg0Node,
52
62
  regexp: RegexpNode,
53
63
  rescue: RescueNode,
54
64
  resbody: ResbodyNode,
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RuboCop
4
+ module AST
5
+ module Ext
6
+ # Refinement to circumvent broken `Range#minmax` for infinity ranges in 2.6-
7
+ module RangeMinMax
8
+ if ::Range.instance_method(:minmax).owner != ::Range
9
+ refine ::Range do
10
+ def minmax
11
+ [min, max]
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -48,7 +48,7 @@ module RuboCop
48
48
 
49
49
  # @api private
50
50
  EQUALS_ASSIGNMENTS = %i[lvasgn ivasgn cvasgn gvasgn
51
- casgn masgn rasgn mrasgn].to_set.freeze
51
+ casgn masgn].to_set.freeze
52
52
  # @api private
53
53
  SHORTHAND_ASSIGNMENTS = %i[op_asgn or_asgn and_asgn].to_set.freeze
54
54
  # @api private
@@ -77,7 +77,8 @@ module RuboCop
77
77
  # @api private
78
78
  SPECIAL_KEYWORDS = %w[__FILE__ __LINE__ __ENCODING__].to_set.freeze
79
79
  # @api private
80
- ARGUMENT_TYPES = %i[arg optarg restarg kwarg kwoptarg kwrestarg blockarg].to_set.freeze
80
+ ARGUMENT_TYPES = %i[arg optarg restarg kwarg kwoptarg kwrestarg
81
+ blockarg forward_arg shadowarg].to_set.freeze
81
82
 
82
83
  LITERAL_RECURSIVE_METHODS = (COMPARISON_OPERATORS + %i[* ! <=>]).freeze
83
84
  LITERAL_RECURSIVE_TYPES = (OPERATOR_KEYWORDS + COMPOSITE_LITERALS + %i[begin pair]).freeze
@@ -222,7 +223,7 @@ module RuboCop
222
223
  # @return [self] if a block is given
223
224
  # @return [Enumerator] if no block is given
224
225
  def each_ancestor(*types, &block)
225
- return to_enum(__method__, *types) unless block_given?
226
+ return to_enum(__method__, *types) unless block
226
227
 
227
228
  visit_ancestors(types, &block)
228
229
 
@@ -237,7 +238,7 @@ module RuboCop
237
238
  each_ancestor.to_a
238
239
  end
239
240
 
240
- # Note: Some rare nodes may have no source, like `s(:args)` in `foo {}`
241
+ # NOTE: Some rare nodes may have no source, like `s(:args)` in `foo {}`
241
242
  # @return [String, nil]
242
243
  def source
243
244
  loc.expression&.source
@@ -410,7 +411,7 @@ module RuboCop
410
411
  POST_CONDITION_LOOP_TYPES.include?(type)
411
412
  end
412
413
 
413
- # Note: `loop { }` is a normal method call and thus not a loop keyword.
414
+ # NOTE: `loop { }` is a normal method call and thus not a loop keyword.
414
415
  def loop_keyword?
415
416
  LOOP_TYPES.include?(type)
416
417
  end
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RuboCop
4
+ module AST
5
+ # A node extension for `arg`, `optarg`, `restarg`, `kwarg`, `kwoptarg`,
6
+ # `kwrestarg`, `blockarg`, `shadowarg` and `forward_arg` nodes.
7
+ # This will be used in place of a plain node when the builder constructs
8
+ # the AST, making its methods available to all `arg` nodes within RuboCop.
9
+ class ArgNode < Node
10
+ # Returns the name of an argument.
11
+ #
12
+ # @return [Symbol, nil] the name of the argument
13
+ def name
14
+ node_parts[0]
15
+ end
16
+
17
+ # Returns the default value of the argument, if any.
18
+ #
19
+ # @return [Node, nil] the default value of the argument
20
+ def default_value
21
+ return unless default?
22
+
23
+ node_parts[1]
24
+ end
25
+
26
+ # Checks whether the argument has a default value
27
+ #
28
+ # @return [Boolean] whether the argument has a default value
29
+ def default?
30
+ optarg_type? || kwoptarg_type?
31
+ end
32
+ end
33
+ end
34
+ end
@@ -24,6 +24,16 @@ module RuboCop
24
24
  def empty_and_without_delimiters?
25
25
  loc.expression.nil?
26
26
  end
27
+
28
+ # Yield each argument from the collection.
29
+ # Arguments can be inside `mlhs` nodes in the case of destructuring, so this
30
+ # flattens the collection to just `arg`, `optarg`, `restarg`, `kwarg`,
31
+ # `kwoptarg`, `kwrestarg`, `blockarg`, `forward_arg` and `shadowarg`.
32
+ #
33
+ # @return [Array<Node>] array of argument nodes.
34
+ def argument_list
35
+ each_descendant(*ARGUMENT_TYPES).to_a.freeze
36
+ end
27
37
  end
28
38
  end
29
39
  end
@@ -19,7 +19,7 @@ module RuboCop
19
19
 
20
20
  # @deprecated Use `values.each` (a.k.a. `children.each`)
21
21
  def each_value(&block)
22
- return to_enum(__method__) unless block_given?
22
+ return to_enum(__method__) unless block
23
23
 
24
24
  values.each(&block)
25
25
 
@@ -22,6 +22,9 @@ module RuboCop
22
22
  end
23
23
 
24
24
  # The arguments of this block.
25
+ # Note that if the block has destructured arguments, `arguments` will
26
+ # return a `mlhs` node, whereas `argument_list` will return only
27
+ # actual argument nodes.
25
28
  #
26
29
  # @return [Array<Node>]
27
30
  def arguments
@@ -32,6 +35,18 @@ module RuboCop
32
35
  end
33
36
  end
34
37
 
38
+ # Returns a collection of all descendants of this node that are
39
+ # argument type nodes. See `ArgsNode#argument_list` for details.
40
+ #
41
+ # @return [Array<Node>]
42
+ def argument_list
43
+ if numblock_type?
44
+ numbered_arguments
45
+ else
46
+ arguments.argument_list
47
+ end
48
+ end
49
+
35
50
  # The body of this block.
36
51
  #
37
52
  # @return [Node, nil] the body of the `block` node or `nil`
@@ -117,6 +132,18 @@ module RuboCop
117
132
  def void_context?
118
133
  VOID_CONTEXT_METHODS.include?(method_name)
119
134
  end
135
+
136
+ private
137
+
138
+ # Numbered arguments of this `numblock`.
139
+ def numbered_arguments
140
+ return [].freeze unless numblock_type?
141
+
142
+ max_param = children[1]
143
+ 1.upto(max_param).map do |i|
144
+ ArgNode.new(:arg, [:"_#{i}"])
145
+ end.freeze
146
+ end
120
147
  end
121
148
  end
122
149
  end
@@ -17,7 +17,7 @@ module RuboCop
17
17
 
18
18
  # @deprecated Use `in_pattern_branches.each`
19
19
  def each_in_pattern(&block)
20
- return in_pattern_branches.to_enum(__method__) unless block_given?
20
+ return in_pattern_branches.to_enum(__method__) unless block
21
21
 
22
22
  in_pattern_branches.each(&block)
23
23
 
@@ -17,7 +17,7 @@ module RuboCop
17
17
 
18
18
  # @deprecated Use `when_branches.each`
19
19
  def each_when(&block)
20
- return when_branches.to_enum(__method__) unless block_given?
20
+ return when_branches.to_enum(__method__) unless block
21
21
 
22
22
  when_branches.each(&block)
23
23
 
@@ -45,7 +45,7 @@ module RuboCop
45
45
  # s(:const, :Foo), then
46
46
  # s(:const, s(:const, :Foo), :Bar)
47
47
  def each_path(&block)
48
- return to_enum(__method__) unless block_given?
48
+ return to_enum(__method__) unless block
49
49
 
50
50
  descendants = []
51
51
  last = self
@@ -57,7 +57,7 @@ module RuboCop
57
57
  # @return [self] if a block is given
58
58
  # @return [Enumerator] if no block is given
59
59
  def each_key(&block)
60
- return pairs.map(&:key).to_enum unless block_given?
60
+ return pairs.map(&:key).to_enum unless block
61
61
 
62
62
  pairs.map(&:key).each(&block)
63
63
 
@@ -81,7 +81,7 @@ module RuboCop
81
81
  # @return [self] if a block is given
82
82
  # @return [Enumerator] if no block is given
83
83
  def each_value(&block)
84
- return pairs.map(&:value).to_enum unless block_given?
84
+ return pairs.map(&:value).to_enum unless block
85
85
 
86
86
  pairs.map(&:value).each(&block)
87
87
 
@@ -162,7 +162,7 @@ module RuboCop
162
162
 
163
163
  # @deprecated Use `branches.each`
164
164
  def each_branch(&block)
165
- return branches.to_enum(__method__) unless block_given?
165
+ return branches.to_enum(__method__) unless block
166
166
 
167
167
  branches.each(&block)
168
168
  end
@@ -59,7 +59,7 @@ module RuboCop
59
59
  # @return [self] if a block is given
60
60
  # @return [Enumerator] if no block is given
61
61
  def each_descendant(*types, &block)
62
- return to_enum(__method__, *types) unless block_given?
62
+ return to_enum(__method__, *types) unless block
63
63
 
64
64
  visit_descendants(types, &block)
65
65
 
@@ -94,7 +94,7 @@ module RuboCop
94
94
  # @return [self] if a block is given
95
95
  # @return [Enumerator] if no block is given
96
96
  def each_node(*types, &block)
97
- return to_enum(__method__, *types) unless block_given?
97
+ return to_enum(__method__, *types) unless block
98
98
 
99
99
  yield self if types.empty? || types.include?(type)
100
100
 
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RuboCop
4
+ module AST
5
+ # A node extension for `procarg0` nodes.
6
+ # This will be used in place of a plain node when the builder constructs
7
+ # the AST, making its methods available to all `arg` nodes within RuboCop.
8
+ class Procarg0Node < ArgNode
9
+ # Returns the name of an argument.
10
+ #
11
+ # @return [Symbol, nil] the name of the argument
12
+ def name
13
+ node_parts[0].name
14
+ end
15
+ end
16
+ end
17
+ end
@@ -25,7 +25,7 @@ module RuboCop
25
25
  children.last
26
26
  end
27
27
 
28
- # Note: The 'o' option is ignored.
28
+ # NOTE: The 'o' option is ignored.
29
29
  #
30
30
  # @return [Integer] the Regexp option bits as returned by Regexp#options
31
31
  def options
@@ -15,7 +15,7 @@ module RuboCop
15
15
 
16
16
  # @deprecated Use `conditions.each`
17
17
  def each_condition(&block)
18
- return conditions.to_enum(__method__) unless block_given?
18
+ return conditions.to_enum(__method__) unless block
19
19
 
20
20
  conditions.each(&block)
21
21
 
@@ -103,7 +103,7 @@ module RuboCop
103
103
  # Yields its argument and any descendants, depth-first.
104
104
  #
105
105
  def self.descend(element, &block)
106
- return to_enum(__method__, element) unless block_given?
106
+ return to_enum(__method__, element) unless block
107
107
 
108
108
  yield element
109
109
 
@@ -33,7 +33,7 @@ module RuboCop
33
33
  name
34
34
  end
35
35
 
36
- # Enumerates `enum` while keeping track of state accross
36
+ # Enumerates `enum` while keeping track of state across
37
37
  # union branches (captures and unification).
38
38
  def each_union(enum, &block)
39
39
  enforce_same_captures(binding.union_bind(enum), &block)
@@ -40,7 +40,7 @@ module RuboCop
40
40
  # sequence head
41
41
  # :variadic_mode : child index held by @cur_index_var
42
42
  # >= 0 : when the current child index is known
43
- # (from the begining)
43
+ # (from the beginning)
44
44
  # < 0 : when the index is known from the end,
45
45
  # where -1 is *past the end*,
46
46
  # -2 is the last child, etc...
@@ -328,7 +328,7 @@ module RuboCop
328
328
  "#{@seq_var}.children.size - #{-(cur + DELTA)}"
329
329
  end
330
330
 
331
- # Note: assumes `@cur_index != :seq_head`. Node types using `within_loop` must
331
+ # NOTE: assumes `@cur_index != :seq_head`. Node types using `within_loop` must
332
332
  # have `def in_sequence_head; :raise; end`
333
333
  def within_loop
334
334
  sync do |sync_code|
@@ -52,7 +52,7 @@ module RuboCop
52
52
  def emit_regexp
53
53
  body = ss[1]
54
54
  options = ss[2]
55
- flag = options.each_char.map { |c| REGEXP_OPTIONS[c] }.sum
55
+ flag = options.each_char.sum { |c| REGEXP_OPTIONS[c] }
56
56
 
57
57
  emit(:tREGEXP) { Regexp.new(body, flag) }
58
58
  end
@@ -56,6 +56,8 @@ module RuboCop
56
56
  end
57
57
  src = yield method_name
58
58
  base.class_eval(src, location.path, location.lineno)
59
+
60
+ method_name
59
61
  end
60
62
 
61
63
  def emit_node_search(method_name)
@@ -7,12 +7,13 @@ module RuboCop
7
7
  class Node < ::Parser::AST::Node
8
8
  extend Forwardable
9
9
  include ::RuboCop::AST::Descendence
10
+ using Ext::RangeMinMax
10
11
 
11
12
  MATCHES_WITHIN_SET = %i[symbol number string].to_set.freeze
12
13
  private_constant :MATCHES_WITHIN_SET
13
14
 
14
15
  ###
15
- # To be overriden by subclasses
16
+ # To be overridden by subclasses
16
17
  ###
17
18
 
18
19
  def rest?
@@ -59,7 +60,7 @@ module RuboCop
59
60
  end
60
61
 
61
62
  # @return [Boolean] returns true for nodes having a Ruby literal equivalent
62
- # that matches withing a Set (e.g. `42`, `:sym` but not `/regexp/`)
63
+ # that matches within a Set (e.g. `42`, `:sym` but not `/regexp/`)
63
64
  def matches_within_set?
64
65
  MATCHES_WITHIN_SET.include?(type)
65
66
  end
@@ -197,27 +198,13 @@ module RuboCop
197
198
  end
198
199
  end
199
200
 
200
- # Circumvent broken `Range#minmax` for infinity ranges in 2.6-
201
- module MapMinMax
202
- if RUBY_VERSION >= '2.7'
203
- def map_min_max(enum)
204
- enum.map(&:minmax)
205
- end
206
- else
207
- def map_min_max(enum)
208
- enum.map { |r| [r.min, r.max] } # rubocop:disable Style/MinMax
209
- end
210
- end
211
- end
212
-
213
201
  # A list (potentially empty) of nodes; part of a Union
214
202
  class Subsequence < Node
215
203
  include ForbidInSeqHead
216
- include MapMinMax
217
204
 
218
205
  def arity
219
- min, max = map_min_max(children.map(&:arity_range)).transpose.map(&:sum)
220
- min == max ? min || 0 : min..max # Note: || 0 for empty case, where min == max == nil.
206
+ min, max = children.map(&:arity_range).map(&:minmax).transpose.map(&:sum)
207
+ min == max ? min || 0 : min..max # NOTE: || 0 for empty case, where min == max == nil.
221
208
  end
222
209
 
223
210
  def in_sequence_head
@@ -231,10 +218,8 @@ module RuboCop
231
218
 
232
219
  # Node class for `{ ... }`
233
220
  class Union < Node
234
- include MapMinMax
235
-
236
221
  def arity
237
- minima, maxima = map_min_max(children.map(&:arity_range)).transpose
222
+ minima, maxima = children.map(&:arity_range).map(&:minmax).transpose
238
223
  min = minima.min
239
224
  max = maxima.max
240
225
  min == max ? min : min..max
@@ -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.4.16
4
+ # This file is automatically generated by Racc 1.5.1
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, 40, 5, 43, 6, 7, 8,
18
- 28, 23, 56, 50, 66, 61, 24, 51, 51, 40,
17
+ 60, 22, 20, 4, 24, 5, 40, 6, 7, 8,
18
+ 28, 23, 56, 50, 40, 61, 43, 66, 51, 51,
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, 9, 23,
25
+ 20, 4, nil, 5, nil, 6, 7, 8, 28, 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, 28, 23,
36
+ 20, 4, nil, 5, nil, 6, 7, 8, 9, 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, 47, 48, 49, -1, -1, -1, -2, -2,
51
- -2 ]
50
+ 9, 23, -1, -1, -1, -2, -2, -2, 47, 48,
51
+ 49 ]
52
52
 
53
53
  racc_action_check = [
54
54
  42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
55
- 54, 42, 42, 42, 11, 42, 24, 42, 42, 42,
56
- 42, 42, 42, 30, 62, 54, 1, 63, 30, 10,
55
+ 54, 42, 42, 42, 1, 42, 10, 42, 42, 42,
56
+ 42, 42, 42, 30, 11, 54, 24, 62, 30, 63,
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, 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,
59
+ 59, 59, 59, nil, nil, 59, 0, 0, 0, 0,
71
60
  0, 0, 0, 0, 0, 0, nil, 0, 0, 0,
72
61
  nil, 0, nil, 0, 0, 0, 0, 0, 4, 4,
73
62
  4, 4, 4, 4, 4, 4, 4, 4, nil, 4,
74
63
  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, 29, 29, 29, 25, 25, 25, 26, 26,
89
- 26 ]
88
+ 61, 61, 25, 25, 25, 26, 26, 26, 29, 29,
89
+ 29 ]
90
90
 
91
91
  racc_action_pointer = [
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,
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,
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, -2, -3, nil, nil, nil ]
98
+ nil, 318, 1, -1, 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, 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,
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,
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, 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,
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,
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, 0, 7, 10, -4, 2, nil, -8, -1,
129
- -13, -42, -41, -57, -30 ]
128
+ nil, 0, -1, 0, -2, -4, 2, nil, -13, 7,
129
+ -15, -44, -43, -42, -22 ]
130
130
 
131
131
  racc_goto_default = [
132
132
  nil, 29, 2, 3, nil, nil, nil, 13, nil, nil,
@@ -3,7 +3,7 @@
3
3
  module RuboCop
4
4
  module AST
5
5
  module Version
6
- STRING = '1.1.1'
6
+ STRING = '1.2.0'
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.1.1
4
+ version: 1.2.0
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: 2020-11-04 00:00:00.000000000 Z
13
+ date: 2020-11-24 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: parser
@@ -60,10 +60,12 @@ files:
60
60
  - lib/rubocop/ast.rb
61
61
  - lib/rubocop/ast/builder.rb
62
62
  - lib/rubocop/ast/ext/range.rb
63
+ - lib/rubocop/ast/ext/range_min_max.rb
63
64
  - lib/rubocop/ast/ext/set.rb
64
65
  - lib/rubocop/ast/node.rb
65
66
  - lib/rubocop/ast/node/alias_node.rb
66
67
  - lib/rubocop/ast/node/and_node.rb
68
+ - lib/rubocop/ast/node/arg_node.rb
67
69
  - lib/rubocop/ast/node/args_node.rb
68
70
  - lib/rubocop/ast/node/array_node.rb
69
71
  - lib/rubocop/ast/node/block_node.rb
@@ -101,6 +103,7 @@ files:
101
103
  - lib/rubocop/ast/node/next_node.rb
102
104
  - lib/rubocop/ast/node/or_node.rb
103
105
  - lib/rubocop/ast/node/pair_node.rb
106
+ - lib/rubocop/ast/node/procarg0_node.rb
104
107
  - lib/rubocop/ast/node/range_node.rb
105
108
  - lib/rubocop/ast/node/regexp_node.rb
106
109
  - lib/rubocop/ast/node/resbody_node.rb
@@ -158,7 +161,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
158
161
  requirements:
159
162
  - - ">="
160
163
  - !ruby/object:Gem::Version
161
- version: 2.3.0
164
+ version: 2.4.0
162
165
  required_rubygems_version: !ruby/object:Gem::Requirement
163
166
  requirements:
164
167
  - - ">="