rubocop 1.63.0 → 1.63.2

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: 8eadae0a09b33bf6a4ae3621ad1b86ba4eff0e7601d3ceb89dcf115759e9c022
4
- data.tar.gz: ae113bb4d3eab63b4a551e36541f14d4e3bf3aae3354b853fb45960e80b90bbb
3
+ metadata.gz: e3c5597599c7a09fcfeb128009d782a9bd47668a4eb373663498e1dd7ca0acb0
4
+ data.tar.gz: 3a24d87aef2c8900f5d39634234f900c33526b55a7c54f0a0937e7a195a672d0
5
5
  SHA512:
6
- metadata.gz: 6343643a7515b53e3e880a6cb92e256f37a3c1ee42c757af0506bf6457d900d36ea95b48bef2c6e008b5a96ba957f28b448a8e62da10ef1c27e6fe88dfbc1935
7
- data.tar.gz: c67f434f594eb5b3f609d1e36140c04a6c79ce784b2d614c0e57ed4d22f7bea437a4edf89de0b976c425c7a2fcaf54b46ce66391eb9e1b61f60fa03bd46fdebc
6
+ metadata.gz: c6ac27979bc5f662289a0e784985895f33610976405d23fc3d75424b2e3fe40f781b7228e07f9b2c4c8e9a8e9a93b3e4c60a88597de3616eab9f07df0f5de116
7
+ data.tar.gz: a5b834be33ea4c0f43c599d21da832bc7ca8927b1271101511de2b6f65ed9418f95140e8ad1902c80b8629bf29c5e0cdeba700b5e9abae9f311ea9ff9acf00bb
data/config/default.yml CHANGED
@@ -1703,7 +1703,6 @@ Lint/Debugger:
1703
1703
  DebuggerRequires:
1704
1704
  debug.rb:
1705
1705
  - debug/open
1706
- - debug/open_nonstop
1707
1706
  - debug/start
1708
1707
 
1709
1708
  Lint/DeprecatedClassMethods:
@@ -186,7 +186,9 @@ module RuboCop
186
186
  def add_global_offense(message = nil, severity: nil)
187
187
  severity = find_severity(nil, severity)
188
188
  message = find_message(nil, message)
189
- current_offenses << Offense.new(severity, Offense::NO_LOCATION, message, name, :unsupported)
189
+ range = Offense::NO_LOCATION
190
+ status = enabled_line?(range.line) ? :unsupported : :disabled
191
+ current_offenses << Offense.new(severity, range, message, name, status)
190
192
  end
191
193
 
192
194
  # Adds an offense on the specified range (or node with an expression)
@@ -88,7 +88,9 @@ module RuboCop
88
88
  end
89
89
 
90
90
  def skip_children?(asgn_node)
91
- empty_condition?(asgn_node) || (safe_assignment_allowed? && safe_assignment?(asgn_node))
91
+ (asgn_node.call_type? && !asgn_node.assignment_method?) ||
92
+ empty_condition?(asgn_node) ||
93
+ (safe_assignment_allowed? && safe_assignment?(asgn_node))
92
94
  end
93
95
 
94
96
  def traverse_node(node, &block)
@@ -146,7 +146,7 @@ module RuboCop
146
146
  node.source_range.with(end_pos: node.condition.source_range.end_pos)
147
147
  elsif all_branches_body_missing?(node)
148
148
  if_node = node.ancestors.detect(&:if?)
149
- node.source_range.with(end_pos: if_node.loc.end.end_pos)
149
+ node.source_range.join(if_node.loc.end.end)
150
150
  else
151
151
  node.source_range
152
152
  end
@@ -47,8 +47,10 @@ module RuboCop
47
47
 
48
48
  def on_regexp(node)
49
49
  each_unsafe_regexp_range(node) do |loc|
50
+ next unless (replacement = regexp_range(loc.source))
51
+
50
52
  add_offense(loc) do |corrector|
51
- corrector.replace(loc, rewrite_regexp_range(loc.source))
53
+ corrector.replace(loc, replacement)
52
54
  end
53
55
  end
54
56
  end
@@ -99,10 +101,13 @@ module RuboCop
99
101
  end
100
102
  end
101
103
 
102
- def rewrite_regexp_range(source)
104
+ def regexp_range(source)
103
105
  open, close = source.split('-')
104
- first = [open, range_for(open).end]
105
- second = [range_for(close).begin, close]
106
+ return unless (open_range = range_for(open))
107
+ return unless (close_range = range_for(close))
108
+
109
+ first = [open, open_range.end]
110
+ second = [close_range.begin, close]
106
111
  "#{first.uniq.join('-')}#{second.uniq.join('-')}"
107
112
  end
108
113
  end
@@ -130,7 +130,7 @@ module RuboCop
130
130
  # @return [Parser::Source::Range]
131
131
  #
132
132
  def last_arg_range(node)
133
- node.last_argument.source_range.with(begin_pos: node.arguments[-2].source_range.end_pos)
133
+ node.last_argument.source_range.join(node.arguments[-2].source_range.end)
134
134
  end
135
135
 
136
136
  def unsorted_dir_loop?(node)
@@ -160,7 +160,7 @@ module RuboCop
160
160
  break_statement && !preceded_by_continue_statement?(break_statement)
161
161
  when :if
162
162
  check_if(node)
163
- when :case
163
+ when :case, :case_match
164
164
  check_case(node)
165
165
  else
166
166
  false
@@ -178,7 +178,13 @@ module RuboCop
178
178
  return false unless else_branch
179
179
  return false unless break_statement?(else_branch)
180
180
 
181
- node.when_branches.all? { |branch| branch.body && break_statement?(branch.body) }
181
+ branches = if node.case_type?
182
+ node.when_branches
183
+ else
184
+ node.in_pattern_branches
185
+ end
186
+
187
+ branches.all? { |branch| branch.body && break_statement?(branch.body) }
182
188
  end
183
189
 
184
190
  def preceded_by_continue_statement?(break_statement)
@@ -312,7 +312,8 @@ module RuboCop
312
312
  end
313
313
 
314
314
  def register_forward_block_arg_offense(add_parens, def_arguments_or_send, block_arg)
315
- return if target_ruby_version <= 3.0 || block_arg.source == '&' || explicit_block_name?
315
+ return if target_ruby_version <= 3.0 ||
316
+ block_arg.nil? || block_arg.source == '&' || explicit_block_name?
316
317
 
317
318
  add_offense(block_arg, message: BLOCK_MSG) do |corrector|
318
319
  add_parens_if_missing(def_arguments_or_send, corrector) if add_parens
@@ -141,7 +141,7 @@ module RuboCop
141
141
  end
142
142
 
143
143
  def check_file(node, file_node)
144
- return true if special_file_keyword?(file_node)
144
+ return if special_file_keyword?(file_node)
145
145
 
146
146
  message = format(MSG_INCORRECT_FILE,
147
147
  method_name: node.method_name,
@@ -20,8 +20,8 @@ module RuboCop
20
20
  #
21
21
  # [source,ruby]
22
22
  # ----
23
- # @dest = []
24
- # src.each { |e| @dest << e * 2 } # `src` method may mutate `@dest`
23
+ # ret = []
24
+ # src.each { |e| ret << e * 2 } # `<<` method may mutate `ret`
25
25
  #
26
26
  # dest = []
27
27
  # src.each { |e| dest << transform(e, dest) } # `transform` method may mutate `dest`
@@ -131,7 +131,7 @@ module RuboCop
131
131
  end
132
132
 
133
133
  def in_same_section?(node1, node2)
134
- !node1.source_range.with(end_pos: node2.source_range.end_pos).source.include?("\n\n")
134
+ !node1.source_range.join(node2.source_range.end).source.include?("\n\n")
135
135
  end
136
136
  end
137
137
  end
@@ -7,7 +7,7 @@ module RuboCop
7
7
  class Lockfile
8
8
  # @param [String, Pathname, nil] lockfile_path
9
9
  def initialize(lockfile_path = nil)
10
- lockfile_path ||= defined?(Bundler) ? Bundler.default_lockfile : nil
10
+ lockfile_path ||= Bundler.default_lockfile if bundler_lock_parser_defined?
11
11
 
12
12
  @lockfile_path = lockfile_path
13
13
  end
@@ -59,12 +59,19 @@ module RuboCop
59
59
  # @return [Bundler::LockfileParser, nil]
60
60
  def parser
61
61
  return @parser if defined?(@parser)
62
- return unless @lockfile_path
63
62
 
64
- lockfile = Bundler.read_file(@lockfile_path)
65
- @parser = lockfile ? Bundler::LockfileParser.new(lockfile) : nil
66
- rescue Bundler::BundlerError
67
- nil
63
+ @parser = if @lockfile_path
64
+ begin
65
+ lockfile = ::Bundler.read_file(@lockfile_path)
66
+ ::Bundler::LockfileParser.new(lockfile) if lockfile
67
+ rescue ::Bundler::BundlerError
68
+ nil
69
+ end
70
+ end
71
+ end
72
+
73
+ def bundler_lock_parser_defined?
74
+ Object.const_defined?(:Bundler) && Bundler.const_defined?(:LockfileParser)
68
75
  end
69
76
  end
70
77
  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.63.0'
6
+ STRING = '1.63.2'
7
7
 
8
8
  MSG = '%<version>s (using %<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.63.0
4
+ version: 1.63.2
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: 2024-04-08 00:00:00.000000000 Z
13
+ date: 2024-04-16 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: json
@@ -1032,7 +1032,7 @@ licenses:
1032
1032
  - MIT
1033
1033
  metadata:
1034
1034
  homepage_uri: https://rubocop.org/
1035
- changelog_uri: https://github.com/rubocop/rubocop/releases/tag/v1.63.0
1035
+ changelog_uri: https://github.com/rubocop/rubocop/releases/tag/v1.63.2
1036
1036
  source_code_uri: https://github.com/rubocop/rubocop/
1037
1037
  documentation_uri: https://docs.rubocop.org/rubocop/1.63/
1038
1038
  bug_tracker_uri: https://github.com/rubocop/rubocop/issues