rubocop 1.20.0 → 1.21.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (75) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/config/default.yml +19 -6
  4. data/lib/rubocop/cop/base.rb +2 -2
  5. data/lib/rubocop/cop/bundler/insecure_protocol_source.rb +12 -11
  6. data/lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb +2 -2
  7. data/lib/rubocop/cop/correctors/line_break_corrector.rb +1 -1
  8. data/lib/rubocop/cop/layout/argument_alignment.rb +1 -1
  9. data/lib/rubocop/cop/layout/class_structure.rb +2 -1
  10. data/lib/rubocop/cop/layout/end_alignment.rb +1 -1
  11. data/lib/rubocop/cop/layout/leading_comment_space.rb +1 -1
  12. data/lib/rubocop/cop/layout/line_length.rb +1 -1
  13. data/lib/rubocop/cop/layout/multiline_block_layout.rb +1 -1
  14. data/lib/rubocop/cop/layout/single_line_block_chain.rb +15 -4
  15. data/lib/rubocop/cop/layout/space_after_not.rb +1 -0
  16. data/lib/rubocop/cop/layout/space_around_equals_in_parameter_default.rb +2 -1
  17. data/lib/rubocop/cop/layout/space_around_keyword.rb +2 -2
  18. data/lib/rubocop/cop/layout/space_before_brackets.rb +1 -0
  19. data/lib/rubocop/cop/layout/space_inside_reference_brackets.rb +1 -1
  20. data/lib/rubocop/cop/lint/ambiguous_operator_precedence.rb +107 -0
  21. data/lib/rubocop/cop/lint/ambiguous_range.rb +1 -1
  22. data/lib/rubocop/cop/lint/debugger.rb +0 -2
  23. data/lib/rubocop/cop/lint/empty_in_pattern.rb +1 -1
  24. data/lib/rubocop/cop/lint/erb_new_arguments.rb +1 -1
  25. data/lib/rubocop/cop/lint/float_out_of_range.rb +1 -1
  26. data/lib/rubocop/cop/lint/incompatible_io_select_with_fiber_scheduler.rb +67 -0
  27. data/lib/rubocop/cop/lint/number_conversion.rb +7 -1
  28. data/lib/rubocop/cop/lint/unused_method_argument.rb +2 -3
  29. data/lib/rubocop/cop/lint/useless_times.rb +1 -1
  30. data/lib/rubocop/cop/metrics/perceived_complexity.rb +1 -1
  31. data/lib/rubocop/cop/metrics/utils/abc_size_calculator.rb +1 -1
  32. data/lib/rubocop/cop/metrics/utils/code_length_calculator.rb +1 -1
  33. data/lib/rubocop/cop/mixin/code_length.rb +1 -1
  34. data/lib/rubocop/cop/mixin/frozen_string_literal.rb +11 -6
  35. data/lib/rubocop/cop/mixin/multiline_expression_indentation.rb +2 -2
  36. data/lib/rubocop/cop/mixin/preceding_following_alignment.rb +9 -1
  37. data/lib/rubocop/cop/naming/ascii_identifiers.rb +0 -3
  38. data/lib/rubocop/cop/naming/constant_name.rb +1 -1
  39. data/lib/rubocop/cop/naming/inclusive_language.rb +9 -9
  40. data/lib/rubocop/cop/style/accessor_grouping.rb +2 -2
  41. data/lib/rubocop/cop/style/and_or.rb +4 -0
  42. data/lib/rubocop/cop/style/ascii_comments.rb +0 -3
  43. data/lib/rubocop/cop/style/case_equality.rb +6 -9
  44. data/lib/rubocop/cop/style/collection_methods.rb +2 -1
  45. data/lib/rubocop/cop/style/document_dynamic_eval_definition.rb +1 -1
  46. data/lib/rubocop/cop/style/documentation.rb +23 -8
  47. data/lib/rubocop/cop/style/empty_method.rb +1 -1
  48. data/lib/rubocop/cop/style/explicit_block_argument.rb +21 -11
  49. data/lib/rubocop/cop/style/if_with_boolean_literal_branches.rb +3 -2
  50. data/lib/rubocop/cop/style/lambda_call.rb +1 -1
  51. data/lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb +6 -6
  52. data/lib/rubocop/cop/style/mutable_constant.rb +1 -1
  53. data/lib/rubocop/cop/style/negated_if.rb +1 -1
  54. data/lib/rubocop/cop/style/negated_unless.rb +1 -1
  55. data/lib/rubocop/cop/style/non_nil_check.rb +2 -2
  56. data/lib/rubocop/cop/style/not.rb +2 -2
  57. data/lib/rubocop/cop/style/parallel_assignment.rb +1 -1
  58. data/lib/rubocop/cop/style/percent_q_literals.rb +2 -2
  59. data/lib/rubocop/cop/style/raise_args.rb +1 -1
  60. data/lib/rubocop/cop/style/redundant_condition.rb +2 -3
  61. data/lib/rubocop/cop/style/redundant_interpolation.rb +1 -1
  62. data/lib/rubocop/cop/style/redundant_percent_q.rb +2 -3
  63. data/lib/rubocop/cop/style/redundant_self_assignment_branch.rb +1 -1
  64. data/lib/rubocop/cop/style/redundant_sort.rb +17 -2
  65. data/lib/rubocop/cop/style/regexp_literal.rb +3 -3
  66. data/lib/rubocop/cop/style/return_nil.rb +2 -1
  67. data/lib/rubocop/cop/style/static_class.rb +1 -2
  68. data/lib/rubocop/cop/style/string_concatenation.rb +1 -1
  69. data/lib/rubocop/cop/style/trivial_accessors.rb +1 -1
  70. data/lib/rubocop/cop/style/yoda_condition.rb +4 -7
  71. data/lib/rubocop/result_cache.rb +1 -1
  72. data/lib/rubocop/runner.rb +1 -2
  73. data/lib/rubocop/version.rb +1 -1
  74. data/lib/rubocop.rb +3 -1
  75. metadata +5 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e89a054e431c4e739e8e4b0bcdc36452704f1cffd6bda1e5710241e6712161a9
4
- data.tar.gz: 632d9503cddcb39443ad8fc8b31bd1f1576803e9490ae77d22ee06f34d40784b
3
+ metadata.gz: dd3bb4ebea9d6db387e52e92a0c9ffac3f6215f0b5b9bcd7d555e979c8fb9fa7
4
+ data.tar.gz: 208d08bf57f092a0857776924cb529db1324ecdf4696476475f51878f803b6ac
5
5
  SHA512:
6
- metadata.gz: b765c92c6118f7e8e958d0787714764c392453efa450048629002a69634fe032648a6f88654afc522d9ca01b2fb2c7f70c573d6bd9a227e85168cfcbe5613091
7
- data.tar.gz: 22d0b80509def399c10586f579f08520e47c1d03a7eab14e0c9b998d9fea0b7a477333677c0af2aed3e768bb9c9d6a30f51a88f7d9e4973acd8057389ac01357
6
+ metadata.gz: 9d32668f49f495948628017c042cbc292d62c4ba93d905635d47ecba7c12e69ff7cbff3999a6cccba62bbc27ff7b51827e1a00f41769c1dd711f342fe10e8519
7
+ data.tar.gz: 9798e105b8ea95245d153e9e295a95a593e49464f91ac8c508ce0900f7f2ef0e97759a1144044f32acb726e11d3552de1f5de8d2d477151606bfd39090df3260
data/README.md CHANGED
@@ -54,7 +54,7 @@ To prevent an unwanted RuboCop update you might want to use a conservative versi
54
54
  in your `Gemfile`:
55
55
 
56
56
  ```rb
57
- gem 'rubocop', '~> 1.20', require: false
57
+ gem 'rubocop', '~> 1.21', require: false
58
58
  ```
59
59
 
60
60
  See [our versioning policy](https://docs.rubocop.org/rubocop/versioning.html) for further details.
data/config/default.yml CHANGED
@@ -957,7 +957,6 @@ Layout/LineLength:
957
957
  Enabled: true
958
958
  VersionAdded: '0.25'
959
959
  VersionChanged: '1.4'
960
- AutoCorrect: true
961
960
  Max: 120
962
961
  # To make it possible to copy or click on URIs in the code, we allow lines
963
962
  # containing a URI to be longer than Max.
@@ -1448,6 +1447,13 @@ Lint/AmbiguousOperator:
1448
1447
  VersionAdded: '0.17'
1449
1448
  VersionChanged: '0.83'
1450
1449
 
1450
+ Lint/AmbiguousOperatorPrecedence:
1451
+ Description: >-
1452
+ Checks for expressions containing multiple binary operations with
1453
+ ambiguous precedence.
1454
+ Enabled: pending
1455
+ VersionAdded: '1.21'
1456
+
1451
1457
  Lint/AmbiguousRange:
1452
1458
  Description: Checks for ranges with ambiguous boundaries.
1453
1459
  Enabled: pending
@@ -1771,6 +1777,11 @@ Lint/ImplicitStringConcatenation:
1771
1777
  Enabled: true
1772
1778
  VersionAdded: '0.36'
1773
1779
 
1780
+ Lint/IncompatibleIoSelectWithFiberScheduler:
1781
+ Description: 'Checks for `IO.select` that is incompatible with Fiber Scheduler.'
1782
+ Enabled: pending
1783
+ VersionAdded: '1.21'
1784
+
1774
1785
  Lint/IneffectiveAccessModifier:
1775
1786
  Description: >-
1776
1787
  Checks for attempts to use `private` or `protected` to set
@@ -2563,8 +2574,9 @@ Naming/HeredocDelimiterNaming:
2563
2574
 
2564
2575
  Naming/InclusiveLanguage:
2565
2576
  Description: 'Recommend the use of inclusive language instead of problematic terms.'
2566
- Enabled: pending
2577
+ Enabled: false
2567
2578
  VersionAdded: '1.18'
2579
+ VersionChanged: '1.21'
2568
2580
  CheckIdentifiers: true
2569
2581
  CheckConstants: true
2570
2582
  CheckVariables: true
@@ -2796,8 +2808,9 @@ Style/AndOr:
2796
2808
  Description: 'Use &&/|| instead of and/or.'
2797
2809
  StyleGuide: '#no-and-or-or'
2798
2810
  Enabled: true
2811
+ SafeAutoCorrect: false
2799
2812
  VersionAdded: '0.9'
2800
- VersionChanged: '0.25'
2813
+ VersionChanged: '1.21'
2801
2814
  # Whether `and` and `or` are banned only in conditionals (conditionals)
2802
2815
  # or completely (always).
2803
2816
  EnforcedStyle: conditionals
@@ -2831,9 +2844,9 @@ Style/ArrayJoin:
2831
2844
  Style/AsciiComments:
2832
2845
  Description: 'Use only ascii symbols in comments.'
2833
2846
  StyleGuide: '#english-comments'
2834
- Enabled: true
2847
+ Enabled: false
2835
2848
  VersionAdded: '0.9'
2836
- VersionChanged: '0.52'
2849
+ VersionChanged: '1.21'
2837
2850
  AllowedChars:
2838
2851
  - ©
2839
2852
 
@@ -2995,7 +3008,7 @@ Style/CaseEquality:
2995
3008
  Enabled: true
2996
3009
  VersionAdded: '0.9'
2997
3010
  VersionChanged: '0.89'
2998
- # If AllowOnConstant is enabled, the cop will ignore violations when the receiver of
3011
+ # If `AllowOnConstant` option is enabled, the cop will ignore violations when the receiver of
2999
3012
  # the case equality operator is a constant.
3000
3013
  #
3001
3014
  # # bad
@@ -222,8 +222,8 @@ module RuboCop
222
222
 
223
223
  def relevant_file?(file)
224
224
  file == RuboCop::AST::ProcessedSource::STRING_SOURCE_NAME ||
225
- file_name_matches_any?(file, 'Include', true) &&
226
- !file_name_matches_any?(file, 'Exclude', false)
225
+ (file_name_matches_any?(file, 'Include', true) &&
226
+ !file_name_matches_any?(file, 'Exclude', false))
227
227
  end
228
228
 
229
229
  def excluded_file?(file)
@@ -3,18 +3,18 @@
3
3
  module RuboCop
4
4
  module Cop
5
5
  module Bundler
6
- # The symbol argument `:gemcutter`, `:rubygems`, and `:rubyforge`
7
- # are deprecated. So please change your source to URL string that
8
- # 'https://rubygems.org' if possible, or 'http://rubygems.org' if not.
6
+ # Passing symbol arguments to `source` (e.g. `source :rubygems`) is
7
+ # deprecated because they default to using HTTP requests. Instead, specify
8
+ # `'https://rubygems.org'` if possible, or `'http://rubygems.org'` if not.
9
9
  #
10
- # This autocorrect will replace these symbols with 'https://rubygems.org'.
11
- # Because it is secure, HTTPS request is strongly recommended. And in
12
- # most use cases HTTPS will be fine.
10
+ # When autocorrecting, this cop will replace symbol arguments with
11
+ # `'https://rubygems.org'`.
13
12
  #
14
- # However, it don't replace all `sources` of `http://` with `https://`.
15
- # For example, when specifying an internal gem server using HTTP on the
16
- # intranet, a use case where HTTPS cannot be specified was considered.
17
- # Consider using HTTP only if you cannot use HTTPS.
13
+ # This cop will not replace existing sources that use `http://`. This may
14
+ # be necessary where HTTPS is not available. For example, where using an
15
+ # internal gem server via an intranet, or where HTTPS is prohibited.
16
+ # However, you should strongly prefer `https://` where possible, as it is
17
+ # more secure.
18
18
  #
19
19
  # @example
20
20
  # # bad
@@ -24,7 +24,8 @@ module RuboCop
24
24
  #
25
25
  # # good
26
26
  # source 'https://rubygems.org' # strongly recommended
27
- # source 'http://rubygems.org'
27
+ # source 'http://rubygems.org' # use only if HTTPS is unavailable
28
+ #
28
29
  class InsecureProtocolSource < Base
29
30
  include RangeHelp
30
31
  extend AutoCorrector
@@ -87,8 +87,8 @@ module RuboCop
87
87
  end
88
88
 
89
89
  def needs_separating_space?
90
- block_begin.begin_pos == arguments_end_pos &&
91
- selector_end.end_pos == arguments_begin_pos ||
90
+ (block_begin.begin_pos == arguments_end_pos &&
91
+ selector_end.end_pos == arguments_begin_pos) ||
92
92
  block_begin.begin_pos == selector_end.end_pos
93
93
  end
94
94
 
@@ -28,7 +28,7 @@ module RuboCop
28
28
  indent_steps: 1)
29
29
  corrector.insert_before(
30
30
  range,
31
- "\n#{' ' * (node.loc.keyword.column + indent_steps * configured_width)}"
31
+ "\n#{' ' * (node.loc.keyword.column + (indent_steps * configured_width))}"
32
32
  )
33
33
  end
34
34
 
@@ -54,7 +54,7 @@ module RuboCop
54
54
 
55
55
  def on_send(node)
56
56
  first_arg = node.first_argument
57
- return if !multiple_arguments?(node, first_arg) || node.send_type? && node.method?(:[]=)
57
+ return if !multiple_arguments?(node, first_arg) || (node.send_type? && node.method?(:[]=))
58
58
 
59
59
  if first_arg.hash_type? && !first_arg.braces?
60
60
  pairs = first_arg.pairs
@@ -264,7 +264,8 @@ module RuboCop
264
264
 
265
265
  def source_range_with_comment(node)
266
266
  begin_pos, end_pos =
267
- if node.def_type? && !node.method?(:initialize) || node.send_type? && node.def_modifier?
267
+ if (node.def_type? && !node.method?(:initialize)) ||
268
+ (node.send_type? && node.def_modifier?)
268
269
  start_node = find_visibility_start(node) || node
269
270
  end_node = find_visibility_end(node) || node
270
271
  [begin_pos_with_comment(start_node),
@@ -182,7 +182,7 @@ module RuboCop
182
182
 
183
183
  def assignment_or_operator_method(node)
184
184
  node.ancestors.find do |ancestor|
185
- ancestor.assignment_or_similar? || ancestor.send_type? && ancestor.operator_method?
185
+ ancestor.assignment_or_similar? || (ancestor.send_type? && ancestor.operator_method?)
186
186
  end
187
187
  end
188
188
  end
@@ -77,7 +77,7 @@ module RuboCop
77
77
  end
78
78
 
79
79
  def allowed_on_first_line?(comment)
80
- shebang?(comment) || rackup_config_file? && rackup_options?(comment)
80
+ shebang?(comment) || (rackup_config_file? && rackup_options?(comment))
81
81
  end
82
82
 
83
83
  def shebang?(comment)
@@ -176,7 +176,7 @@ module RuboCop
176
176
  def ignored_line?(line, line_index)
177
177
  matches_ignored_pattern?(line) ||
178
178
  shebang?(line, line_index) ||
179
- heredocs && line_in_permitted_heredoc?(line_index.succ)
179
+ (heredocs && line_in_permitted_heredoc?(line_index.succ))
180
180
  end
181
181
 
182
182
  def shebang?(line, line_index)
@@ -89,7 +89,7 @@ module RuboCop
89
89
  if node.source.lines.first.end_with?("|\n")
90
90
  PIPE_SIZE
91
91
  else
92
- 1 + PIPE_SIZE * 2
92
+ 1 + (PIPE_SIZE * 2)
93
93
  end
94
94
  end
95
95
 
@@ -37,15 +37,26 @@ module RuboCop
37
37
  return unless receiver&.block_type?
38
38
 
39
39
  receiver_location = receiver.loc
40
- closing_block_delimiter_line_number = receiver_location.end.line
41
- return if receiver_location.begin.line < closing_block_delimiter_line_number
40
+ closing_block_delimiter_line_num = receiver_location.end.line
41
+ return if receiver_location.begin.line < closing_block_delimiter_line_num
42
42
 
43
43
  node_location = node.loc
44
44
  dot_range = node_location.dot
45
45
  return unless dot_range
46
- return if dot_range.line > closing_block_delimiter_line_number
46
+ return unless call_method_after_block?(node, dot_range, closing_block_delimiter_line_num)
47
47
 
48
- range_between(dot_range.begin_pos, node_location.selector.end_pos)
48
+ range_between(dot_range.begin_pos, selector_range(node).end_pos)
49
+ end
50
+
51
+ def call_method_after_block?(node, dot_range, closing_block_delimiter_line_num)
52
+ return false if dot_range.line > closing_block_delimiter_line_num
53
+
54
+ dot_range.column < selector_range(node).column
55
+ end
56
+
57
+ def selector_range(node)
58
+ # l.(1) has no selector, so we use the opening parenthesis instead
59
+ node.loc.selector || node.loc.begin
49
60
  end
50
61
  end
51
62
  end
@@ -16,6 +16,7 @@ module RuboCop
16
16
  extend AutoCorrector
17
17
 
18
18
  MSG = 'Do not leave space between `!` and its argument.'
19
+ RESTRICT_ON_SEND = %i[!].freeze
19
20
 
20
21
  def on_send(node)
21
22
  return unless node.prefix_bang? && whitespace_after_operator?(node)
@@ -47,7 +47,8 @@ module RuboCop
47
47
  space_on_both_sides = space_on_both_sides?(arg, equals)
48
48
  no_surrounding_space = no_surrounding_space?(arg, equals)
49
49
 
50
- if style == :space && space_on_both_sides || style == :no_space && no_surrounding_space
50
+ if (style == :space && space_on_both_sides) ||
51
+ (style == :no_space && no_surrounding_space)
51
52
  correct_style_detected
52
53
  else
53
54
  incorrect_style_detected(arg, value)
@@ -228,8 +228,8 @@ module RuboCop
228
228
  def accepted_opening_delimiter?(range, char)
229
229
  return true unless char
230
230
 
231
- accept_left_square_bracket?(range) && char == '[' ||
232
- accept_left_parenthesis?(range) && char == '('
231
+ (accept_left_square_bracket?(range) && char == '[') ||
232
+ (accept_left_parenthesis?(range) && char == '(')
233
233
  end
234
234
 
235
235
  def accept_left_parenthesis?(range)
@@ -19,6 +19,7 @@ module RuboCop
19
19
  extend AutoCorrector
20
20
 
21
21
  MSG = 'Remove the space before the opening brackets.'
22
+ RESTRICT_ON_SEND = %i[[] []=].freeze
22
23
 
23
24
  def on_send(node)
24
25
  return unless (first_argument = node.first_argument)
@@ -107,7 +107,7 @@ module RuboCop
107
107
  current_token = tokens.reverse.find(&:left_ref_bracket?)
108
108
  previous_token = previous_token(current_token)
109
109
 
110
- if node.method?(:[]=) || previous_token && !previous_token.right_bracket?
110
+ if node.method?(:[]=) || (previous_token && !previous_token.right_bracket?)
111
111
  tokens.find(&:left_ref_bracket?)
112
112
  else
113
113
  current_token
@@ -0,0 +1,107 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RuboCop
4
+ module Cop
5
+ module Lint
6
+ # This cop looks for expressions containing multiple binary operators
7
+ # where precedence is ambiguous due to lack of parentheses. For example,
8
+ # in `1 + 2 * 3`, the multiplication will happen before the addition, but
9
+ # lexically it appears that the addition will happen first.
10
+ #
11
+ # The cop does not consider unary operators (ie. `!a` or `-b`) or comparison
12
+ # operators (ie. `a =~ b`) because those are not ambiguous.
13
+ #
14
+ # NOTE: Ranges are handled by `Lint/AmbiguousRange`.
15
+ #
16
+ # @example
17
+ # # bad
18
+ # a + b * c
19
+ # a || b && c
20
+ # a ** b + c
21
+ #
22
+ # # good (different precedence)
23
+ # a + (b * c)
24
+ # a || (b && c)
25
+ # (a ** b) + c
26
+ #
27
+ # # good (same precedence)
28
+ # a + b + c
29
+ # a * b / c % d
30
+ class AmbiguousOperatorPrecedence < Base
31
+ extend AutoCorrector
32
+
33
+ # See https://ruby-doc.org/core-3.0.2/doc/syntax/precedence_rdoc.html
34
+ PRECEDENCE = [
35
+ %i[**],
36
+ %i[* / %],
37
+ %i[+ -],
38
+ %i[<< >>],
39
+ %i[&],
40
+ %i[| ^],
41
+ %i[&&],
42
+ %i[||]
43
+ ].freeze
44
+ RESTRICT_ON_SEND = PRECEDENCE.flatten.freeze
45
+ MSG = 'Wrap expressions with varying precedence with parentheses to avoid ambiguity.'
46
+
47
+ def on_new_investigation
48
+ # Cache the precedence of each node being investigated
49
+ # so that we only need to calculate it once
50
+ @node_precedences = {}
51
+ super
52
+ end
53
+
54
+ def on_and(node)
55
+ return unless (parent = node.parent)
56
+
57
+ return if parent.begin_type? # if the `and` is in a `begin`, it's parenthesized already
58
+ return unless parent.or_type?
59
+
60
+ add_offense(node) do |corrector|
61
+ autocorrect(corrector, node)
62
+ end
63
+ end
64
+
65
+ def on_send(node)
66
+ return if node.parenthesized?
67
+
68
+ return unless (parent = node.parent)
69
+ return unless operator?(parent)
70
+ return unless greater_precedence?(node, parent)
71
+
72
+ add_offense(node) do |corrector|
73
+ autocorrect(corrector, node)
74
+ end
75
+ end
76
+
77
+ private
78
+
79
+ def precedence(node)
80
+ @node_precedences.fetch(node) do
81
+ PRECEDENCE.index { |operators| operators.include?(operator_name(node)) }
82
+ end
83
+ end
84
+
85
+ def operator?(node)
86
+ (node.send_type? && RESTRICT_ON_SEND.include?(node.method_name)) || node.operator_keyword?
87
+ end
88
+
89
+ def greater_precedence?(node1, node2)
90
+ precedence(node2) > precedence(node1)
91
+ end
92
+
93
+ def operator_name(node)
94
+ if node.send_type?
95
+ node.method_name
96
+ else
97
+ node.operator.to_sym
98
+ end
99
+ end
100
+
101
+ def autocorrect(corrector, node)
102
+ corrector.wrap(node, '(', ')')
103
+ end
104
+ end
105
+ end
106
+ end
107
+ end
@@ -83,7 +83,7 @@ module RuboCop
83
83
  node.begin_type? ||
84
84
  node.basic_literal? ||
85
85
  node.variable? || node.const_type? ||
86
- node.call_type? && acceptable_call?(node)
86
+ (node.call_type? && acceptable_call?(node))
87
87
  end
88
88
 
89
89
  def acceptable_call?(node)
@@ -57,8 +57,6 @@ module RuboCop
57
57
  class Debugger < Base
58
58
  MSG = 'Remove debugger entry point `%<source>s`.'
59
59
 
60
- RESTRICT_ON_SEND = [].freeze
61
-
62
60
  # @!method kernel?(node)
63
61
  def_node_matcher :kernel?, <<~PATTERN
64
62
  (const {nil? cbase} :Kernel)