rubocop 1.56.1 → 1.56.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 33c4c853e4bf651034a9ac3faa2f221baa77104521504824e2b4e88b349f01e0
4
- data.tar.gz: d49422193353fc79c86b1c8cdfc3465f4abebf56bc01cd95d2c0e150c3f9747a
3
+ metadata.gz: 061c4fd159baec4f143f014ae432ec3607b0846cb46b3a4566a224922b6c5c7b
4
+ data.tar.gz: 943c45cc27dbbb861f6b2a910216a016c06e2ace63824c30a7ad922caabfed59
5
5
  SHA512:
6
- metadata.gz: 3bd1f56046aba375e89f62b8c954802636023539111238848c25b37a70ed95a41835198b2dd17ded64223b1f50e98f7e20f0c82aafed0381cad30f0be526b4fc
7
- data.tar.gz: e02897c89f4869054ffea56efac2d9983f65bdce40c9254d5806effbda70561bf9c7c4161fa9a7d3269dc229d6d09b3e7c990eef10835f7ec5f2b3c55b32f6cf
6
+ metadata.gz: 5d5900ca290d826af3658c1d481a7778b44a4d57455d69c96c603bac7679c4b275cd192339e683e6ba020201e0dbb23ee3e64f9fbc953cc5bf4832ce1c293bbb
7
+ data.tar.gz: dfc761f98d05680a21093ce5092b933ff8534f7b7ed5f7c46ec52586673db9ad60b495e896b429499d151c6af827a30d1e67c2e1bf397f9a7947b1c0bff836ab
@@ -57,16 +57,13 @@ module RuboCop
57
57
 
58
58
  end_of_first_line = node.source_range.begin_pos - node.source_range.column
59
59
 
60
- raw_lines(node).each_cons(2) do |raw_line_one, raw_line_two|
60
+ lines = raw_lines(node)
61
+ lines.each_cons(2).with_index(node.first_line) do |(raw_line_one, raw_line_two), line_num|
61
62
  end_of_first_line += raw_line_one.length
62
63
 
63
- next unless continuation?(raw_line_one)
64
+ next unless continuation?(raw_line_one, line_num, node)
64
65
 
65
- if enforced_style_leading?
66
- investigate_leading_style(raw_line_one, raw_line_two, end_of_first_line)
67
- else
68
- investigate_trailing_style(raw_line_one, raw_line_two, end_of_first_line)
69
- end
66
+ investigate(raw_line_one, raw_line_two, end_of_first_line)
70
67
  end
71
68
  end
72
69
 
@@ -76,6 +73,14 @@ module RuboCop
76
73
  processed_source.raw_source.lines[node.first_line - 1, line_range(node).size]
77
74
  end
78
75
 
76
+ def investigate(first_line, second_line, end_of_first_line)
77
+ if enforced_style_leading?
78
+ investigate_leading_style(first_line, second_line, end_of_first_line)
79
+ else
80
+ investigate_trailing_style(first_line, second_line, end_of_first_line)
81
+ end
82
+ end
83
+
79
84
  def investigate_leading_style(first_line, second_line, end_of_first_line)
80
85
  matches = first_line.match(LEADING_STYLE_OFFENSE)
81
86
  return if matches.nil?
@@ -98,8 +103,11 @@ module RuboCop
98
103
  end
99
104
  end
100
105
 
101
- def continuation?(line)
102
- line.end_with?("\\\n")
106
+ def continuation?(line, line_num, node)
107
+ return false unless line.end_with?("\\\n")
108
+
109
+ # Ensure backslash isn't part of a token spanning to the next line.
110
+ node.children.none? { |c| c.first_line == line_num && c.multiline? }
103
111
  end
104
112
 
105
113
  def autocorrect(corrector, offense_range, insert_pos, spaces)
@@ -106,7 +106,7 @@ module RuboCop
106
106
 
107
107
  def suitable_as_single_line?(node)
108
108
  !comment_within?(node) &&
109
- node.each_descendant(:if, :case, :kwbegin, :def).none? &&
109
+ node.each_descendant(:if, :case, :kwbegin, :def, :defs).none? &&
110
110
  node.each_descendant(:dstr, :str).none? { |n| n.heredoc? || n.value.include?("\n") } &&
111
111
  node.each_descendant(:begin).none? { |b| !b.single_line? }
112
112
  end
@@ -51,10 +51,12 @@ module RuboCop
51
51
  MAKE_FORCE_METHODS = %i[makedirs mkdir_p mkpath].freeze
52
52
  MAKE_METHODS = %i[mkdir].freeze
53
53
  REMOVE_FORCE_METHODS = %i[rm_f rm_rf].freeze
54
- REMOVE_METHODS = %i[remove remove_dir remove_entry remove_entry_secure
55
- delete unlink remove_file rm rmdir safe_unlink].freeze
56
- RESTRICT_ON_SEND = (MAKE_METHODS + MAKE_FORCE_METHODS + REMOVE_METHODS +
57
- REMOVE_FORCE_METHODS).freeze
54
+ REMOVE_METHODS = %i[remove delete unlink remove_file rm rmdir safe_unlink].freeze
55
+ RECURSIVE_REMOVE_METHODS = %i[remove_dir remove_entry remove_entry_secure].freeze
56
+ RESTRICT_ON_SEND = (
57
+ MAKE_METHODS + MAKE_FORCE_METHODS + REMOVE_METHODS + RECURSIVE_REMOVE_METHODS +
58
+ REMOVE_FORCE_METHODS
59
+ ).freeze
58
60
 
59
61
  # @!method send_exist_node(node)
60
62
  def_node_search :send_exist_node, <<~PATTERN
@@ -140,6 +142,8 @@ module RuboCop
140
142
  'mkdir_p'
141
143
  elsif REMOVE_METHODS.include?(node.method_name)
142
144
  'rm_f'
145
+ elsif RECURSIVE_REMOVE_METHODS.include?(node.method_name)
146
+ 'rm_rf'
143
147
  else
144
148
  node.method_name
145
149
  end
@@ -74,7 +74,7 @@ module RuboCop
74
74
  end
75
75
  end
76
76
 
77
- # rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity
77
+ # rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/MethodLength
78
78
  def argument_match?(send_arg, def_arg)
79
79
  def_arg_name = def_arg.children[0]
80
80
 
@@ -87,12 +87,14 @@ module RuboCop
87
87
  send_arg.hash_type? &&
88
88
  send_arg.pairs.any? { |pair| passing_keyword_arg?(pair, def_arg_name) }
89
89
  when :kwrestarg
90
- send_arg.each_child_node(:kwsplat).any? { |child| child.source == def_arg.source }
90
+ send_arg.each_child_node(:kwsplat, :forwarded_kwrestarg).any? do |child|
91
+ child.source == def_arg.source
92
+ end
91
93
  when :forward_arg
92
94
  send_arg.forwarded_args_type?
93
95
  end
94
96
  end
95
- # rubocop:enable Metrics/AbcSize, Metrics/CyclomaticComplexity
97
+ # rubocop:enable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/MethodLength
96
98
  end
97
99
  end
98
100
  end
@@ -291,7 +291,7 @@ module RuboCop
291
291
  return false if any_arg_referenced?
292
292
  return false if ruby_32_missing_rest_or_kwest?
293
293
  return false unless offensive_block_forwarding?
294
- return false if forward_additional_kwargs?
294
+ return false if additional_kwargs_or_forwarded_kwargs?
295
295
 
296
296
  no_additional_args? || (target_ruby_version >= 3.0 && no_post_splat_args?)
297
297
  end
@@ -339,6 +339,14 @@ module RuboCop
339
339
  [nil, :hash, :block_pass].include?(arg_after_splat&.type)
340
340
  end
341
341
 
342
+ def additional_kwargs_or_forwarded_kwargs?
343
+ additional_kwargs? || forward_additional_kwargs?
344
+ end
345
+
346
+ def additional_kwargs?
347
+ @def_node.arguments.any? { |a| a.kwarg_type? || a.kwoptarg_type? }
348
+ end
349
+
342
350
  def forward_additional_kwargs?
343
351
  return false unless forwarded_kwrest_arg
344
352
 
@@ -45,7 +45,10 @@ module RuboCop
45
45
  result: LanguageServer::Protocol::Interface::InitializeResult.new(
46
46
  capabilities: LanguageServer::Protocol::Interface::ServerCapabilities.new(
47
47
  document_formatting_provider: true,
48
- diagnostic_provider: true,
48
+ diagnostic_provider: LanguageServer::Protocol::Interface::DiagnosticOptions.new(
49
+ inter_file_dependencies: false,
50
+ workspace_diagnostics: false
51
+ ),
49
52
  text_document_sync: LanguageServer::Protocol::Interface::TextDocumentSyncOptions.new(
50
53
  change: LanguageServer::Protocol::Constant::TextDocumentSyncKind::FULL,
51
54
  open_close: true
@@ -3,7 +3,7 @@
3
3
  module RuboCop
4
4
  # This module holds the RuboCop version information.
5
5
  module Version
6
- STRING = '1.56.1'
6
+ STRING = '1.56.2'
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.56.1
4
+ version: 1.56.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: 2023-08-21 00:00:00.000000000 Z
13
+ date: 2023-08-29 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: base64