m2m_keygen 0.4.9 → 0.5.1

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.
Files changed (174) hide show
  1. checksums.yaml +4 -4
  2. data/.overcommit.yml +4 -7
  3. data/.rubocop.yml +19 -16
  4. data/.ruby-version +1 -1
  5. data/.streerc +1 -0
  6. data/.tool-versions +1 -1
  7. data/CHANGELOG.md +70 -1
  8. data/Gemfile +2 -2
  9. data/Gemfile.lock +135 -158
  10. data/README.md +64 -78
  11. data/docs/MIGRATING.md +69 -0
  12. data/docs/SPEC.md +245 -0
  13. data/examples/nonce_store/postgres.rb +40 -0
  14. data/examples/nonce_store/redis.rb +23 -0
  15. data/gemfiles/rack_2.gemfile +5 -0
  16. data/gemfiles/rack_3.gemfile +5 -0
  17. data/lib/m2m_keygen/canonicalizer.rb +57 -0
  18. data/lib/m2m_keygen/nonce_store/disabled.rb +19 -0
  19. data/lib/m2m_keygen/nonce_store/memory.rb +64 -0
  20. data/lib/m2m_keygen/nonce_store.rb +18 -0
  21. data/lib/m2m_keygen/rack_validator.rb +86 -19
  22. data/lib/m2m_keygen/request_signer/signed_request.rb +10 -0
  23. data/lib/m2m_keygen/request_signer.rb +118 -0
  24. data/lib/m2m_keygen/signature.rb +41 -39
  25. data/lib/m2m_keygen/types/params_type.rb +6 -17
  26. data/lib/m2m_keygen/version.rb +1 -1
  27. data/lib/m2m_keygen.rb +6 -0
  28. data/m2m_keygen.gemspec +12 -14
  29. data/sorbet/config +1 -0
  30. data/sorbet/rbi/gems/.gitattributes +1 -0
  31. data/sorbet/rbi/gems/{ast@2.4.2.rbi → ast@2.4.3.rbi} +45 -79
  32. data/sorbet/rbi/gems/{benchmark@0.2.0.rbi → benchmark@0.5.0.rbi} +91 -58
  33. data/sorbet/rbi/gems/bundler-audit@0.9.3.rbi +397 -0
  34. data/sorbet/rbi/gems/byebug@13.0.0.rbi +3651 -0
  35. data/sorbet/rbi/gems/childprocess@5.1.0.rbi +336 -0
  36. data/sorbet/rbi/gems/concurrent-ruby@1.3.7.rbi +384 -0
  37. data/sorbet/rbi/gems/{diff-lcs@1.5.0.rbi → diff-lcs@1.6.2.rbi} +189 -199
  38. data/sorbet/rbi/gems/{docile@1.4.0.rbi → docile@1.4.1.rbi} +147 -147
  39. data/sorbet/rbi/gems/dotenv@3.2.0.rbi +267 -0
  40. data/sorbet/rbi/gems/erubi@1.13.1.rbi +155 -0
  41. data/sorbet/rbi/gems/{faker@2.22.0.rbi → faker@3.8.0.rbi} +8468 -3829
  42. data/sorbet/rbi/gems/{ffi@1.15.5.rbi → ffi@1.17.4.rbi} +1 -0
  43. data/sorbet/rbi/gems/{formatador@1.1.0.rbi → formatador@1.2.3.rbi} +1 -0
  44. data/sorbet/rbi/gems/{guard@2.18.0.rbi → guard@2.20.1.rbi} +1 -0
  45. data/sorbet/rbi/gems/{i18n@1.12.0.rbi → i18n@1.15.2.rbi} +687 -827
  46. data/sorbet/rbi/gems/io-console@0.8.2.rbi +9 -0
  47. data/sorbet/rbi/gems/{json@2.6.2.rbi → json@2.20.0.rbi} +994 -252
  48. data/sorbet/rbi/gems/language_server-protocol@3.17.0.5.rbi +9 -0
  49. data/sorbet/rbi/gems/lint_roller@1.1.0.rbi +189 -0
  50. data/sorbet/rbi/gems/listen@3.10.0.rbi +9 -0
  51. data/sorbet/rbi/gems/logger@1.7.0.rbi +896 -0
  52. data/sorbet/rbi/gems/{lumberjack@1.2.8.rbi → lumberjack@1.4.2.rbi} +1 -0
  53. data/sorbet/rbi/gems/{method_source@1.0.0.rbi → method_source@1.1.0.rbi} +111 -90
  54. data/sorbet/rbi/gems/{overcommit@0.59.1.rbi → overcommit@0.71.0.rbi} +503 -647
  55. data/sorbet/rbi/gems/parallel@2.1.0.rbi +321 -0
  56. data/sorbet/rbi/gems/parser@3.3.11.1.rbi +5229 -0
  57. data/sorbet/rbi/gems/prettier_print@1.2.1.rbi +878 -0
  58. data/sorbet/rbi/gems/prism@1.9.0.rbi +42224 -0
  59. data/sorbet/rbi/gems/pry-byebug@3.12.0.rbi +481 -0
  60. data/sorbet/rbi/gems/{pry@0.14.1.rbi → pry@0.16.0.rbi} +2567 -3550
  61. data/sorbet/rbi/gems/{racc@1.6.0.rbi → racc@1.8.1.rbi} +54 -40
  62. data/sorbet/rbi/gems/rack@3.2.6.rbi +4653 -0
  63. data/sorbet/rbi/gems/{rake@13.0.6.rbi → rake@13.4.2.rbi} +963 -732
  64. data/sorbet/rbi/gems/{rb-inotify@0.10.1.rbi → rb-inotify@0.11.1.rbi} +1 -0
  65. data/sorbet/rbi/gems/rbi@0.3.14.rbi +5519 -0
  66. data/sorbet/rbi/gems/rbs@4.0.3.rbi +6908 -0
  67. data/sorbet/rbi/gems/regexp_parser@2.12.0.rbi +3398 -0
  68. data/sorbet/rbi/gems/reline@0.6.3.rbi +2446 -0
  69. data/sorbet/rbi/gems/require-hooks@0.4.0.rbi +152 -0
  70. data/sorbet/rbi/gems/{rexml@3.2.5.rbi → rexml@3.4.4.rbi} +1085 -894
  71. data/sorbet/rbi/gems/rspec-core@3.13.6.rbi +9475 -0
  72. data/sorbet/rbi/gems/rspec-expectations@3.13.5.rbi +6108 -0
  73. data/sorbet/rbi/gems/rspec-mocks@3.13.8.rbi +4787 -0
  74. data/sorbet/rbi/gems/rspec-support@3.13.7.rbi +1274 -0
  75. data/sorbet/rbi/gems/rspec@3.13.2.rbi +15 -0
  76. data/sorbet/rbi/gems/rspec_in_context@1.2.2.rbi +294 -0
  77. data/sorbet/rbi/gems/rubocop-ast@1.49.1.rbi +7140 -0
  78. data/sorbet/rbi/gems/rubocop-faker@1.3.0.rbi +88 -0
  79. data/sorbet/rbi/gems/rubocop-performance@1.26.1.rbi +3403 -0
  80. data/sorbet/rbi/gems/rubocop-sorbet@0.12.0.rbi +2448 -0
  81. data/sorbet/rbi/gems/rubocop@1.88.1.rbi +63103 -0
  82. data/sorbet/rbi/gems/ruby-lsp@0.26.9.rbi +28 -0
  83. data/sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi +988 -0
  84. data/sorbet/rbi/gems/rubydex@0.2.7.rbi +836 -0
  85. data/sorbet/rbi/gems/simplecov-html@0.13.2.rbi +90 -0
  86. data/sorbet/rbi/gems/{simplecov@0.21.2.rbi → simplecov@0.22.0.rbi} +438 -578
  87. data/sorbet/rbi/gems/spoom@1.8.2.rbi +6691 -0
  88. data/sorbet/rbi/gems/syntax_tree@6.3.0.rbi +22090 -0
  89. data/sorbet/rbi/gems/tapioca@0.19.2.rbi +3597 -0
  90. data/sorbet/rbi/gems/{thor@1.2.1.rbi → thor@1.5.0.rbi} +1085 -1171
  91. data/sorbet/rbi/gems/tsort@0.2.0.rbi +389 -0
  92. data/sorbet/rbi/gems/unicode-display_width@3.2.0.rbi +130 -0
  93. data/sorbet/rbi/gems/unicode-emoji@4.2.0.rbi +332 -0
  94. data/sorbet/rbi/gems/{yard-sorbet@0.7.0.rbi → yard-sorbet@0.9.0.rbi} +142 -99
  95. data/sorbet/rbi/gems/{yard@0.9.28.rbi → yard@0.9.44.rbi} +5350 -6316
  96. data/sorbet/rbi/gems/zeitwerk@2.8.2.rbi +1178 -0
  97. metadata +105 -111
  98. data/.prettierrc.js +0 -4
  99. data/docs/M2mKeygen/Error.html +0 -135
  100. data/docs/M2mKeygen/ParamsEncoder.html +0 -321
  101. data/docs/M2mKeygen/RackValidator.html +0 -533
  102. data/docs/M2mKeygen/Signature.html +0 -680
  103. data/docs/M2mKeygen/Types.html +0 -147
  104. data/docs/M2mKeygen.html +0 -157
  105. data/docs/_index.html +0 -182
  106. data/docs/class_list.html +0 -51
  107. data/docs/css/common.css +0 -1
  108. data/docs/css/full_list.css +0 -58
  109. data/docs/css/style.css +0 -497
  110. data/docs/file.README.html +0 -230
  111. data/docs/file_list.html +0 -56
  112. data/docs/frames.html +0 -17
  113. data/docs/index.html +0 -230
  114. data/docs/js/app.js +0 -314
  115. data/docs/js/full_list.js +0 -216
  116. data/docs/js/jquery.js +0 -4
  117. data/docs/method_list.html +0 -139
  118. data/docs/top-level-namespace.html +0 -110
  119. data/lib/m2m_keygen/params_encoder.rb +0 -56
  120. data/package.json +0 -12
  121. data/sig/m2m_keygen.rbs +0 -4
  122. data/sorbet/rbi/gems/activesupport@7.0.3.1.rbi +0 -18608
  123. data/sorbet/rbi/gems/backport@1.2.0.rbi +0 -522
  124. data/sorbet/rbi/gems/bundler-audit@0.9.1.rbi +0 -308
  125. data/sorbet/rbi/gems/byebug@11.1.3.rbi +0 -3603
  126. data/sorbet/rbi/gems/childprocess@4.1.0.rbi +0 -401
  127. data/sorbet/rbi/gems/concurrent-ruby@1.1.10.rbi +0 -11581
  128. data/sorbet/rbi/gems/dotenv@2.8.1.rbi +0 -234
  129. data/sorbet/rbi/gems/e2mmap@0.1.0.rbi +0 -8
  130. data/sorbet/rbi/gems/haml@5.2.2.rbi +0 -3190
  131. data/sorbet/rbi/gems/jaro_winkler@1.5.4.rbi +0 -19
  132. data/sorbet/rbi/gems/kramdown-parser-gfm@1.1.0.rbi +0 -133
  133. data/sorbet/rbi/gems/kramdown@2.4.0.rbi +0 -3261
  134. data/sorbet/rbi/gems/listen@3.7.1.rbi +0 -1181
  135. data/sorbet/rbi/gems/minitest@5.16.3.rbi +0 -1459
  136. data/sorbet/rbi/gems/nokogiri@1.13.8.rbi +0 -6514
  137. data/sorbet/rbi/gems/parallel@1.22.1.rbi +0 -277
  138. data/sorbet/rbi/gems/parser@3.1.2.1.rbi +0 -6826
  139. data/sorbet/rbi/gems/prettier@3.2.0.rbi +0 -22
  140. data/sorbet/rbi/gems/prettier_print@0.1.0.rbi +0 -8
  141. data/sorbet/rbi/gems/pry-byebug@3.10.1.rbi +0 -1222
  142. data/sorbet/rbi/gems/rack@2.2.4.rbi +0 -5630
  143. data/sorbet/rbi/gems/rbi@0.0.15.rbi +0 -3007
  144. data/sorbet/rbi/gems/rbs@2.6.0.rbi +0 -8
  145. data/sorbet/rbi/gems/regexp_parser@2.5.0.rbi +0 -3366
  146. data/sorbet/rbi/gems/reverse_markdown@2.1.1.rbi +0 -389
  147. data/sorbet/rbi/gems/rspec-core@3.11.0.rbi +0 -10786
  148. data/sorbet/rbi/gems/rspec-expectations@3.11.0.rbi +0 -8170
  149. data/sorbet/rbi/gems/rspec-mocks@3.11.1.rbi +0 -5385
  150. data/sorbet/rbi/gems/rspec-support@3.11.0.rbi +0 -1746
  151. data/sorbet/rbi/gems/rspec@3.11.0.rbi +0 -187
  152. data/sorbet/rbi/gems/rspec_in_context@1.1.0.3.rbi +0 -1113
  153. data/sorbet/rbi/gems/rubocop-ast@1.21.0.rbi +0 -7044
  154. data/sorbet/rbi/gems/rubocop-faker@1.1.0.rbi +0 -106
  155. data/sorbet/rbi/gems/rubocop-performance@1.14.3.rbi +0 -2982
  156. data/sorbet/rbi/gems/rubocop-sorbet@0.6.11.rbi +0 -990
  157. data/sorbet/rbi/gems/rubocop@1.35.1.rbi +0 -52002
  158. data/sorbet/rbi/gems/ruby-progressbar@1.11.0.rbi +0 -1239
  159. data/sorbet/rbi/gems/simplecov-html@0.12.3.rbi +0 -219
  160. data/sorbet/rbi/gems/solargraph@0.46.0.rbi +0 -9075
  161. data/sorbet/rbi/gems/spoom@1.1.12.rbi +0 -2369
  162. data/sorbet/rbi/gems/syntax_tree-haml@1.3.1.rbi +0 -8
  163. data/sorbet/rbi/gems/syntax_tree-rbs@0.5.0.rbi +0 -8
  164. data/sorbet/rbi/gems/syntax_tree@3.5.0.rbi +0 -8
  165. data/sorbet/rbi/gems/tapioca@0.9.4.rbi +0 -2946
  166. data/sorbet/rbi/gems/temple@0.8.2.rbi +0 -1712
  167. data/sorbet/rbi/gems/tilt@2.0.11.rbi +0 -742
  168. data/sorbet/rbi/gems/tzinfo@2.0.5.rbi +0 -5914
  169. data/sorbet/rbi/gems/unicode-display_width@2.2.0.rbi +0 -48
  170. data/sorbet/rbi/gems/unparser@0.6.5.rbi +0 -4529
  171. data/sorbet/rbi/gems/webrick@1.7.0.rbi +0 -2553
  172. data/sorbet/rbi/gems/zeitwerk@2.6.0.rbi +0 -867
  173. data/sorbet/rbi/manual.rbi +0 -7
  174. data/yarn.lock +0 -20
@@ -0,0 +1,2448 @@
1
+ # typed: true
2
+
3
+ # DO NOT EDIT MANUALLY
4
+ # This is an autogenerated file for types exported from the `rubocop-sorbet` gem.
5
+ # Please instead update this file by running `bin/tapioca gem rubocop-sorbet`.
6
+
7
+
8
+ # pkg:gem/rubocop-sorbet#lib/rubocop/sorbet/version.rb:3
9
+ module RuboCop; end
10
+
11
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/mixin/target_sorbet_version.rb:4
12
+ module RuboCop::Cop; end
13
+
14
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/mixin/target_sorbet_version.rb:5
15
+ module RuboCop::Cop::Sorbet; end
16
+
17
+ # Disallows using `.override(allow_incompatible: true)`.
18
+ # Using `allow_incompatible` suggests a violation of the Liskov
19
+ # Substitution Principle, meaning that a subclass is not a valid
20
+ # subtype of its superclass. This Cop prevents these design smells
21
+ # from occurring.
22
+ #
23
+ # @example
24
+ #
25
+ # # bad
26
+ # sig.override(allow_incompatible: true)
27
+ #
28
+ # # good
29
+ # sig.override
30
+ #
31
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/allow_incompatible_override.rb:21
32
+ class RuboCop::Cop::Sorbet::AllowIncompatibleOverride < ::RuboCop::Cop::Base
33
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/allow_incompatible_override.rb:55
34
+ def on_block(node); end
35
+
36
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/allow_incompatible_override.rb:72
37
+ def on_numblock(node); end
38
+
39
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/allow_incompatible_override.rb:49
40
+ def on_send(node); end
41
+
42
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/allow_incompatible_override.rb:41
43
+ def override?(param0 = T.unsafe(nil)); end
44
+
45
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/allow_incompatible_override.rb:36
46
+ def sig?(param0); end
47
+
48
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/allow_incompatible_override.rb:27
49
+ def sig_dot_override?(param0 = T.unsafe(nil)); end
50
+ end
51
+
52
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/allow_incompatible_override.rb:22
53
+ RuboCop::Cop::Sorbet::AllowIncompatibleOverride::MSG = T.let(T.unsafe(nil), String)
54
+
55
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/allow_incompatible_override.rb:24
56
+ RuboCop::Cop::Sorbet::AllowIncompatibleOverride::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
57
+
58
+ # Disallows binding the return value of `T.any`, `T.all`, `T.enum`
59
+ # to a constant directly. To bind the value, one must use `T.type_alias`.
60
+ #
61
+ # @example
62
+ #
63
+ # # bad
64
+ # FooOrBar = T.any(Foo, Bar)
65
+ #
66
+ # # good
67
+ # FooOrBar = T.type_alias { T.any(Foo, Bar) }
68
+ #
69
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/binding_constant_without_type_alias.rb:18
70
+ class RuboCop::Cop::Sorbet::BindingConstantWithoutTypeAlias < ::RuboCop::Cop::Base
71
+ extend ::RuboCop::Cop::AutoCorrector
72
+
73
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/binding_constant_without_type_alias.rb:65
74
+ def on_casgn(node); end
75
+
76
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/binding_constant_without_type_alias.rb:48
77
+ def requires_type_alias?(param0 = T.unsafe(nil)); end
78
+
79
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/binding_constant_without_type_alias.rb:38
80
+ def type_alias_with_block?(param0 = T.unsafe(nil)); end
81
+
82
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/binding_constant_without_type_alias.rb:29
83
+ def type_alias_without_block(param0 = T.unsafe(nil)); end
84
+
85
+ private
86
+
87
+ # Given nested send nodes, returns the leaf with explicit receiver.
88
+ #
89
+ # i.e. in Ruby
90
+ #
91
+ # a.b.c.d.e.f
92
+ # ^^^
93
+ #
94
+ # i.e. in AST
95
+ #
96
+ # (send (send (send (send (send (send nil :a) :b) :c) :d) :e) :f)
97
+ # ^^^^^^^^^^^^^^^^^^^^^^^
98
+ #
99
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/binding_constant_without_type_alias.rb:98
100
+ def send_leaf(node); end
101
+ end
102
+
103
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/binding_constant_without_type_alias.rb:21
104
+ RuboCop::Cop::Sorbet::BindingConstantWithoutTypeAlias::MSG = T.let(T.unsafe(nil), String)
105
+
106
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/binding_constant_without_type_alias.rb:23
107
+ RuboCop::Cop::Sorbet::BindingConstantWithoutTypeAlias::WITHOUT_BLOCK_MSG = T.let(T.unsafe(nil), String)
108
+
109
+ # Disallow defining methods in blocks, to prevent running into issues
110
+ # caused by https://github.com/sorbet/sorbet/issues/3609.
111
+ #
112
+ # As a workaround, use `define_method` instead.
113
+ #
114
+ # The one exception is for `Class.new` blocks, as long as the result is
115
+ # assigned to a constant (i.e. as long as it is not an anonymous class).
116
+ # Another exception is for ActiveSupport::Concern `class_methods` blocks.
117
+ #
118
+ # @example
119
+ # # bad
120
+ # yielding_method do
121
+ # def bad(args)
122
+ # # ...
123
+ # end
124
+ # end
125
+ #
126
+ # # bad
127
+ # Class.new do
128
+ # def bad(args)
129
+ # # ...
130
+ # end
131
+ # end
132
+ #
133
+ # # good
134
+ # yielding_method do
135
+ # define_method(:good) do |args|
136
+ # # ...
137
+ # end
138
+ # end
139
+ #
140
+ # # good
141
+ # MyClass = Class.new do
142
+ # def good(args)
143
+ # # ...
144
+ # end
145
+ # end
146
+ #
147
+ # # good
148
+ # module SomeConcern
149
+ # extend ActiveSupport::Concern
150
+ #
151
+ # class_methods do
152
+ # def good(args)
153
+ # # ...
154
+ # end
155
+ # end
156
+ # end
157
+ #
158
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/block_method_definition.rb:55
159
+ class RuboCop::Cop::Sorbet::BlockMethodDefinition < ::RuboCop::Cop::Base
160
+ include ::RuboCop::Cop::Alignment
161
+ extend ::RuboCop::Cop::AutoCorrector
162
+
163
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/block_method_definition.rb:62
164
+ def activesupport_concern_class_methods_block?(param0 = T.unsafe(nil)); end
165
+
166
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/block_method_definition.rb:71
167
+ def module_extends_activesupport_concern?(param0 = T.unsafe(nil)); end
168
+
169
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/block_method_definition.rb:80
170
+ def on_block(node); end
171
+
172
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/block_method_definition.rb:94
173
+ def on_numblock(node); end
174
+
175
+ private
176
+
177
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/block_method_definition.rb:186
178
+ def adjust_for_closing_parenthesis(end_pos); end
179
+
180
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/block_method_definition.rb:106
181
+ def autocorrect_method_in_block(corrector, node); end
182
+
183
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/block_method_definition.rb:198
184
+ def closing_parenthesis_follows(source); end
185
+
186
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/block_method_definition.rb:175
187
+ def find_end_position_with_arguments(node); end
188
+
189
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/block_method_definition.rb:182
190
+ def find_end_position_without_arguments(node); end
191
+
192
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/block_method_definition.rb:167
193
+ def find_method_signature_end_position(node); end
194
+
195
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/block_method_definition.rb:143
196
+ def handle_method_without_body(node, indent); end
197
+
198
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/block_method_definition.rb:161
199
+ def handle_multiline_method_without_body(node); end
200
+
201
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/block_method_definition.rb:155
202
+ def handle_single_line_method(node, indent); end
203
+
204
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/block_method_definition.rb:98
205
+ def in_activesupport_concern_class_methods_block?(node); end
206
+
207
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/block_method_definition.rb:151
208
+ def single_line_method?(node); end
209
+
210
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/block_method_definition.rb:132
211
+ def transform_args_to_block_args(node); end
212
+ end
213
+
214
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/block_method_definition.rb:59
215
+ RuboCop::Cop::Sorbet::BlockMethodDefinition::MSG = T.let(T.unsafe(nil), String)
216
+
217
+ # Checks for the a mistaken variant of the "obsolete memoization pattern" that used to be required
218
+ # on every call, causing the memoized value to be discarded and recomputed on every call.
219
+ #
220
+ # This cop will correct it to read from the ivar instead of `nil`, which will memoize it correctly.
221
+ #
222
+ # The result of this correction will be the "obsolete memoization pattern", which can further be corrected by
223
+ # the `Sorbet/ObsoleteStrictMemoization` cop.
224
+ #
225
+ # See `Sorbet/ObsoleteStrictMemoization` for more details.
226
+ #
227
+ # @safety
228
+ # If the computation being memoized had side effects, calling it only once (instead of once on every call
229
+ # to the affected method) can be observed, and might be a breaking change.
230
+ #
231
+ # @example
232
+ # # bad
233
+ # sig { returns(Foo) }
234
+ # def foo
235
+ # # This `nil` is likely a mistake, causing the memoized value to be discarded and recomputed on every call.
236
+ # @foo = T.let(nil, T.nilable(Foo))
237
+ # @foo ||= some_computation
238
+ # end
239
+ #
240
+ # # good
241
+ # sig { returns(Foo) }
242
+ # def foo
243
+ # # This will now memoize the value as was likely intended, so `some_computation` is only ever called once.
244
+ # # ⚠️If `some_computation` has side effects, this might be a breaking change!
245
+ # @foo = T.let(@foo, T.nilable(Foo))
246
+ # @foo ||= some_computation
247
+ # end
248
+ #
249
+ # @see Sorbet/ObsoleteStrictMemoization
250
+ #
251
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/buggy_obsolete_strict_memoization.rb:42
252
+ class RuboCop::Cop::Sorbet::BuggyObsoleteStrictMemoization < ::RuboCop::Cop::Base
253
+ include ::RuboCop::Cop::RangeHelp
254
+ include ::RuboCop::Cop::MatchRange
255
+ include ::RuboCop::Cop::Alignment
256
+ include ::RuboCop::Cop::LineLengthHelp
257
+ include ::RuboCop::Cop::Sorbet::TargetSorbetVersion
258
+ extend ::RuboCop::Cop::AutoCorrector
259
+ extend ::RuboCop::Cop::Sorbet::TargetSorbetVersion::ClassMethods
260
+
261
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/buggy_obsolete_strict_memoization.rb:55
262
+ def buggy_legacy_memoization_pattern?(param0 = T.unsafe(nil)); end
263
+
264
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/buggy_obsolete_strict_memoization.rb:66
265
+ def on_begin(node); end
266
+
267
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/buggy_obsolete_strict_memoization.rb:77
268
+ def relevant_file?(file); end
269
+ end
270
+
271
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/buggy_obsolete_strict_memoization.rb:51
272
+ RuboCop::Cop::Sorbet::BuggyObsoleteStrictMemoization::MSG = T.let(T.unsafe(nil), String)
273
+
274
+ # Ensures that callback conditionals are bound to the right type
275
+ # so that they are type checked properly.
276
+ #
277
+ # @safety
278
+ # Auto-correction is unsafe because other libraries define similar style callbacks as Rails, but don't always need
279
+ # binding to the attached class. Auto-correcting those usages can lead to false positives and auto-correction
280
+ # introduces new typing errors.
281
+ #
282
+ # @example
283
+ #
284
+ # # bad
285
+ # class Post < ApplicationRecord
286
+ # before_create :do_it, if: -> { should_do_it? }
287
+ #
288
+ # def should_do_it?
289
+ # true
290
+ # end
291
+ # end
292
+ #
293
+ # # good
294
+ # class Post < ApplicationRecord
295
+ # before_create :do_it, if: -> {
296
+ # T.bind(self, Post)
297
+ # should_do_it?
298
+ # }
299
+ #
300
+ # def should_do_it?
301
+ # true
302
+ # end
303
+ # end
304
+ #
305
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/callback_conditionals_binding.rb:36
306
+ class RuboCop::Cop::Sorbet::CallbackConditionalsBinding < ::RuboCop::Cop::Base
307
+ include ::RuboCop::Cop::Alignment
308
+ extend ::RuboCop::Cop::AutoCorrector
309
+
310
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/callback_conditionals_binding.rb:82
311
+ def argumentless_unbound_callable_callback_conditional?(param0 = T.unsafe(nil)); end
312
+
313
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/callback_conditionals_binding.rb:92
314
+ def on_send(node); end
315
+
316
+ private
317
+
318
+ # Find the immediately enclosing class or module name.
319
+ # Returns `nil`` if the immediate parent (skipping begin if present) is not a class or module.
320
+ #
321
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/callback_conditionals_binding.rb:129
322
+ def immediately_enclosing_module_name(node); end
323
+ end
324
+
325
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/callback_conditionals_binding.rb:40
326
+ RuboCop::Cop::Sorbet::CallbackConditionalsBinding::MSG = T.let(T.unsafe(nil), String)
327
+
328
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/callback_conditionals_binding.rb:42
329
+ RuboCop::Cop::Sorbet::CallbackConditionalsBinding::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
330
+
331
+ # Ensure type parameters used in generic methods are always capitalized.
332
+ #
333
+ # @example
334
+ #
335
+ # # bad
336
+ # sig { type_parameters(:x).params(a: T.type_parameter(:x)).void }
337
+ # def foo(a); end
338
+ #
339
+ # # good
340
+ # sig { type_parameters(:X).params(a: T.type_parameter(:X)).void }
341
+ # def foo(a: 1); end
342
+ #
343
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/capitalized_type_parameters.rb:17
344
+ class RuboCop::Cop::Sorbet::CapitalizedTypeParameters < ::RuboCop::Cop::Base
345
+ include ::RuboCop::Cop::Sorbet::SignatureHelp
346
+ extend ::RuboCop::Cop::AutoCorrector
347
+
348
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/capitalized_type_parameters.rb:51
349
+ def on_csend(node); end
350
+
351
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/capitalized_type_parameters.rb:47
352
+ def on_send(node); end
353
+
354
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/capitalized_type_parameters.rb:35
355
+ def on_signature(node); end
356
+
357
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/capitalized_type_parameters.rb:31
358
+ def t_type_parameter?(param0 = T.unsafe(nil)); end
359
+
360
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/capitalized_type_parameters.rb:26
361
+ def type_parameters?(param0 = T.unsafe(nil)); end
362
+
363
+ private
364
+
365
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/capitalized_type_parameters.rb:57
366
+ def check_type_parameters_case(node); end
367
+ end
368
+
369
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/capitalized_type_parameters.rb:21
370
+ RuboCop::Cop::Sorbet::CapitalizedTypeParameters::MSG = T.let(T.unsafe(nil), String)
371
+
372
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/capitalized_type_parameters.rb:23
373
+ RuboCop::Cop::Sorbet::CapitalizedTypeParameters::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
374
+
375
+ # Disallows the usage of `checked(true)`. This usage could cause
376
+ # confusion; it could lead some people to believe that a method would be checked
377
+ # even if runtime checks have not been enabled on the class or globally.
378
+ # Additionally, in the event where checks are enabled, `checked(true)` would
379
+ # be redundant; only `checked(false)` or `soft` would change the behaviour.
380
+ #
381
+ # @example
382
+ #
383
+ # # bad
384
+ # sig { void.checked(true) }
385
+ #
386
+ # # good
387
+ # sig { void }
388
+ #
389
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/checked_true_in_signature.rb:19
390
+ class RuboCop::Cop::Sorbet::CheckedTrueInSignature < ::RuboCop::Cop::Base
391
+ include ::RuboCop::Cop::RangeHelp
392
+ include ::RuboCop::Cop::Sorbet::SignatureHelp
393
+
394
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/checked_true_in_signature.rb:24
395
+ def offending_node(param0); end
396
+
397
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/checked_true_in_signature.rb:35
398
+ def on_signature(node); end
399
+ end
400
+
401
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/checked_true_in_signature.rb:28
402
+ RuboCop::Cop::Sorbet::CheckedTrueInSignature::MESSAGE = T.let(T.unsafe(nil), String)
403
+
404
+ # Disallows the calls that are used to get constants fom Strings
405
+ # such as +constantize+, +const_get+, and +constants+.
406
+ #
407
+ # The goal of this cop is to make the code easier to statically analyze,
408
+ # more IDE-friendly, and more predictable. It leads to code that clearly
409
+ # expresses which values the constant can have.
410
+ #
411
+ # @example
412
+ #
413
+ # # bad
414
+ # class_name.constantize
415
+ #
416
+ # # bad
417
+ # constants.detect { |c| c.name == "User" }
418
+ #
419
+ # # bad
420
+ # const_get(class_name)
421
+ #
422
+ # # good
423
+ # case class_name
424
+ # when "User"
425
+ # User
426
+ # else
427
+ # raise ArgumentError
428
+ # end
429
+ #
430
+ # # good
431
+ # { "User" => User }.fetch(class_name)
432
+ #
433
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/constants_from_strings.rb:36
434
+ class RuboCop::Cop::Sorbet::ConstantsFromStrings < ::RuboCop::Cop::Base
435
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/constants_from_strings.rb:50
436
+ def on_csend(node); end
437
+
438
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/constants_from_strings.rb:47
439
+ def on_send(node); end
440
+ end
441
+
442
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/constants_from_strings.rb:37
443
+ RuboCop::Cop::Sorbet::ConstantsFromStrings::MSG = T.let(T.unsafe(nil), String)
444
+
445
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/constants_from_strings.rb:40
446
+ RuboCop::Cop::Sorbet::ConstantsFromStrings::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
447
+
448
+ # Checks for blank lines after signatures.
449
+ #
450
+ # @example
451
+ # # bad
452
+ # sig { void }
453
+ #
454
+ # def foo; end
455
+ #
456
+ # # good
457
+ # sig { void }
458
+ # def foo; end
459
+ #
460
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/empty_line_after_sig.rb:17
461
+ class RuboCop::Cop::Sorbet::EmptyLineAfterSig < ::RuboCop::Cop::Base
462
+ include ::RuboCop::Cop::RangeHelp
463
+ include ::RuboCop::Cop::Sorbet::SignatureHelp
464
+ extend ::RuboCop::Cop::AutoCorrector
465
+
466
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/empty_line_after_sig.rb:33
467
+ def on_signature(sig); end
468
+
469
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/empty_line_after_sig.rb:25
470
+ def sig_or_signable_method_definition?(param0 = T.unsafe(nil)); end
471
+
472
+ private
473
+
474
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/empty_line_after_sig.rb:62
475
+ def contains_only_rubocop_directives?(range); end
476
+
477
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/empty_line_after_sig.rb:66
478
+ def lines_between(node1, node2, buffer: T.unsafe(nil)); end
479
+
480
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/empty_line_after_sig.rb:58
481
+ def next_sibling(node); end
482
+ end
483
+
484
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/empty_line_after_sig.rb:22
485
+ RuboCop::Cop::Sorbet::EmptyLineAfterSig::MSG = T.let(T.unsafe(nil), String)
486
+
487
+ # Checks that the Sorbet sigil comes as the first magic comment in the file, after the encoding comment if any.
488
+ #
489
+ # The expected order for magic comments is: (en)?coding, typed, warn_indent then frozen_string_literal.
490
+ #
491
+ # The ordering is for consistency only, except for the encoding comment which must be first, if present.
492
+ #
493
+ # For example, the following bad ordering:
494
+ #
495
+ # ```ruby
496
+ # class Foo; end
497
+ # ```
498
+ #
499
+ # Will be corrected as:
500
+ #
501
+ # ```ruby
502
+ # class Foo; end
503
+ # ```
504
+ #
505
+ # Only `(en)?coding`, `typed`, `warn_indent` and `frozen_string_literal` magic comments are considered,
506
+ # other comments or magic comments are left in the same place.
507
+ #
508
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/sigils/enforce_sigil_order.rb:32
509
+ class RuboCop::Cop::Sorbet::EnforceSigilOrder < ::RuboCop::Cop::Sorbet::ValidSigil
510
+ include ::RuboCop::Cop::RangeHelp
511
+
512
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/sigils/enforce_sigil_order.rb:35
513
+ def on_new_investigation; end
514
+
515
+ protected
516
+
517
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/sigils/enforce_sigil_order.rb:93
518
+ def autocorrect(corrector); end
519
+
520
+ # checks
521
+ #
522
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/sigils/enforce_sigil_order.rb:70
523
+ def check_magic_comments_order(tokens); end
524
+
525
+ # Get all the tokens in `processed_source` that match `MAGIC_REGEX`
526
+ #
527
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/sigils/enforce_sigil_order.rb:62
528
+ def extract_magic_comments(processed_source); end
529
+ end
530
+
531
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/sigils/enforce_sigil_order.rb:46
532
+ RuboCop::Cop::Sorbet::EnforceSigilOrder::CODING_REGEX = T.let(T.unsafe(nil), Regexp)
533
+
534
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/sigils/enforce_sigil_order.rb:48
535
+ RuboCop::Cop::Sorbet::EnforceSigilOrder::FROZEN_REGEX = T.let(T.unsafe(nil), Regexp)
536
+
537
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/sigils/enforce_sigil_order.rb:47
538
+ RuboCop::Cop::Sorbet::EnforceSigilOrder::INDENT_REGEX = T.let(T.unsafe(nil), Regexp)
539
+
540
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/sigils/enforce_sigil_order.rb:57
541
+ RuboCop::Cop::Sorbet::EnforceSigilOrder::MAGIC_REGEX = T.let(T.unsafe(nil), Regexp)
542
+
543
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/sigils/enforce_sigil_order.rb:50
544
+ RuboCop::Cop::Sorbet::EnforceSigilOrder::PREFERRED_ORDER = T.let(T.unsafe(nil), Hash)
545
+
546
+ # Checks that every method definition and attribute accessor has a Sorbet signature.
547
+ #
548
+ # It also suggest an autocorrect with placeholders so the following code:
549
+ #
550
+ # ```
551
+ # def foo(a, b, c); end
552
+ # ```
553
+ #
554
+ # Will be corrected as:
555
+ #
556
+ # ```
557
+ # sig { params(a: T.untyped, b: T.untyped, c: T.untyped).returns(T.untyped)
558
+ # def foo(a, b, c); end
559
+ # ```
560
+ #
561
+ # You can configure the placeholders used by changing the following options:
562
+ #
563
+ # * `ParameterTypePlaceholder`: placeholders used for parameter types (default: 'T.untyped')
564
+ # * `ReturnTypePlaceholder`: placeholders used for return types (default: 'T.untyped')
565
+ # * `Style`: signature style to enforce - 'sig' for sig blocks, 'rbs' for RBS comments, 'both' to allow either (default: 'sig')
566
+ #
567
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb:26
568
+ class RuboCop::Cop::Sorbet::EnforceSignatures < ::RuboCop::Cop::Base
569
+ include ::RuboCop::Cop::Sorbet::SignatureHelp
570
+ extend ::RuboCop::Cop::AutoCorrector
571
+
572
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb:33
573
+ def accessor?(param0 = T.unsafe(nil)); end
574
+
575
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb:37
576
+ def on_def(node); end
577
+
578
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb:41
579
+ def on_defs(node); end
580
+
581
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb:53
582
+ def on_new_investigation; end
583
+
584
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb:45
585
+ def on_send(node); end
586
+
587
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb:49
588
+ def on_signature(node); end
589
+
590
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb:59
591
+ def scope(node); end
592
+
593
+ private
594
+
595
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb:154
596
+ def add_accessor_parameter_if_needed(suggest, symbol, method); end
597
+
598
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb:176
599
+ def allow_rbs?; end
600
+
601
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb:113
602
+ def autocorrect_with_signature_type(corrector, node, type); end
603
+
604
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb:68
605
+ def check_node(node); end
606
+
607
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb:119
608
+ def create_signature_suggestion(node, type); end
609
+
610
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb:168
611
+ def param_type_placeholder; end
612
+
613
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb:146
614
+ def populate_accessor_suggestion(suggest, node); end
615
+
616
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb:136
617
+ def populate_method_definition_suggestion(suggest, node); end
618
+
619
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb:128
620
+ def populate_signature_suggestion(suggest, node); end
621
+
622
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb:109
623
+ def rbs_checker; end
624
+
625
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb:172
626
+ def return_type_placeholder; end
627
+
628
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb:160
629
+ def set_void_return_for_writer(suggest, method); end
630
+
631
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb:105
632
+ def sig_checker; end
633
+
634
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb:180
635
+ def signature_style; end
636
+
637
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb:164
638
+ def writer_or_accessor?(method); end
639
+ end
640
+
641
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb:209
642
+ class RuboCop::Cop::Sorbet::EnforceSignatures::RBSSignatureChecker < ::RuboCop::Cop::Sorbet::EnforceSignatures::SignatureChecker
643
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb:212
644
+ def signature_node(node); end
645
+
646
+ private
647
+
648
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb:225
649
+ def find_non_send_ancestor(node); end
650
+ end
651
+
652
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb:210
653
+ RuboCop::Cop::Sorbet::EnforceSignatures::RBSSignatureChecker::RBS_COMMENT_REGEX = T.let(T.unsafe(nil), Regexp)
654
+
655
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb:285
656
+ class RuboCop::Cop::Sorbet::EnforceSignatures::RBSSuggestion
657
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb:288
658
+ def initialize(indent); end
659
+
660
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb:286
661
+ def has_block; end
662
+
663
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb:286
664
+ def has_block=(_arg0); end
665
+
666
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb:286
667
+ def params; end
668
+
669
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb:286
670
+ def params=(_arg0); end
671
+
672
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb:286
673
+ def returns; end
674
+
675
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb:286
676
+ def returns=(_arg0); end
677
+
678
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb:295
679
+ def to_autocorrect; end
680
+
681
+ private
682
+
683
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb:301
684
+ def generate_signature; end
685
+ end
686
+
687
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb:231
688
+ class RuboCop::Cop::Sorbet::EnforceSignatures::SigSignatureChecker < ::RuboCop::Cop::Sorbet::EnforceSignatures::SignatureChecker
689
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb:232
690
+ def initialize(processed_source); end
691
+
692
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb:245
693
+ def clear_signature(scope); end
694
+
695
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb:241
696
+ def on_signature(node, scope); end
697
+
698
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb:237
699
+ def signature_node(scope); end
700
+ end
701
+
702
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb:250
703
+ class RuboCop::Cop::Sorbet::EnforceSignatures::SigSuggestion
704
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb:253
705
+ def initialize(indent, param_placeholder, return_placeholder); end
706
+
707
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb:251
708
+ def params; end
709
+
710
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb:251
711
+ def params=(_arg0); end
712
+
713
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb:251
714
+ def returns; end
715
+
716
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb:251
717
+ def returns=(_arg0); end
718
+
719
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb:261
720
+ def to_autocorrect; end
721
+
722
+ private
723
+
724
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb:267
725
+ def generate_params; end
726
+
727
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb:274
728
+ def generate_return; end
729
+ end
730
+
731
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb:195
732
+ class RuboCop::Cop::Sorbet::EnforceSignatures::SignatureChecker
733
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb:196
734
+ def initialize(processed_source); end
735
+
736
+ protected
737
+
738
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb:204
739
+ def preceding_comments(node); end
740
+
741
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb:202
742
+ def processed_source; end
743
+ end
744
+
745
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb:30
746
+ RuboCop::Cop::Sorbet::EnforceSignatures::VALID_STYLES = T.let(T.unsafe(nil), Array)
747
+
748
+ # Checks that there is only one Sorbet sigil in a given file
749
+ #
750
+ # For example, the following class with two sigils
751
+ #
752
+ # ```ruby
753
+ # class Foo; end
754
+ # ```
755
+ #
756
+ # Will be corrected as:
757
+ #
758
+ # ```ruby
759
+ # class Foo; end
760
+ # ```
761
+ #
762
+ # Other comments or magic comments are left in place.
763
+ #
764
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/sigils/enforce_single_sigil.rb:26
765
+ class RuboCop::Cop::Sorbet::EnforceSingleSigil < ::RuboCop::Cop::Sorbet::ValidSigil
766
+ include ::RuboCop::Cop::RangeHelp
767
+
768
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/sigils/enforce_single_sigil.rb:29
769
+ def on_new_investigation; end
770
+
771
+ protected
772
+
773
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/sigils/enforce_single_sigil.rb:50
774
+ def autocorrect(corrector); end
775
+
776
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/sigils/enforce_single_sigil.rb:44
777
+ def extract_all_sigils(processed_source); end
778
+ end
779
+
780
+ # Makes the Sorbet `false` sigil mandatory in all files.
781
+ #
782
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/sigils/false_sigil.rb:10
783
+ class RuboCop::Cop::Sorbet::FalseSigil < ::RuboCop::Cop::Sorbet::HasSigil
784
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/sigils/false_sigil.rb:11
785
+ def minimum_strictness; end
786
+ end
787
+
788
+ # Disallow including the `Comparable` module in `T::Enum`.
789
+ #
790
+ # @example
791
+ #
792
+ # # bad
793
+ # class Priority < T::Enum
794
+ # include Comparable
795
+ #
796
+ # enums do
797
+ # High = new(3)
798
+ # Medium = new(2)
799
+ # Low = new(1)
800
+ # end
801
+ #
802
+ # def <=>(other)
803
+ # serialize <=> other.serialize
804
+ # end
805
+ # end
806
+ #
807
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/t_enum/forbid_comparable_t_enum.rb:24
808
+ class RuboCop::Cop::Sorbet::ForbidComparableTEnum < ::RuboCop::Cop::Base
809
+ include ::RuboCop::Cop::Sorbet::TEnum
810
+
811
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/t_enum/forbid_comparable_t_enum.rb:32
812
+ def mix_in_comparable?(param0 = T.unsafe(nil)); end
813
+
814
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/t_enum/forbid_comparable_t_enum.rb:36
815
+ def on_send(node); end
816
+ end
817
+
818
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/t_enum/forbid_comparable_t_enum.rb:27
819
+ RuboCop::Cop::Sorbet::ForbidComparableTEnum::MSG = T.let(T.unsafe(nil), String)
820
+
821
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/t_enum/forbid_comparable_t_enum.rb:29
822
+ RuboCop::Cop::Sorbet::ForbidComparableTEnum::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
823
+
824
+ # Ensures RBI shims do not include a call to extend T::Sig
825
+ # or to extend T::Helpers
826
+ #
827
+ # @example
828
+ #
829
+ # # bad
830
+ # module SomeModule
831
+ # extend T::Sig
832
+ # extend T::Helpers
833
+ #
834
+ # sig { returns(String) }
835
+ # def foo; end
836
+ # end
837
+ #
838
+ # # good
839
+ # module SomeModule
840
+ # sig { returns(String) }
841
+ # def foo; end
842
+ # end
843
+ #
844
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/rbi/forbid_extend_t_sig_helpers_in_shims.rb:25
845
+ class RuboCop::Cop::Sorbet::ForbidExtendTSigHelpersInShims < ::RuboCop::Cop::Base
846
+ include ::RuboCop::Cop::RangeHelp
847
+ extend ::RuboCop::Cop::AutoCorrector
848
+
849
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/rbi/forbid_extend_t_sig_helpers_in_shims.rb:33
850
+ def extend_t_sig_or_helpers?(param0 = T.unsafe(nil)); end
851
+
852
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/rbi/forbid_extend_t_sig_helpers_in_shims.rb:37
853
+ def on_send(node); end
854
+ end
855
+
856
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/rbi/forbid_extend_t_sig_helpers_in_shims.rb:29
857
+ RuboCop::Cop::Sorbet::ForbidExtendTSigHelpersInShims::MSG = T.let(T.unsafe(nil), String)
858
+
859
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/rbi/forbid_extend_t_sig_helpers_in_shims.rb:30
860
+ RuboCop::Cop::Sorbet::ForbidExtendTSigHelpersInShims::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
861
+
862
+ # Correct `send` expressions in include statements by constant literals.
863
+ #
864
+ # Sorbet, the static checker, is not (yet) able to support constructs on the
865
+ # following form:
866
+ #
867
+ # ```ruby
868
+ # class MyClass
869
+ # include send_expr
870
+ # end
871
+ # ```
872
+ #
873
+ # Multiple occurences of this can be found in Shopify's code base like:
874
+ #
875
+ # ```ruby
876
+ # include Rails.application.routes.url_helpers
877
+ # ```
878
+ # or
879
+ # ```ruby
880
+ # include Polaris::Engine.helpers
881
+ # ```
882
+ #
883
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_include_const_literal.rb:29
884
+ class RuboCop::Cop::Sorbet::ForbidIncludeConstLiteral < ::RuboCop::Cop::Base
885
+ extend ::RuboCop::Cop::AutoCorrector
886
+
887
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_include_const_literal.rb:36
888
+ def dynamic_inclusion?(param0 = T.unsafe(nil)); end
889
+
890
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_include_const_literal.rb:40
891
+ def on_send(node); end
892
+
893
+ private
894
+
895
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_include_const_literal.rb:52
896
+ def neither_const_nor_self?(node); end
897
+
898
+ # Returns true if the node is within a module declaration that is not anonymous.
899
+ #
900
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_include_const_literal.rb:57
901
+ def within_onymous_module?(node); end
902
+ end
903
+
904
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_include_const_literal.rb:32
905
+ RuboCop::Cop::Sorbet::ForbidIncludeConstLiteral::MSG = T.let(T.unsafe(nil), String)
906
+
907
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_include_const_literal.rb:33
908
+ RuboCop::Cop::Sorbet::ForbidIncludeConstLiteral::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
909
+
910
+ # Check that code does not call `mixes_in_class_methods` from Sorbet `T::Helpers`.
911
+ #
912
+ # Good:
913
+ #
914
+ # ```
915
+ # module M
916
+ # extend ActiveSupport::Concern
917
+ #
918
+ # class_methods do
919
+ # ...
920
+ # end
921
+ # end
922
+ # ```
923
+ #
924
+ # Bad:
925
+ #
926
+ # ```
927
+ # module M
928
+ # extend T::Helpers
929
+ #
930
+ # module ClassMethods
931
+ # ...
932
+ # end
933
+ #
934
+ # mixes_in_class_methods(ClassMethods)
935
+ # end
936
+ # ```
937
+ #
938
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_mixes_in_class_methods.rb:33
939
+ class RuboCop::Cop::Sorbet::ForbidMixesInClassMethods < ::RuboCop::Cop::Base
940
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_mixes_in_class_methods.rb:38
941
+ def mixes_in_class_methods?(param0 = T.unsafe(nil)); end
942
+
943
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_mixes_in_class_methods.rb:45
944
+ def on_csend(node); end
945
+
946
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_mixes_in_class_methods.rb:42
947
+ def on_send(node); end
948
+ end
949
+
950
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_mixes_in_class_methods.rb:34
951
+ RuboCop::Cop::Sorbet::ForbidMixesInClassMethods::MSG = T.let(T.unsafe(nil), String)
952
+
953
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_mixes_in_class_methods.rb:35
954
+ RuboCop::Cop::Sorbet::ForbidMixesInClassMethods::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
955
+
956
+ # Makes sure that RBI files are always located under the defined allowed paths.
957
+ #
958
+ # Options:
959
+ #
960
+ # * `AllowedPaths`: A list of the paths where RBI files are allowed (default: ["rbi/**", "sorbet/rbi/**"])
961
+ #
962
+ # @example
963
+ # # bad
964
+ # # lib/some_file.rbi
965
+ # # other_file.rbi
966
+ #
967
+ # # good
968
+ # # rbi/external_interface.rbi
969
+ # # sorbet/rbi/some_file.rbi
970
+ # # sorbet/rbi/any/path/for/file.rbi
971
+ #
972
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/rbi/forbid_rbi_outside_of_allowed_paths.rb:23
973
+ class RuboCop::Cop::Sorbet::ForbidRBIOutsideOfAllowedPaths < ::RuboCop::Cop::Base
974
+ include ::RuboCop::Cop::RangeHelp
975
+
976
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/rbi/forbid_rbi_outside_of_allowed_paths.rb:26
977
+ def on_new_investigation; end
978
+
979
+ private
980
+
981
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/rbi/forbid_rbi_outside_of_allowed_paths.rb:48
982
+ def allowed_paths; end
983
+ end
984
+
985
+ # Check that definitions do not use a `sig` block.
986
+ #
987
+ # Good:
988
+ #
989
+ # ```
990
+ # #: -> void
991
+ # def foo; end
992
+ # ```
993
+ #
994
+ # Bad:
995
+ #
996
+ # ```
997
+ # sig { void }
998
+ # def foo; end
999
+ # ```
1000
+ #
1001
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/forbid_sig.rb:23
1002
+ class RuboCop::Cop::Sorbet::ForbidSig < ::RuboCop::Cop::Base
1003
+ include ::RuboCop::Cop::Sorbet::SignatureHelp
1004
+
1005
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/forbid_sig.rb:28
1006
+ def on_signature(node); end
1007
+ end
1008
+
1009
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/forbid_sig.rb:26
1010
+ RuboCop::Cop::Sorbet::ForbidSig::MSG = T.let(T.unsafe(nil), String)
1011
+
1012
+ # Check that definitions do not use a `sig` block.
1013
+ #
1014
+ # Good:
1015
+ #
1016
+ # ```
1017
+ # #: -> void
1018
+ # def foo; end
1019
+ # ```
1020
+ #
1021
+ # Bad:
1022
+ #
1023
+ # ```
1024
+ # T::Sig.sig { void }
1025
+ # def foo; end
1026
+ # ```
1027
+ #
1028
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/forbid_sig_with_runtime.rb:23
1029
+ class RuboCop::Cop::Sorbet::ForbidSigWithRuntime < ::RuboCop::Cop::Base
1030
+ include ::RuboCop::Cop::Sorbet::SignatureHelp
1031
+
1032
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/forbid_sig_with_runtime.rb:28
1033
+ def on_signature(node); end
1034
+ end
1035
+
1036
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/forbid_sig_with_runtime.rb:26
1037
+ RuboCop::Cop::Sorbet::ForbidSigWithRuntime::MSG = T.let(T.unsafe(nil), String)
1038
+
1039
+ # Check that `sig` is used instead of `T::Sig::WithoutRuntime.sig`.
1040
+ #
1041
+ # Good:
1042
+ #
1043
+ # ```
1044
+ # sig { void }
1045
+ # def foo; end
1046
+ # ```
1047
+ #
1048
+ # Bad:
1049
+ #
1050
+ # ```
1051
+ # T::Sig::WithoutRuntime.sig { void }
1052
+ # def foo; end
1053
+ # ```
1054
+ #
1055
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/forbid_sig_without_runtime.rb:23
1056
+ class RuboCop::Cop::Sorbet::ForbidSigWithoutRuntime < ::RuboCop::Cop::Base
1057
+ include ::RuboCop::Cop::Sorbet::SignatureHelp
1058
+ extend ::RuboCop::Cop::AutoCorrector
1059
+
1060
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/forbid_sig_without_runtime.rb:29
1061
+ def on_signature(node); end
1062
+ end
1063
+
1064
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/forbid_sig_without_runtime.rb:27
1065
+ RuboCop::Cop::Sorbet::ForbidSigWithoutRuntime::MSG = T.let(T.unsafe(nil), String)
1066
+
1067
+ # Correct superclass `send` expressions by constant literals.
1068
+ #
1069
+ # Sorbet, the static checker, is not (yet) able to support constructs on the
1070
+ # following form:
1071
+ #
1072
+ # ```ruby
1073
+ # class Foo < send_expr; end
1074
+ # ```
1075
+ #
1076
+ # Multiple occurences of this can be found in Shopify's code base like:
1077
+ #
1078
+ # ```ruby
1079
+ # class ShopScope < Component::TrustedIdScope[ShopIdentity::ShopId]
1080
+ # ```
1081
+ # or
1082
+ # ```ruby
1083
+ # class ApiClientEligibility < Struct.new(:api_client, :match_results, :shop)
1084
+ # ```
1085
+ #
1086
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_superclass_const_literal.rb:28
1087
+ class RuboCop::Cop::Sorbet::ForbidSuperclassConstLiteral < ::RuboCop::Cop::Base
1088
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_superclass_const_literal.rb:32
1089
+ def dynamic_superclass?(param0 = T.unsafe(nil)); end
1090
+
1091
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_superclass_const_literal.rb:36
1092
+ def on_class(node); end
1093
+ end
1094
+
1095
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_superclass_const_literal.rb:29
1096
+ RuboCop::Cop::Sorbet::ForbidSuperclassConstLiteral::MSG = T.let(T.unsafe(nil), String)
1097
+
1098
+ # Disallows using `T.absurd` anywhere.
1099
+ #
1100
+ # @example
1101
+ #
1102
+ # # bad
1103
+ # T.absurd(foo)
1104
+ #
1105
+ # # good
1106
+ # x #: absurd
1107
+ #
1108
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_absurd.rb:17
1109
+ class RuboCop::Cop::Sorbet::ForbidTAbsurd < ::RuboCop::Cop::Base
1110
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_absurd.rb:27
1111
+ def on_csend(node); end
1112
+
1113
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_absurd.rb:24
1114
+ def on_send(node); end
1115
+
1116
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_absurd.rb:22
1117
+ def t_absurd?(param0 = T.unsafe(nil)); end
1118
+ end
1119
+
1120
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_absurd.rb:18
1121
+ RuboCop::Cop::Sorbet::ForbidTAbsurd::MSG = T.let(T.unsafe(nil), String)
1122
+
1123
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_absurd.rb:19
1124
+ RuboCop::Cop::Sorbet::ForbidTAbsurd::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
1125
+
1126
+ # Detect and autocorrect `T.any(..., NilClass, ...)` to `T.nilable(...)`
1127
+ #
1128
+ # @example
1129
+ #
1130
+ # # bad
1131
+ # T.any(String, NilClass)
1132
+ # T.any(NilClass, String)
1133
+ # T.any(NilClass, Symbol, String)
1134
+ #
1135
+ # # good
1136
+ # T.nilable(String)
1137
+ # T.nilable(String)
1138
+ # T.nilable(T.any(Symbol, String))
1139
+ #
1140
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_any_with_nil.rb:19
1141
+ class RuboCop::Cop::Sorbet::ForbidTAnyWithNil < ::RuboCop::Cop::Base
1142
+ extend ::RuboCop::Cop::AutoCorrector
1143
+
1144
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_any_with_nil.rb:31
1145
+ def nil_const_node?(param0 = T.unsafe(nil)); end
1146
+
1147
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_any_with_nil.rb:48
1148
+ def on_csend(node); end
1149
+
1150
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_any_with_nil.rb:35
1151
+ def on_send(node); end
1152
+
1153
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_any_with_nil.rb:26
1154
+ def t_any_call?(param0 = T.unsafe(nil)); end
1155
+
1156
+ private
1157
+
1158
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_any_with_nil.rb:52
1159
+ def build_replacement(non_nil_args); end
1160
+ end
1161
+
1162
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_any_with_nil.rb:22
1163
+ RuboCop::Cop::Sorbet::ForbidTAnyWithNil::MSG = T.let(T.unsafe(nil), String)
1164
+
1165
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_any_with_nil.rb:23
1166
+ RuboCop::Cop::Sorbet::ForbidTAnyWithNil::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
1167
+
1168
+ # Disallows using `T.bind` anywhere.
1169
+ #
1170
+ # @example
1171
+ #
1172
+ # # bad
1173
+ # T.bind(self, Integer)
1174
+ #
1175
+ # # good
1176
+ # #: self as Integer
1177
+ #
1178
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_bind.rb:17
1179
+ class RuboCop::Cop::Sorbet::ForbidTBind < ::RuboCop::Cop::Base
1180
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_bind.rb:27
1181
+ def on_csend(node); end
1182
+
1183
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_bind.rb:24
1184
+ def on_send(node); end
1185
+
1186
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_bind.rb:22
1187
+ def t_bind?(param0 = T.unsafe(nil)); end
1188
+ end
1189
+
1190
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_bind.rb:18
1191
+ RuboCop::Cop::Sorbet::ForbidTBind::MSG = T.let(T.unsafe(nil), String)
1192
+
1193
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_bind.rb:19
1194
+ RuboCop::Cop::Sorbet::ForbidTBind::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
1195
+
1196
+ # Disallows using `T.cast` anywhere.
1197
+ #
1198
+ # @example
1199
+ #
1200
+ # # bad
1201
+ # T.cast(foo, Integer)
1202
+ #
1203
+ # # good
1204
+ # foo #: as Integer
1205
+ #
1206
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_cast.rb:17
1207
+ class RuboCop::Cop::Sorbet::ForbidTCast < ::RuboCop::Cop::Base
1208
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_cast.rb:27
1209
+ def on_csend(node); end
1210
+
1211
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_cast.rb:24
1212
+ def on_send(node); end
1213
+
1214
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_cast.rb:22
1215
+ def t_cast?(param0 = T.unsafe(nil)); end
1216
+ end
1217
+
1218
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_cast.rb:18
1219
+ RuboCop::Cop::Sorbet::ForbidTCast::MSG = T.let(T.unsafe(nil), String)
1220
+
1221
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_cast.rb:19
1222
+ RuboCop::Cop::Sorbet::ForbidTCast::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
1223
+
1224
+ # Disallow using `T::Enum`.
1225
+ #
1226
+ # @example
1227
+ #
1228
+ # # bad
1229
+ # class MyEnum < T::Enum
1230
+ # enums do
1231
+ # A = new
1232
+ # B = new
1233
+ # end
1234
+ # end
1235
+ #
1236
+ # # good
1237
+ # class MyEnum
1238
+ # A = "a"
1239
+ # B = "b"
1240
+ # C = "c"
1241
+ # end
1242
+ #
1243
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_enum.rb:26
1244
+ class RuboCop::Cop::Sorbet::ForbidTEnum < ::RuboCop::Cop::Base
1245
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_enum.rb:34
1246
+ def on_class(node); end
1247
+
1248
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_enum.rb:30
1249
+ def t_enum?(param0 = T.unsafe(nil)); end
1250
+ end
1251
+
1252
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_enum.rb:27
1253
+ RuboCop::Cop::Sorbet::ForbidTEnum::MSG = T.let(T.unsafe(nil), String)
1254
+
1255
+ # Forbids `extend T::Helpers` and `include T::Helpers` in classes and modules.
1256
+ #
1257
+ # This is useful when using RBS or RBS-inline syntax for type signatures,
1258
+ # where `T::Helpers` is not needed and including it is redundant.
1259
+ #
1260
+ # @example
1261
+ #
1262
+ # # bad
1263
+ # class Example
1264
+ # extend T::Helpers
1265
+ # end
1266
+ #
1267
+ # # bad
1268
+ # module Example
1269
+ # include T::Helpers
1270
+ # end
1271
+ #
1272
+ # # good
1273
+ # class Example
1274
+ # end
1275
+ #
1276
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_helpers.rb:26
1277
+ class RuboCop::Cop::Sorbet::ForbidTHelpers < ::RuboCop::Cop::Base
1278
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_helpers.rb:40
1279
+ def on_csend(node); end
1280
+
1281
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_helpers.rb:35
1282
+ def on_send(node); end
1283
+
1284
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_helpers.rb:31
1285
+ def t_helpers?(param0 = T.unsafe(nil)); end
1286
+ end
1287
+
1288
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_helpers.rb:27
1289
+ RuboCop::Cop::Sorbet::ForbidTHelpers::MSG = T.let(T.unsafe(nil), String)
1290
+
1291
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_helpers.rb:28
1292
+ RuboCop::Cop::Sorbet::ForbidTHelpers::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
1293
+
1294
+ # Disallows using `T.let` anywhere.
1295
+ #
1296
+ # @example
1297
+ #
1298
+ # # bad
1299
+ # T.let(foo, Integer)
1300
+ #
1301
+ # # good
1302
+ # foo #: Integer
1303
+ #
1304
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_let.rb:17
1305
+ class RuboCop::Cop::Sorbet::ForbidTLet < ::RuboCop::Cop::Base
1306
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_let.rb:27
1307
+ def on_csend(node); end
1308
+
1309
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_let.rb:24
1310
+ def on_send(node); end
1311
+
1312
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_let.rb:22
1313
+ def t_let?(param0 = T.unsafe(nil)); end
1314
+ end
1315
+
1316
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_let.rb:18
1317
+ RuboCop::Cop::Sorbet::ForbidTLet::MSG = T.let(T.unsafe(nil), String)
1318
+
1319
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_let.rb:19
1320
+ RuboCop::Cop::Sorbet::ForbidTLet::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
1321
+
1322
+ # Disallows using `T.must` anywhere.
1323
+ #
1324
+ # @example
1325
+ #
1326
+ # # bad
1327
+ # T.must(foo)
1328
+ #
1329
+ # # good
1330
+ # foo #: as !nil
1331
+ #
1332
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_must.rb:17
1333
+ class RuboCop::Cop::Sorbet::ForbidTMust < ::RuboCop::Cop::Base
1334
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_must.rb:27
1335
+ def on_csend(node); end
1336
+
1337
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_must.rb:24
1338
+ def on_send(node); end
1339
+
1340
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_must.rb:22
1341
+ def t_must?(param0 = T.unsafe(nil)); end
1342
+ end
1343
+
1344
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_must.rb:18
1345
+ RuboCop::Cop::Sorbet::ForbidTMust::MSG = T.let(T.unsafe(nil), String)
1346
+
1347
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_must.rb:19
1348
+ RuboCop::Cop::Sorbet::ForbidTMust::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
1349
+
1350
+ # Forbids `extend T::Sig` and `include T::Sig` in classes and modules.
1351
+ #
1352
+ # This is useful when using RBS or RBS-inline syntax for type signatures,
1353
+ # where `T::Sig` is not needed and including it is redundant.
1354
+ #
1355
+ # @example
1356
+ #
1357
+ # # bad
1358
+ # class Example
1359
+ # extend T::Sig
1360
+ # end
1361
+ #
1362
+ # # bad
1363
+ # module Example
1364
+ # include T::Sig
1365
+ # end
1366
+ #
1367
+ # # good
1368
+ # class Example
1369
+ # end
1370
+ #
1371
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_sig.rb:26
1372
+ class RuboCop::Cop::Sorbet::ForbidTSig < ::RuboCop::Cop::Base
1373
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_sig.rb:40
1374
+ def on_csend(node); end
1375
+
1376
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_sig.rb:35
1377
+ def on_send(node); end
1378
+
1379
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_sig.rb:31
1380
+ def t_sig?(param0 = T.unsafe(nil)); end
1381
+ end
1382
+
1383
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_sig.rb:27
1384
+ RuboCop::Cop::Sorbet::ForbidTSig::MSG = T.let(T.unsafe(nil), String)
1385
+
1386
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_sig.rb:28
1387
+ RuboCop::Cop::Sorbet::ForbidTSig::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
1388
+
1389
+ # Disallow using `T::Struct` and `T::Props`.
1390
+ #
1391
+ # @example
1392
+ #
1393
+ # # bad
1394
+ # class MyStruct < T::Struct
1395
+ # const :foo, String
1396
+ # prop :bar, Integer, default: 0
1397
+ #
1398
+ # def some_method; end
1399
+ # end
1400
+ #
1401
+ # # good
1402
+ # class MyStruct
1403
+ # extend T::Sig
1404
+ #
1405
+ # sig { returns(String) }
1406
+ # attr_reader :foo
1407
+ #
1408
+ # sig { returns(Integer) }
1409
+ # attr_accessor :bar
1410
+ #
1411
+ # sig { params(foo: String, bar: Integer) }
1412
+ # def initialize(foo:, bar: 0)
1413
+ # @foo = foo
1414
+ # @bar = bar
1415
+ # end
1416
+ #
1417
+ # def some_method; end
1418
+ # end
1419
+ #
1420
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_struct.rb:38
1421
+ class RuboCop::Cop::Sorbet::ForbidTStruct < ::RuboCop::Cop::Base
1422
+ include ::RuboCop::Cop::Alignment
1423
+ include ::RuboCop::Cop::RangeHelp
1424
+ include ::RuboCop::Cop::CommentsHelp
1425
+ extend ::RuboCop::Cop::AutoCorrector
1426
+
1427
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_struct.rb:169
1428
+ def on_class(node); end
1429
+
1430
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_struct.rb:210
1431
+ def on_send(node); end
1432
+
1433
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_struct.rb:167
1434
+ def t_props?(param0 = T.unsafe(nil)); end
1435
+
1436
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_struct.rb:162
1437
+ def t_struct?(param0 = T.unsafe(nil)); end
1438
+
1439
+ private
1440
+
1441
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_struct.rb:218
1442
+ def initialize_method(indent, props); end
1443
+
1444
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_struct.rb:258
1445
+ def previous_line_blank?(node); end
1446
+ end
1447
+
1448
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_struct.rb:47
1449
+ RuboCop::Cop::Sorbet::ForbidTStruct::MSG_PROPS = T.let(T.unsafe(nil), String)
1450
+
1451
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_struct.rb:46
1452
+ RuboCop::Cop::Sorbet::ForbidTStruct::MSG_STRUCT = T.let(T.unsafe(nil), String)
1453
+
1454
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_struct.rb:104
1455
+ class RuboCop::Cop::Sorbet::ForbidTStruct::Property
1456
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_struct.rb:107
1457
+ def initialize(node, kind, name, type, default:, factory:); end
1458
+
1459
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_struct.rb:123
1460
+ def attr_accessor; end
1461
+
1462
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_struct.rb:119
1463
+ def attr_sig; end
1464
+
1465
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_struct.rb:105
1466
+ def default; end
1467
+
1468
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_struct.rb:105
1469
+ def factory; end
1470
+
1471
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_struct.rb:144
1472
+ def initialize_assign; end
1473
+
1474
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_struct.rb:131
1475
+ def initialize_param; end
1476
+
1477
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_struct.rb:127
1478
+ def initialize_sig_param; end
1479
+
1480
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_struct.rb:105
1481
+ def kind; end
1482
+
1483
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_struct.rb:105
1484
+ def name; end
1485
+
1486
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_struct.rb:151
1487
+ def nilable?; end
1488
+
1489
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_struct.rb:105
1490
+ def node; end
1491
+
1492
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_struct.rb:155
1493
+ def type; end
1494
+ end
1495
+
1496
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_struct.rb:44
1497
+ RuboCop::Cop::Sorbet::ForbidTStruct::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
1498
+
1499
+ # This class walks down the class body of a T::Struct and collects all the properties that will need to be
1500
+ # translated into `attr_reader` and `attr_accessor` methods.
1501
+ #
1502
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_struct.rb:51
1503
+ class RuboCop::Cop::Sorbet::ForbidTStruct::TStructWalker
1504
+ include ::RuboCop::AST::Traversal
1505
+ extend ::RuboCop::AST::NodePattern::Macros
1506
+
1507
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_struct.rb:57
1508
+ def initialize; end
1509
+
1510
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_struct.rb:63
1511
+ def extend_t_sig?(param0 = T.unsafe(nil)); end
1512
+
1513
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_struct.rb:55
1514
+ def has_extend_t_sig; end
1515
+
1516
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_struct.rb:72
1517
+ def on_send(node); end
1518
+
1519
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_struct.rb:55
1520
+ def props; end
1521
+
1522
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_struct.rb:68
1523
+ def t_struct_prop?(param0 = T.unsafe(nil)); end
1524
+ end
1525
+
1526
+ # Disallows using `T.type_alias` anywhere.
1527
+ #
1528
+ # @example
1529
+ #
1530
+ # # bad
1531
+ # STRING_OR_INTEGER = T.type_alias { T.any(Integer, String) }
1532
+ #
1533
+ # # good
1534
+ # #: type string_or_integer = Integer | String
1535
+ #
1536
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_type_alias.rb:17
1537
+ class RuboCop::Cop::Sorbet::ForbidTTypeAlias < ::RuboCop::Cop::Base
1538
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_type_alias.rb:23
1539
+ def on_block(node); end
1540
+
1541
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_type_alias.rb:26
1542
+ def on_numblock(node); end
1543
+
1544
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_type_alias.rb:21
1545
+ def t_type_alias?(param0 = T.unsafe(nil)); end
1546
+ end
1547
+
1548
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_type_alias.rb:18
1549
+ RuboCop::Cop::Sorbet::ForbidTTypeAlias::MSG = T.let(T.unsafe(nil), String)
1550
+
1551
+ # Disallows using `T.unsafe` anywhere.
1552
+ #
1553
+ # @example
1554
+ #
1555
+ # # bad
1556
+ # T.unsafe(foo)
1557
+ #
1558
+ # # good
1559
+ # foo
1560
+ #
1561
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_unsafe.rb:17
1562
+ class RuboCop::Cop::Sorbet::ForbidTUnsafe < ::RuboCop::Cop::Base
1563
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_unsafe.rb:27
1564
+ def on_csend(node); end
1565
+
1566
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_unsafe.rb:24
1567
+ def on_send(node); end
1568
+
1569
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_unsafe.rb:22
1570
+ def t_unsafe?(param0 = T.unsafe(nil)); end
1571
+ end
1572
+
1573
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_unsafe.rb:18
1574
+ RuboCop::Cop::Sorbet::ForbidTUnsafe::MSG = T.let(T.unsafe(nil), String)
1575
+
1576
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_unsafe.rb:19
1577
+ RuboCop::Cop::Sorbet::ForbidTUnsafe::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
1578
+
1579
+ # Disallows using `T.untyped` anywhere.
1580
+ #
1581
+ # @example
1582
+ #
1583
+ # # bad
1584
+ # sig { params(my_argument: T.untyped).void }
1585
+ # def foo(my_argument); end
1586
+ #
1587
+ # # good
1588
+ # sig { params(my_argument: String).void }
1589
+ # def foo(my_argument); end
1590
+ #
1591
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_untyped.rb:20
1592
+ class RuboCop::Cop::Sorbet::ForbidTUntyped < ::RuboCop::Cop::Base
1593
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_untyped.rb:27
1594
+ def on_send(node); end
1595
+
1596
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_untyped.rb:25
1597
+ def t_untyped?(param0 = T.unsafe(nil)); end
1598
+ end
1599
+
1600
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_untyped.rb:21
1601
+ RuboCop::Cop::Sorbet::ForbidTUntyped::MSG = T.let(T.unsafe(nil), String)
1602
+
1603
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_t_untyped.rb:22
1604
+ RuboCop::Cop::Sorbet::ForbidTUntyped::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
1605
+
1606
+ # Disallows defining type aliases that contain shapes
1607
+ #
1608
+ # @example
1609
+ #
1610
+ # # bad
1611
+ # Foo = T.type_alias { { foo: Integer } }
1612
+ #
1613
+ # # good
1614
+ # class Foo
1615
+ # extend T::Sig
1616
+ #
1617
+ # sig { params(foo: Integer).void }
1618
+ # def initialize(foo)
1619
+ # @foo = foo
1620
+ # end
1621
+ # end
1622
+ #
1623
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_type_aliased_shapes.rb:24
1624
+ class RuboCop::Cop::Sorbet::ForbidTypeAliasedShapes < ::RuboCop::Cop::Base
1625
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_type_aliased_shapes.rb:36
1626
+ def on_block(node); end
1627
+
1628
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_type_aliased_shapes.rb:40
1629
+ def on_numblock(node); end
1630
+
1631
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_type_aliased_shapes.rb:28
1632
+ def shape_type_alias?(param0 = T.unsafe(nil)); end
1633
+ end
1634
+
1635
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_type_aliased_shapes.rb:25
1636
+ RuboCop::Cop::Sorbet::ForbidTypeAliasedShapes::MSG = T.let(T.unsafe(nil), String)
1637
+
1638
+ # Disallows use of `T.untyped` or `T.nilable(T.untyped)`
1639
+ # as a prop type for `T::Struct` or `T::ImmutableStruct`.
1640
+ #
1641
+ # @example
1642
+ #
1643
+ # # bad
1644
+ # class SomeClass < T::Struct
1645
+ # const :foo, T.untyped
1646
+ # prop :bar, T.nilable(T.untyped)
1647
+ # end
1648
+ #
1649
+ # # good
1650
+ # class SomeClass < T::Struct
1651
+ # const :foo, Integer
1652
+ # prop :bar, T.nilable(String)
1653
+ # end
1654
+ #
1655
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_untyped_struct_props.rb:25
1656
+ class RuboCop::Cop::Sorbet::ForbidUntypedStructProps < ::RuboCop::Cop::Base
1657
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_untyped_struct_props.rb:54
1658
+ def on_class(node); end
1659
+
1660
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_untyped_struct_props.rb:44
1661
+ def subclass_of_t_struct?(param0 = T.unsafe(nil)); end
1662
+
1663
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_untyped_struct_props.rb:39
1664
+ def t_nilable_untyped(param0 = T.unsafe(nil)); end
1665
+
1666
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_untyped_struct_props.rb:29
1667
+ def t_struct(param0 = T.unsafe(nil)); end
1668
+
1669
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_untyped_struct_props.rb:34
1670
+ def t_untyped(param0 = T.unsafe(nil)); end
1671
+
1672
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_untyped_struct_props.rb:50
1673
+ def untyped_props(param0); end
1674
+ end
1675
+
1676
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/forbid_untyped_struct_props.rb:26
1677
+ RuboCop::Cop::Sorbet::ForbidUntypedStructProps::MSG = T.let(T.unsafe(nil), String)
1678
+
1679
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/rbi_versioning/gem_version_annotation_helper.rb:6
1680
+ module RuboCop::Cop::Sorbet::GemVersionAnnotationHelper
1681
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/rbi_versioning/gem_version_annotation_helper.rb:9
1682
+ def gem_version_annotations; end
1683
+
1684
+ private
1685
+
1686
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/rbi_versioning/gem_version_annotation_helper.rb:17
1687
+ def gem_version_annotation?(comment); end
1688
+
1689
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/rbi_versioning/gem_version_annotation_helper.rb:21
1690
+ def gem_versions(comment); end
1691
+ end
1692
+
1693
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/rbi_versioning/gem_version_annotation_helper.rb:7
1694
+ RuboCop::Cop::Sorbet::GemVersionAnnotationHelper::VERSION_PREFIX = T.let(T.unsafe(nil), String)
1695
+
1696
+ # Makes the Sorbet typed sigil mandatory in all files.
1697
+ #
1698
+ # Options:
1699
+ #
1700
+ # * `SuggestedStrictness`: Sorbet strictness level suggested in offense messages (default: 'false')
1701
+ # * `MinimumStrictness`: If set, make offense if the strictness level in the file is below this one
1702
+ #
1703
+ # If a `SuggestedStrictness` level is specified, it will be used in autocorrect.
1704
+ # If a `MinimumStrictness` level is specified, it will be used in offense messages and autocorrect.
1705
+ #
1706
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/sigils/has_sigil.rb:18
1707
+ class RuboCop::Cop::Sorbet::HasSigil < ::RuboCop::Cop::Sorbet::ValidSigil
1708
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/sigils/has_sigil.rb:19
1709
+ def require_sigil_on_all_files?; end
1710
+ end
1711
+
1712
+ # Makes the Sorbet `ignore` sigil mandatory in all files.
1713
+ #
1714
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/sigils/ignore_sigil.rb:10
1715
+ class RuboCop::Cop::Sorbet::IgnoreSigil < ::RuboCop::Cop::Sorbet::HasSigil
1716
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/sigils/ignore_sigil.rb:11
1717
+ def minimum_strictness; end
1718
+ end
1719
+
1720
+ # Disallows declaring implicit conversion methods.
1721
+ # Since Sorbet is a nominal (not structural) type system,
1722
+ # implicit conversion is currently unsupported.
1723
+ #
1724
+ # @example
1725
+ #
1726
+ # # bad
1727
+ # def to_str; end
1728
+ #
1729
+ # # good
1730
+ # def to_str(x); end
1731
+ #
1732
+ # # bad
1733
+ # def self.to_str; end
1734
+ #
1735
+ # # good
1736
+ # def self.to_str(x); end
1737
+ #
1738
+ # # bad
1739
+ # alias to_str to_s
1740
+ #
1741
+ # @see https://docs.ruby-lang.org/en/master/implicit_conversion_rdoc.html
1742
+ # @note Since the arity of aliased methods is not checked, false positives may result.
1743
+ #
1744
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/implicit_conversion_method.rb:31
1745
+ class RuboCop::Cop::Sorbet::ImplicitConversionMethod < ::RuboCop::Cop::Base
1746
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/implicit_conversion_method.rb:37
1747
+ def on_alias(node); end
1748
+
1749
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/implicit_conversion_method.rb:42
1750
+ def on_def(node); end
1751
+
1752
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/implicit_conversion_method.rb:48
1753
+ def on_defs(node); end
1754
+
1755
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/implicit_conversion_method.rb:50
1756
+ def on_send(node); end
1757
+ end
1758
+
1759
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/implicit_conversion_method.rb:32
1760
+ RuboCop::Cop::Sorbet::ImplicitConversionMethod::IMPLICIT_CONVERSION_METHODS = T.let(T.unsafe(nil), Array)
1761
+
1762
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/implicit_conversion_method.rb:33
1763
+ RuboCop::Cop::Sorbet::ImplicitConversionMethod::MSG = T.let(T.unsafe(nil), String)
1764
+
1765
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/implicit_conversion_method.rb:35
1766
+ RuboCop::Cop::Sorbet::ImplicitConversionMethod::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
1767
+
1768
+ # Checks for the ordering of keyword arguments required by
1769
+ # sorbet-runtime. The ordering requires that all keyword arguments
1770
+ # are at the end of the parameters list, and all keyword arguments
1771
+ # with a default value must be after those without default values.
1772
+ #
1773
+ # @example
1774
+ #
1775
+ # # bad
1776
+ # sig { params(a: Integer, b: String).void }
1777
+ # def foo(a: 1, b:); end
1778
+ #
1779
+ # # good
1780
+ # sig { params(b: String, a: Integer).void }
1781
+ # def foo(b:, a: 1); end
1782
+ #
1783
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/keyword_argument_ordering.rb:20
1784
+ class RuboCop::Cop::Sorbet::KeywordArgumentOrdering < ::RuboCop::Cop::Base
1785
+ include ::RuboCop::Cop::Sorbet::SignatureHelp
1786
+
1787
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/keyword_argument_ordering.rb:23
1788
+ def on_signature(node); end
1789
+
1790
+ private
1791
+
1792
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/keyword_argument_ordering.rb:34
1793
+ def check_order_for_kwoptargs(parameters); end
1794
+ end
1795
+
1796
+ # Disallow creating a `T::Enum` with less than two values.
1797
+ #
1798
+ # @example
1799
+ #
1800
+ # # bad
1801
+ # class ErrorMessages < T::Enum
1802
+ # enums do
1803
+ # ServerError = new("There was a server error.")
1804
+ # end
1805
+ # end
1806
+ #
1807
+ # # good
1808
+ # class ErrorMessages < T::Enum
1809
+ # enums do
1810
+ # ServerError = new("There was a server error.")
1811
+ # NotFound = new("The resource was not found.")
1812
+ # end
1813
+ # end
1814
+ #
1815
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/t_enum/multiple_t_enum_values.rb:24
1816
+ class RuboCop::Cop::Sorbet::MultipleTEnumValues < ::RuboCop::Cop::Base
1817
+ include ::RuboCop::Cop::Sorbet::TEnum
1818
+
1819
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/t_enum/multiple_t_enum_values.rb:30
1820
+ def enums_block?(param0 = T.unsafe(nil)); end
1821
+
1822
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/t_enum/multiple_t_enum_values.rb:40
1823
+ def on_block(node); end
1824
+
1825
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/t_enum/multiple_t_enum_values.rb:34
1826
+ def on_class(node); end
1827
+ end
1828
+
1829
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/t_enum/multiple_t_enum_values.rb:27
1830
+ RuboCop::Cop::Sorbet::MultipleTEnumValues::MSG = T.let(T.unsafe(nil), String)
1831
+
1832
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/mutable_constant_sorbet_aware_behaviour.rb:8
1833
+ module RuboCop::Cop::Sorbet::MutableConstantSorbetAwareBehaviour
1834
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/mutable_constant_sorbet_aware_behaviour.rb:18
1835
+ def on_assignment(value); end
1836
+
1837
+ class << self
1838
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/mutable_constant_sorbet_aware_behaviour.rb:10
1839
+ def prepended(base); end
1840
+ end
1841
+ end
1842
+
1843
+ # Checks for the obsolete pattern for initializing instance variables that was required for older Sorbet
1844
+ #
1845
+ # It's no longer required, as of Sorbet 0.5.10210
1846
+ # See https://sorbet.org/docs/type-assertions#put-type-assertions-behind-memoization
1847
+ #
1848
+ # @example
1849
+ #
1850
+ # # bad
1851
+ # sig { returns(Foo) }
1852
+ # def foo
1853
+ # @foo = T.let(@foo, T.nilable(Foo))
1854
+ # @foo ||= Foo.new
1855
+ # end
1856
+ #
1857
+ # # bad
1858
+ # sig { returns(Foo) }
1859
+ # def foo
1860
+ # # This would have been a mistake, causing the memoized value to be discarded and recomputed on every call.
1861
+ # @foo = T.let(nil, T.nilable(Foo))
1862
+ # @foo ||= Foo.new
1863
+ # end
1864
+ #
1865
+ # # good
1866
+ # sig { returns(Foo) }
1867
+ # def foo
1868
+ # @foo ||= T.let(Foo.new, T.nilable(Foo))
1869
+ # end
1870
+ #
1871
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/obsolete_strict_memoization.rb:37
1872
+ class RuboCop::Cop::Sorbet::ObsoleteStrictMemoization < ::RuboCop::Cop::Base
1873
+ include ::RuboCop::Cop::RangeHelp
1874
+ include ::RuboCop::Cop::MatchRange
1875
+ include ::RuboCop::Cop::Alignment
1876
+ include ::RuboCop::Cop::LineLengthHelp
1877
+ include ::RuboCop::Cop::Sorbet::TargetSorbetVersion
1878
+ extend ::RuboCop::Cop::AutoCorrector
1879
+ extend ::RuboCop::Cop::Sorbet::TargetSorbetVersion::ClassMethods
1880
+
1881
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/obsolete_strict_memoization.rb:51
1882
+ def legacy_memoization_pattern?(param0 = T.unsafe(nil)); end
1883
+
1884
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/obsolete_strict_memoization.rb:62
1885
+ def on_begin(node); end
1886
+
1887
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/obsolete_strict_memoization.rb:86
1888
+ def relevant_file?(file); end
1889
+ end
1890
+
1891
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/obsolete_strict_memoization.rb:47
1892
+ RuboCop::Cop::Sorbet::ObsoleteStrictMemoization::MSG = T.let(T.unsafe(nil), String)
1893
+
1894
+ # Forbids the use of redundant `extend T::Sig`. Only for use in
1895
+ # applications that monkey patch `Module.include(T::Sig)` globally,
1896
+ # which would make it redundant.
1897
+ #
1898
+ # @safety
1899
+ # This cop should not be enabled in applications that have not monkey
1900
+ # patched `Module`.
1901
+ #
1902
+ # @example
1903
+ # # bad
1904
+ # class Example
1905
+ # extend T::Sig
1906
+ # sig { void }
1907
+ # def no_op; end
1908
+ # end
1909
+ #
1910
+ # # good
1911
+ # class Example
1912
+ # sig { void }
1913
+ # def no_op; end
1914
+ # end
1915
+ #
1916
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/redundant_extend_t_sig.rb:28
1917
+ class RuboCop::Cop::Sorbet::RedundantExtendTSig < ::RuboCop::Cop::Base
1918
+ include ::RuboCop::Cop::RangeHelp
1919
+ extend ::RuboCop::Cop::AutoCorrector
1920
+
1921
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/redundant_extend_t_sig.rb:36
1922
+ def extend_t_sig?(param0 = T.unsafe(nil)); end
1923
+
1924
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/redundant_extend_t_sig.rb:40
1925
+ def on_send(node); end
1926
+ end
1927
+
1928
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/redundant_extend_t_sig.rb:32
1929
+ RuboCop::Cop::Sorbet::RedundantExtendTSig::MSG = T.let(T.unsafe(nil), String)
1930
+
1931
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/redundant_extend_t_sig.rb:33
1932
+ RuboCop::Cop::Sorbet::RedundantExtendTSig::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
1933
+
1934
+ # Checks for the use of Ruby Refinements library. Refinements add
1935
+ # complexity and incur a performance penalty that can be significant
1936
+ # for large code bases. Good examples are cases of unrelated
1937
+ # methods that happen to have the same name as these module methods.
1938
+ #
1939
+ # @example
1940
+ # # bad
1941
+ # module Foo
1942
+ # refine(Date) do
1943
+ # end
1944
+ # end
1945
+ #
1946
+ # # bad
1947
+ # module Foo
1948
+ # using(Date) do
1949
+ # end
1950
+ # end
1951
+ #
1952
+ # # good
1953
+ # module Foo
1954
+ # bar.refine(Date)
1955
+ # end
1956
+ #
1957
+ # # good
1958
+ # module Foo
1959
+ # bar.using(Date)
1960
+ # end
1961
+ #
1962
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/refinement.rb:34
1963
+ class RuboCop::Cop::Sorbet::Refinement < ::RuboCop::Cop::Base
1964
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/refinement.rb:38
1965
+ def on_send(node); end
1966
+ end
1967
+
1968
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/refinement.rb:35
1969
+ RuboCop::Cop::Sorbet::Refinement::MSG = T.let(T.unsafe(nil), String)
1970
+
1971
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/refinement.rb:36
1972
+ RuboCop::Cop::Sorbet::Refinement::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
1973
+
1974
+ # Checks that `on_failure` is not used without `checked(:tests)` or `checked(:always)`.
1975
+ #
1976
+ # @example
1977
+ #
1978
+ # # bad
1979
+ # sig { params(x: Integer).returns(Integer).on_failure(:raise) }
1980
+ # def plus_one(x)
1981
+ # x + 1
1982
+ # end
1983
+ #
1984
+ # # good
1985
+ # sig { params(x: Integer).returns(Integer).checked(:always).on_failure(:raise) }
1986
+ # def plus_one(x)
1987
+ # x + 1
1988
+ # end
1989
+ #
1990
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/runtime_on_failure_depends_on_checked.rb:22
1991
+ class RuboCop::Cop::Sorbet::RuntimeOnFailureDependsOnChecked < ::RuboCop::Cop::Base
1992
+ include ::RuboCop::Cop::Sorbet::SignatureHelp
1993
+
1994
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/runtime_on_failure_depends_on_checked.rb:33
1995
+ def checked_tests_or_always?(param0 = T.unsafe(nil)); end
1996
+
1997
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/runtime_on_failure_depends_on_checked.rb:28
1998
+ def on_failure_call?(param0 = T.unsafe(nil)); end
1999
+
2000
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/runtime_on_failure_depends_on_checked.rb:37
2001
+ def on_signature(node); end
2002
+ end
2003
+
2004
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/runtime_on_failure_depends_on_checked.rb:25
2005
+ RuboCop::Cop::Sorbet::RuntimeOnFailureDependsOnChecked::MSG = T.let(T.unsafe(nil), String)
2006
+
2007
+ # Suggests using `grep` over `select` when using it only for type narrowing.
2008
+ #
2009
+ # @example
2010
+ #
2011
+ # # bad
2012
+ # strings_or_integers.select { |e| e.is_a?(String) }
2013
+ # strings_or_integers.filter { |e| e.is_a?(String) }
2014
+ # strings_or_integers.select { |e| e.kind_of?(String) }
2015
+ #
2016
+ # # good
2017
+ # strings_or_integers.grep(String)
2018
+ #
2019
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/select_by_is_a.rb:19
2020
+ class RuboCop::Cop::Sorbet::SelectByIsA < ::RuboCop::Cop::Base
2021
+ extend ::RuboCop::Cop::AutoCorrector
2022
+
2023
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/select_by_is_a.rb:58
2024
+ def on_csend(node); end
2025
+
2026
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/select_by_is_a.rb:43
2027
+ def on_send(node); end
2028
+
2029
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/select_by_is_a.rb:26
2030
+ def type_narrowing_select?(param0 = T.unsafe(nil)); end
2031
+ end
2032
+
2033
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/select_by_is_a.rb:22
2034
+ RuboCop::Cop::Sorbet::SelectByIsA::MSG = T.let(T.unsafe(nil), String)
2035
+
2036
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/select_by_is_a.rb:23
2037
+ RuboCop::Cop::Sorbet::SelectByIsA::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
2038
+
2039
+ # Checks for the correct order of `sig` builder methods.
2040
+ #
2041
+ # Options:
2042
+ #
2043
+ # * `Order`: The order in which to enforce the builder methods are called.
2044
+ #
2045
+ # @example
2046
+ # # bad
2047
+ # sig { void.abstract }
2048
+ #
2049
+ # # good
2050
+ # sig { abstract.void }
2051
+ #
2052
+ # # bad
2053
+ # sig { returns(Integer).params(x: Integer) }
2054
+ #
2055
+ # # good
2056
+ # sig { params(x: Integer).returns(Integer) }
2057
+ #
2058
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/signature_build_order.rb:24
2059
+ class RuboCop::Cop::Sorbet::SignatureBuildOrder < ::RuboCop::Cop::Base
2060
+ include ::RuboCop::Cop::Sorbet::SignatureHelp
2061
+ extend ::RuboCop::Cop::AutoCorrector
2062
+
2063
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/signature_build_order.rb:33
2064
+ def on_signature(node); end
2065
+
2066
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/signature_build_order.rb:29
2067
+ def root_call(param0); end
2068
+
2069
+ private
2070
+
2071
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/signature_build_order.rb:96
2072
+ def builder_method_indexes; end
2073
+
2074
+ # Split foo.bar.baz into [foo, foo.bar, foo.bar.baz]
2075
+ #
2076
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/signature_build_order.rb:83
2077
+ def call_chain(node); end
2078
+
2079
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/signature_build_order.rb:70
2080
+ def expected_source(expected_calls_and_indexes); end
2081
+ end
2082
+
2083
+ # Mixin for writing cops for signatures, providing a `signature?` node matcher and an `on_signature` trigger.
2084
+ #
2085
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/mixin/signature_help.rb:7
2086
+ module RuboCop::Cop::Sorbet::SignatureHelp
2087
+ extend ::RuboCop::AST::NodePattern::Macros
2088
+
2089
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/mixin/signature_help.rb:16
2090
+ def bare_sig?(param0 = T.unsafe(nil)); end
2091
+
2092
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/mixin/signature_help.rb:42
2093
+ def on_block(node); end
2094
+
2095
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/mixin/signature_help.rb:46
2096
+ def on_numblock(node); end
2097
+
2098
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/mixin/signature_help.rb:48
2099
+ def on_signature(_node); end
2100
+
2101
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/mixin/signature_help.rb:25
2102
+ def sig_with_runtime?(param0 = T.unsafe(nil)); end
2103
+
2104
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/mixin/signature_help.rb:34
2105
+ def sig_without_runtime?(param0 = T.unsafe(nil)); end
2106
+
2107
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/mixin/signature_help.rb:11
2108
+ def signature?(param0 = T.unsafe(nil)); end
2109
+ end
2110
+
2111
+ # Ensures empty class/module definitions in RBI files are
2112
+ # done on a single line rather than being split across multiple lines.
2113
+ #
2114
+ # @example
2115
+ #
2116
+ # # bad
2117
+ # module SomeModule
2118
+ # end
2119
+ #
2120
+ # # good
2121
+ # module SomeModule; end
2122
+ #
2123
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/rbi/single_line_rbi_class_module_definitions.rb:17
2124
+ class RuboCop::Cop::Sorbet::SingleLineRbiClassModuleDefinitions < ::RuboCop::Cop::Base
2125
+ extend ::RuboCop::Cop::AutoCorrector
2126
+
2127
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/rbi/single_line_rbi_class_module_definitions.rb:30
2128
+ def on_class(node); end
2129
+
2130
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/rbi/single_line_rbi_class_module_definitions.rb:22
2131
+ def on_module(node); end
2132
+
2133
+ private
2134
+
2135
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/rbi/single_line_rbi_class_module_definitions.rb:34
2136
+ def convert_newlines_to_semicolons(source); end
2137
+ end
2138
+
2139
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/rbi/single_line_rbi_class_module_definitions.rb:20
2140
+ RuboCop::Cop::Sorbet::SingleLineRbiClassModuleDefinitions::MSG = T.let(T.unsafe(nil), String)
2141
+
2142
+ # Makes the Sorbet `strict` sigil mandatory in all files.
2143
+ #
2144
+ # @safety
2145
+ # This cop is unsafe because Sorbet sigils may not exist yet when it is run.
2146
+ #
2147
+ # @example
2148
+ #
2149
+ # # bad
2150
+ #
2151
+ # # bad
2152
+ #
2153
+ # # good
2154
+ #
2155
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/sigils/strict_sigil.rb:25
2156
+ class RuboCop::Cop::Sorbet::StrictSigil < ::RuboCop::Cop::Sorbet::HasSigil
2157
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/sigils/strict_sigil.rb:26
2158
+ def minimum_strictness; end
2159
+ end
2160
+
2161
+ # Makes the Sorbet `strong` sigil mandatory in all files.
2162
+ #
2163
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/sigils/strong_sigil.rb:10
2164
+ class RuboCop::Cop::Sorbet::StrongSigil < ::RuboCop::Cop::Sorbet::HasSigil
2165
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/sigils/strong_sigil.rb:11
2166
+ def minimum_strictness; end
2167
+ end
2168
+
2169
+ # Mixing for writing cops that deal with `T::Enum`s
2170
+ #
2171
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/mixin/t_enum.rb:7
2172
+ module RuboCop::Cop::Sorbet::TEnum
2173
+ extend ::RuboCop::AST::NodePattern::Macros
2174
+
2175
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/mixin/t_enum.rb:9
2176
+ def initialize(*_arg0); end
2177
+
2178
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/mixin/t_enum.rb:23
2179
+ def after_class(node); end
2180
+
2181
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/mixin/t_enum.rb:19
2182
+ def on_class(node); end
2183
+
2184
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/mixin/t_enum.rb:15
2185
+ def t_enum?(param0 = T.unsafe(nil)); end
2186
+
2187
+ private
2188
+
2189
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/mixin/t_enum.rb:29
2190
+ def in_t_enum_class?; end
2191
+ end
2192
+
2193
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/mixin/target_sorbet_version.rb:6
2194
+ module RuboCop::Cop::Sorbet::TargetSorbetVersion
2195
+ mixes_in_class_methods ::RuboCop::Cop::Sorbet::TargetSorbetVersion::ClassMethods
2196
+
2197
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/mixin/target_sorbet_version.rb:28
2198
+ def enabled_for_sorbet_static_version?; end
2199
+
2200
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/mixin/target_sorbet_version.rb:44
2201
+ def read_sorbet_static_version_from_bundler_lock_file; end
2202
+
2203
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/mixin/target_sorbet_version.rb:24
2204
+ def sorbet_enabled?; end
2205
+
2206
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/mixin/target_sorbet_version.rb:35
2207
+ def target_sorbet_static_version_from_bundler_lock_file; end
2208
+
2209
+ class << self
2210
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/mixin/target_sorbet_version.rb:8
2211
+ def included(target); end
2212
+ end
2213
+ end
2214
+
2215
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/mixin/target_sorbet_version.rb:13
2216
+ module RuboCop::Cop::Sorbet::TargetSorbetVersion::ClassMethods
2217
+ # Sets the version of the Sorbet static type checker required by this cop
2218
+ #
2219
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/mixin/target_sorbet_version.rb:15
2220
+ def minimum_target_sorbet_static_version(version); end
2221
+
2222
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/mixin/target_sorbet_version.rb:19
2223
+ def supports_target_sorbet_static_version?(version); end
2224
+ end
2225
+
2226
+ # Makes the Sorbet `true` sigil mandatory in all files.
2227
+ #
2228
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/sigils/true_sigil.rb:10
2229
+ class RuboCop::Cop::Sorbet::TrueSigil < ::RuboCop::Cop::Sorbet::HasSigil
2230
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/sigils/true_sigil.rb:11
2231
+ def minimum_strictness; end
2232
+ end
2233
+
2234
+ # Ensures all constants used as `T.type_alias` are using CamelCase.
2235
+ #
2236
+ # @example
2237
+ #
2238
+ # # bad
2239
+ # FOO_OR_BAR = T.type_alias { T.any(Foo, Bar) }
2240
+ #
2241
+ # # good
2242
+ # FooOrBar = T.type_alias { T.any(Foo, Bar) }
2243
+ #
2244
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/type_alias_name.rb:17
2245
+ class RuboCop::Cop::Sorbet::TypeAliasName < ::RuboCop::Cop::Base
2246
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/type_alias_name.rb:32
2247
+ def on_casgn(node); end
2248
+
2249
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/type_alias_name.rb:21
2250
+ def underscored_type_alias?(param0 = T.unsafe(nil)); end
2251
+ end
2252
+
2253
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/type_alias_name.rb:18
2254
+ RuboCop::Cop::Sorbet::TypeAliasName::MSG = T.let(T.unsafe(nil), String)
2255
+
2256
+ # Checks that gem versions in RBI annotations are properly formatted per the Bundler gem specification.
2257
+ #
2258
+ # @example
2259
+ # # bad
2260
+ # # @version > not a version number
2261
+ #
2262
+ # # good
2263
+ # # @version = 1
2264
+ #
2265
+ # # good
2266
+ # # @version > 1.2.3
2267
+ #
2268
+ # # good
2269
+ # # @version <= 4.3-preview
2270
+ #
2271
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/rbi_versioning/valid_gem_version_annotations.rb:21
2272
+ class RuboCop::Cop::Sorbet::ValidGemVersionAnnotations < ::RuboCop::Cop::Base
2273
+ include ::RuboCop::Cop::Sorbet::GemVersionAnnotationHelper
2274
+
2275
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/rbi_versioning/valid_gem_version_annotations.rb:27
2276
+ def on_new_investigation; end
2277
+
2278
+ private
2279
+
2280
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/rbi_versioning/valid_gem_version_annotations.rb:50
2281
+ def valid_version?(version_string); end
2282
+ end
2283
+
2284
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/rbi_versioning/valid_gem_version_annotations.rb:24
2285
+ RuboCop::Cop::Sorbet::ValidGemVersionAnnotations::MSG = T.let(T.unsafe(nil), String)
2286
+
2287
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/rbi_versioning/valid_gem_version_annotations.rb:25
2288
+ RuboCop::Cop::Sorbet::ValidGemVersionAnnotations::VALID_OPERATORS = T.let(T.unsafe(nil), Array)
2289
+
2290
+ # Checks that every Ruby file contains a valid Sorbet sigil.
2291
+ # Adapted from: https://gist.github.com/clarkdave/85aca4e16f33fd52aceb6a0a29936e52
2292
+ #
2293
+ # Options:
2294
+ #
2295
+ # * `RequireSigilOnAllFiles`: make offense if the Sorbet typed is not found in the file (default: false)
2296
+ # * `SuggestedStrictness`: Sorbet strictness level suggested in offense messages (default: 'false')
2297
+ # * `MinimumStrictness`: If set, make offense if the strictness level in the file is below this one
2298
+ # * `ExactStrictness`: If set, make offense if the strictness level in the file is different than this one
2299
+ #
2300
+ # If an `ExactStrictness` level is specified, it will be used in offense messages and autocorrect.
2301
+ # If a `SuggestedStrictness` level is specified, it will be used in autocorrect.
2302
+ # Otherwise, if a `MinimumStrictness` level is specified, it will be used in offense messages and autocorrect.
2303
+ #
2304
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/sigils/valid_sigil.rb:21
2305
+ class RuboCop::Cop::Sorbet::ValidSigil < ::RuboCop::Cop::Base
2306
+ extend ::RuboCop::Cop::AutoCorrector
2307
+
2308
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/sigils/valid_sigil.rb:24
2309
+ def on_new_investigation; end
2310
+
2311
+ protected
2312
+
2313
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/sigils/valid_sigil.rb:169
2314
+ def autocorrect(corrector); end
2315
+
2316
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/sigils/valid_sigil.rb:110
2317
+ def check_double_commented_sigil(sigil, strictness); end
2318
+
2319
+ # checks
2320
+ #
2321
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/sigils/valid_sigil.rb:59
2322
+ def check_sigil_present(sigil); end
2323
+
2324
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/sigils/valid_sigil.rb:137
2325
+ def check_strictness_level(sigil, strictness); end
2326
+
2327
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/sigils/valid_sigil.rb:98
2328
+ def check_strictness_not_empty(sigil, strictness); end
2329
+
2330
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/sigils/valid_sigil.rb:125
2331
+ def check_strictness_valid(sigil, strictness); end
2332
+
2333
+ # Default is `nil`
2334
+ #
2335
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/sigils/valid_sigil.rb:203
2336
+ def exact_strictness; end
2337
+
2338
+ # extraction
2339
+ #
2340
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/sigils/valid_sigil.rb:47
2341
+ def extract_sigil(processed_source); end
2342
+
2343
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/sigils/valid_sigil.rb:53
2344
+ def extract_strictness(sigil); end
2345
+
2346
+ # Default is `nil`
2347
+ #
2348
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/sigils/valid_sigil.rb:197
2349
+ def minimum_strictness; end
2350
+
2351
+ # Default is `false`
2352
+ #
2353
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/sigils/valid_sigil.rb:186
2354
+ def require_sigil_on_all_files?; end
2355
+
2356
+ # Default is `'false'`
2357
+ #
2358
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/sigils/valid_sigil.rb:191
2359
+ def suggested_strictness; end
2360
+
2361
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/sigils/valid_sigil.rb:76
2362
+ def suggested_strictness_level; end
2363
+ end
2364
+
2365
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/sigils/valid_sigil.rb:43
2366
+ RuboCop::Cop::Sorbet::ValidSigil::INVALID_SIGIL_MSG = T.let(T.unsafe(nil), String)
2367
+
2368
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/sigils/valid_sigil.rb:42
2369
+ RuboCop::Cop::Sorbet::ValidSigil::SIGIL_REGEX = T.let(T.unsafe(nil), Regexp)
2370
+
2371
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/sigils/valid_sigil.rb:41
2372
+ RuboCop::Cop::Sorbet::ValidSigil::STRICTNESS_LEVELS = T.let(T.unsafe(nil), Array)
2373
+
2374
+ # Disallows the usage of `.void.checked(:tests)`.
2375
+ #
2376
+ # Using `.void` changes the value returned from the method, but only if
2377
+ # runtime type checking is enabled for the method. Methods marked `.void`
2378
+ # will return different values in tests compared with non-test
2379
+ # environments. This is particularly troublesome if branching on the
2380
+ # result of a `.void` method, because the returned value in test code
2381
+ # will be the truthy `VOID` value, while the non-test return value may be
2382
+ # falsy depending on the method's implementation.
2383
+ #
2384
+ # - Use `.returns(T.anything).checked(:tests)` to keep the runtime type
2385
+ # checking for the rest of the parameters.
2386
+ # - Use `.void.checked(:never)` if you are on an older version of Sorbet
2387
+ # which does not have `T.anything` (meaning versions 0.5.10781 or
2388
+ # earlier. Versions released after 2023-04-14 include `T.anything`.)
2389
+ #
2390
+ # @example
2391
+ #
2392
+ # # bad
2393
+ # sig { void.checked(:tests) }
2394
+ #
2395
+ # # good
2396
+ # sig { void }
2397
+ # sig { returns(T.anything).checked(:tests) }
2398
+ # sig { void.checked(:never) }
2399
+ #
2400
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/void_checked_tests.rb:31
2401
+ class RuboCop::Cop::Sorbet::VoidCheckedTests < ::RuboCop::Cop::Base
2402
+ include ::RuboCop::Cop::RangeHelp
2403
+ include ::RuboCop::Cop::Sorbet::SignatureHelp
2404
+ extend ::RuboCop::Cop::AutoCorrector
2405
+
2406
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/void_checked_tests.rb:37
2407
+ def checked_tests(param0); end
2408
+
2409
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/void_checked_tests.rb:58
2410
+ def on_signature(node); end
2411
+
2412
+ private
2413
+
2414
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/void_checked_tests.rb:48
2415
+ def top_level_void(node); end
2416
+ end
2417
+
2418
+ # pkg:gem/rubocop-sorbet#lib/rubocop/cop/sorbet/signatures/void_checked_tests.rb:41
2419
+ RuboCop::Cop::Sorbet::VoidCheckedTests::MESSAGE = T.let(T.unsafe(nil), String)
2420
+
2421
+ module RuboCop::Cop::Style; end
2422
+
2423
+ class RuboCop::Cop::Style::MutableConstant < ::RuboCop::Cop::Base
2424
+ include ::RuboCop::Cop::Sorbet::MutableConstantSorbetAwareBehaviour
2425
+ end
2426
+
2427
+ # pkg:gem/rubocop-sorbet#lib/rubocop/sorbet/version.rb:4
2428
+ module RuboCop::Sorbet; end
2429
+
2430
+ # pkg:gem/rubocop-sorbet#lib/rubocop/sorbet.rb:11
2431
+ class RuboCop::Sorbet::Error < ::StandardError; end
2432
+
2433
+ # A plugin that integrates RuboCop Sorbet with RuboCop's plugin system.
2434
+ #
2435
+ # pkg:gem/rubocop-sorbet#lib/rubocop/sorbet/plugin.rb:10
2436
+ class RuboCop::Sorbet::Plugin < ::LintRoller::Plugin
2437
+ # pkg:gem/rubocop-sorbet#lib/rubocop/sorbet/plugin.rb:11
2438
+ def about; end
2439
+
2440
+ # pkg:gem/rubocop-sorbet#lib/rubocop/sorbet/plugin.rb:24
2441
+ def rules(_context); end
2442
+
2443
+ # pkg:gem/rubocop-sorbet#lib/rubocop/sorbet/plugin.rb:20
2444
+ def supported?(context); end
2445
+ end
2446
+
2447
+ # pkg:gem/rubocop-sorbet#lib/rubocop/sorbet/version.rb:5
2448
+ RuboCop::Sorbet::VERSION = T.let(T.unsafe(nil), String)