rubocop-sorbet 0.6.8 → 0.6.10

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 64fed7c9d13d31d36b4291400c35f40857cd11522f877538aa4225bf0da1382b
4
- data.tar.gz: f813a95fd882e1d51585cb1cffb79169f378d2a27ff5956b4a1f7b2f397e4f21
3
+ metadata.gz: eda9e8cef015959394e43c9aa03ba35fd39ce07b629e285799c65670a1694b64
4
+ data.tar.gz: 9be1efcb8eaa30dcfe7fa1e9fb8a59ae73257392d78f432440d98566bb5e3333
5
5
  SHA512:
6
- metadata.gz: 5582a0d4b3e833504826549d967eded49aa32403741eea67af4a89dd3a95170164ae0ff540bc6f2422c9c34a82ceec281f991312c525937d956659773250f9ca
7
- data.tar.gz: b3354da7079b05cfd16a541d25db45c271eb2dc43e1fae34dd336e38fca8b290ea8a58c643a178bebe722e2ed5b3d4f2f2d2096ad67ab943fdbae950a67f5f04
6
+ metadata.gz: ddb3cfc072f18d9d8a30db0429b8998e2c1971a5d662dcade2abdf51c3ee122d9e1db1e0ee1d43682ef2ed2459b11d9f40afc9fbdec8b429ba89f00cd24413dc
7
+ data.tar.gz: 4217f8c4cda4881cb7d89fd0c2644008f3f5fd41660bdb3aa7a647c9b8e1a69981a9522e2b47de4440d75bf5541544ce35c9b7a12b88ecaacb5a9182cd43c346
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rubocop-sorbet (0.6.8)
4
+ rubocop-sorbet (0.6.10)
5
5
  rubocop (>= 0.90.0)
6
6
 
7
7
  GEM
data/config/default.yml CHANGED
@@ -97,6 +97,12 @@ Sorbet/ForbidTUnsafe:
97
97
  VersionAdded: 0.7.0
98
98
  VersionChanged: 0.7.0
99
99
 
100
+ Sorbet/ForbidTUntyped:
101
+ Description: 'Forbid usage of T.untyped'
102
+ Enabled: false
103
+ VersionAdded: 0.6.9
104
+ VersionChanged: 0.7.0
105
+
100
106
  Sorbet/ForbidUntypedStructProps:
101
107
  Description: >-
102
108
  Disallows use of `T.untyped` or `T.nilable(T.untyped)` as a
@@ -65,7 +65,7 @@ module RuboCop
65
65
 
66
66
  def_node_matcher(:generic_parameter_decl_block_call?, <<-PATTERN)
67
67
  (block
68
- (send nil? {:type_template :type_member}) ...
68
+ (send nil? {:type_template :type_member} ...) ...
69
69
  )
70
70
  PATTERN
71
71
 
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "rubocop"
4
+
5
+ module RuboCop
6
+ module Cop
7
+ module Sorbet
8
+ # This cop disallows using `T.untyped` anywhere.
9
+ #
10
+ # @example
11
+ #
12
+ # # bad
13
+ # sig { params(my_argument: T.untyped).void }
14
+ # def foo(my_argument); end
15
+ #
16
+ # # good
17
+ # sig { params(my_argument: String).void }
18
+ # def foo(my_argument); end
19
+ #
20
+ class ForbidTUntyped < RuboCop::Cop::Cop
21
+ def_node_matcher(:t_untyped?, "(send (const nil? :T) :untyped)")
22
+
23
+ def on_send(node)
24
+ add_offense(node, message: "Do not use `T.untyped`.") if t_untyped?(node)
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -49,7 +49,7 @@ module RuboCop
49
49
  protected
50
50
 
51
51
  STRICTNESS_LEVELS = ["ignore", "false", "true", "strict", "strong"]
52
- SIGIL_REGEX = /#\s+typed:(?:\s+([\w]+))?/
52
+ SIGIL_REGEX = /^\s*#\s+typed:(?:\s+([\w]+))?/
53
53
 
54
54
  # extraction
55
55
 
@@ -7,6 +7,7 @@ require_relative "sorbet/forbid_untyped_struct_props"
7
7
  require_relative "sorbet/one_ancestor_per_line"
8
8
  require_relative "sorbet/callback_conditionals_binding"
9
9
  require_relative "sorbet/forbid_t_unsafe"
10
+ require_relative "sorbet/forbid_t_untyped"
10
11
  require_relative "sorbet/type_alias_name"
11
12
 
12
13
  require_relative "sorbet/rbi/forbid_extend_t_sig_helpers_in_shims"
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  module RuboCop
3
3
  module Sorbet
4
- VERSION = "0.6.8"
4
+ VERSION = "0.6.10"
5
5
  end
6
6
  end
data/manual/cops.md CHANGED
@@ -19,6 +19,7 @@ In the following section you find all available cops:
19
19
  * [Sorbet/ForbidRBIOutsideOfAllowedPaths](cops_sorbet.md#sorbetforbidrbioutsideofallowedpaths)
20
20
  * [Sorbet/ForbidSuperclassConstLiteral](cops_sorbet.md#sorbetforbidsuperclassconstliteral)
21
21
  * [Sorbet/ForbidTUnsafe](cops_sorbet.md#sorbetforbidtunsafe)
22
+ * [Sorbet/ForbidTUntyped](cops_sorbet.md#sorbetforbidtuntyped)
22
23
  * [Sorbet/ForbidUntypedStructProps](cops_sorbet.md#sorbetforbiduntypedstructprops)
23
24
  * [Sorbet/HasSigil](cops_sorbet.md#sorbethassigil)
24
25
  * [Sorbet/IgnoreSigil](cops_sorbet.md#sorbetignoresigil)
@@ -274,7 +274,7 @@ Include | `**/*.rbi` | Array
274
274
 
275
275
  Enabled by default | Safe | Supports autocorrection | VersionAdded | VersionChanged
276
276
  --- | --- | --- | --- | ---
277
- Disabled | Yes | No | 0.2.0 | 0.5.0
277
+ Disabled | Yes | Yes | 0.2.0 | 0.5.0
278
278
 
279
279
  No documentation
280
280
 
@@ -284,7 +284,7 @@ Enabled by default | Safe | Supports autocorrection | VersionAdded | VersionChan
284
284
  --- | --- | --- | --- | ---
285
285
  Enabled | Yes | No | 0.6.1 | -
286
286
 
287
- This cop makes sure that RBI files are always located under the defined allowed paths
287
+ This cop makes sure that RBI files are always located under the defined allowed paths.
288
288
 
289
289
  Options:
290
290
 
@@ -341,6 +341,26 @@ T.unsafe(foo)
341
341
  foo
342
342
  ```
343
343
 
344
+ ## Sorbet/ForbidTUntyped
345
+
346
+ Enabled by default | Safe | Supports autocorrection | VersionAdded | VersionChanged
347
+ --- | --- | --- | --- | ---
348
+ Disabled | Yes | No | 0.6.9 | 0.7.0
349
+
350
+ This cop disallows using `T.untyped` anywhere.
351
+
352
+ ### Examples
353
+
354
+ ```ruby
355
+ # bad
356
+ sig { params(my_argument: T.untyped).void }
357
+ def foo(my_argument); end
358
+
359
+ # good
360
+ sig { params(my_argument: String).void }
361
+ def foo(my_argument); end
362
+ ```
363
+
344
364
  ## Sorbet/ForbidUntypedStructProps
345
365
 
346
366
  Enabled by default | Safe | Supports autocorrection | VersionAdded | VersionChanged
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubocop-sorbet
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.8
4
+ version: 0.6.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ufuk Kayserilioglu
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: exe
13
13
  cert_chain: []
14
- date: 2022-04-28 00:00:00.000000000 Z
14
+ date: 2022-06-16 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: rspec
@@ -91,6 +91,7 @@ files:
91
91
  - lib/rubocop/cop/sorbet/forbid_include_const_literal.rb
92
92
  - lib/rubocop/cop/sorbet/forbid_superclass_const_literal.rb
93
93
  - lib/rubocop/cop/sorbet/forbid_t_unsafe.rb
94
+ - lib/rubocop/cop/sorbet/forbid_t_untyped.rb
94
95
  - lib/rubocop/cop/sorbet/forbid_untyped_struct_props.rb
95
96
  - lib/rubocop/cop/sorbet/mutable_constant_sorbet_aware_behaviour.rb
96
97
  - lib/rubocop/cop/sorbet/one_ancestor_per_line.rb
@@ -145,7 +146,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
145
146
  - !ruby/object:Gem::Version
146
147
  version: '0'
147
148
  requirements: []
148
- rubygems_version: 3.2.20
149
+ rubygems_version: 3.3.3
149
150
  signing_key:
150
151
  specification_version: 4
151
152
  summary: Automatic Sorbet code style checking tool.