rubocop 1.54.0 → 1.54.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: b952fc5852376637345f505d8753d44608bc082ea9bb64f9d4e61b5cc9cd6005
4
- data.tar.gz: e7a695e76983fe1ff49d7951be70eabcb149de9bd20179f564cb61adc04d8b33
3
+ metadata.gz: c223b2bb07266543894d986f949feb9b6b0470bb43e511e82c8cdf12e9d48872
4
+ data.tar.gz: a785917f1251d60ebe36a2c41680e62a4b789ff40977b1b81a07e09c562c233c
5
5
  SHA512:
6
- metadata.gz: 1b2f4d9249a3e283b1ed762a73c8d68b31db632de1a2e0005b99769314598fbe9394ea86a56abfff7ead03acd17d4ab343a6540ee712196bc36326959b8f9138
7
- data.tar.gz: 1d8d0d7ac82f4440385d2b502070f3bfb872d651af0707f78ff2df6f90cd6ee51bd03ccf84c71f4f582d812a661be3af2a637895b1b0137dc37ec7606fcfcb45
6
+ metadata.gz: 56c5e545a2440c9994ea57547601d322f940f5dc3215d2e76fc6ef1b59b2bf0a9b73f49c370e9f6eebe1e449bcc71f0e018d8a3d6f70a40a6b585b9034d28aa0
7
+ data.tar.gz: 4c38b1ab3e73fc9cd1579f72331240f3eeebaad1f10ce126fe85f7f57bdba283476310104244b883d90d86c6b78fe1ad2b9ff17b6ff5eb8cc64cf0c3e341dc55
@@ -51,7 +51,9 @@ module RuboCop
51
51
 
52
52
  def extract_receiver(node)
53
53
  receiver = node.receiver
54
- receiver = receiver.receiver if receiver.method?(:loc) || receiver.method?(:source_range)
54
+ if receiver.send_type? && (receiver.method?(:loc) || receiver.method?(:source_range))
55
+ receiver = receiver.receiver
56
+ end
55
57
  receiver.source
56
58
  end
57
59
  end
@@ -24,7 +24,15 @@ module RuboCop
24
24
  end
25
25
 
26
26
  def kind(token)
27
- 'comma' if token.comma?
27
+ 'comma' if token.comma? && !before_semicolon?(token)
28
+ end
29
+
30
+ private
31
+
32
+ def before_semicolon?(token)
33
+ tokens = processed_source.tokens
34
+
35
+ tokens[tokens.index(token) + 1].semicolon?
28
36
  end
29
37
  end
30
38
  end
@@ -5,6 +5,14 @@ module RuboCop
5
5
  module Lint
6
6
  # Checks for redundant quantifiers inside Regexp literals.
7
7
  #
8
+ # It is always allowed when interpolation is used in a regexp literal,
9
+ # because it's unknown what kind of string will be expanded as a result:
10
+ #
11
+ # [source,ruby]
12
+ # ----
13
+ # /(?:a*#{interpolation})?/x
14
+ # ----
15
+ #
8
16
  # @example
9
17
  # # bad
10
18
  # /(?:x+)+/
@@ -32,6 +40,8 @@ module RuboCop
32
40
  'with a single `%<replacement>s`.'
33
41
 
34
42
  def on_regexp(node)
43
+ return if node.interpolation?
44
+
35
45
  each_redundantly_quantified_pair(node) do |group, child|
36
46
  replacement = merged_quantifier(group, child)
37
47
  add_offense(
@@ -190,7 +190,7 @@ module RuboCop
190
190
  def source_from_node_with_heredoc(node)
191
191
  last_line = -1
192
192
  node.each_descendant do |descendant|
193
- next unless descendant.loc
193
+ next unless descendant.source
194
194
 
195
195
  descendant_last_line =
196
196
  if heredoc_node?(descendant)
@@ -57,6 +57,7 @@ module RuboCop
57
57
  corrector.replace(regexp_node, prefer)
58
58
  end
59
59
  end
60
+ alias on_csend on_send
60
61
 
61
62
  private
62
63
 
@@ -102,10 +102,11 @@ module RuboCop
102
102
  end
103
103
 
104
104
  def multiple_assignment_node
105
- grandparent_node = node.parent&.parent
106
- return nil unless grandparent_node
105
+ return nil unless (grandparent_node = node.parent&.parent)
106
+ if (node = find_multiple_assignment_node(grandparent_node))
107
+ return node
108
+ end
107
109
  return nil unless grandparent_node.type == MULTIPLE_ASSIGNMENT_TYPE
108
- return nil unless node.parent.type == MULTIPLE_LEFT_HAND_SIDE_TYPE
109
110
 
110
111
  grandparent_node
111
112
  end
@@ -122,6 +123,16 @@ module RuboCop
122
123
 
123
124
  node.parent
124
125
  end
126
+
127
+ def find_multiple_assignment_node(grandparent_node)
128
+ return unless grandparent_node.type == MULTIPLE_LEFT_HAND_SIDE_TYPE
129
+ return if grandparent_node.children.any?(&:splat_type?)
130
+
131
+ parent = grandparent_node.parent
132
+ return parent if parent.type == MULTIPLE_ASSIGNMENT_TYPE
133
+
134
+ find_multiple_assignment_node(parent)
135
+ end
125
136
  end
126
137
  end
127
138
  end
@@ -3,7 +3,7 @@
3
3
  module RuboCop
4
4
  # This module holds the RuboCop version information.
5
5
  module Version
6
- STRING = '1.54.0'
6
+ STRING = '1.54.1'
7
7
 
8
8
  MSG = '%<version>s (using Parser %<parser_version>s, ' \
9
9
  'rubocop-ast %<rubocop_ast_version>s, ' \
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubocop
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.54.0
4
+ version: 1.54.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bozhidar Batsov
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: exe
12
12
  cert_chain: []
13
- date: 2023-07-01 00:00:00.000000000 Z
13
+ date: 2023-07-04 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: json