rbi 0.2.4 → 0.3.0

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.
data/lib/rbi/model.rb CHANGED
@@ -5,24 +5,23 @@ module RBI
5
5
  class ReplaceNodeError < Error; end
6
6
 
7
7
  class Node
8
- extend T::Sig
9
8
  extend T::Helpers
10
9
 
11
10
  abstract!
12
11
 
13
- sig { returns(T.nilable(Tree)) }
12
+ #: Tree?
14
13
  attr_accessor :parent_tree
15
14
 
16
- sig { returns(T.nilable(Loc)) }
15
+ #: Loc?
17
16
  attr_accessor :loc
18
17
 
19
- sig { params(loc: T.nilable(Loc)).void }
18
+ #: (?loc: Loc?) -> void
20
19
  def initialize(loc: nil)
21
20
  @parent_tree = nil
22
21
  @loc = loc
23
22
  end
24
23
 
25
- sig { void }
24
+ #: -> void
26
25
  def detach
27
26
  tree = parent_tree
28
27
  return unless tree
@@ -31,7 +30,7 @@ module RBI
31
30
  self.parent_tree = nil
32
31
  end
33
32
 
34
- sig { params(node: Node).void }
33
+ #: (Node node) -> void
35
34
  def replace(node)
36
35
  tree = parent_tree
37
36
  raise ReplaceNodeError, "Can't replace #{self} without a parent tree" unless tree
@@ -44,7 +43,7 @@ module RBI
44
43
  self.parent_tree = nil
45
44
  end
46
45
 
47
- sig { returns(T.nilable(Scope)) }
46
+ #: -> Scope?
48
47
  def parent_scope
49
48
  parent = T.let(parent_tree, T.nilable(Tree))
50
49
  parent = parent.parent_tree until parent.is_a?(Scope) || parent.nil?
@@ -53,18 +52,16 @@ module RBI
53
52
  end
54
53
 
55
54
  class Comment < Node
56
- extend T::Sig
57
-
58
- sig { returns(String) }
55
+ #: String
59
56
  attr_accessor :text
60
57
 
61
- sig { params(text: String, loc: T.nilable(Loc)).void }
58
+ #: (String text, ?loc: Loc?) -> void
62
59
  def initialize(text, loc: nil)
63
60
  super(loc: loc)
64
61
  @text = text
65
62
  end
66
63
 
67
- sig { params(other: Object).returns(T::Boolean) }
64
+ #: (Object other) -> bool
68
65
  def ==(other)
69
66
  return false unless other.is_a?(Comment)
70
67
 
@@ -74,30 +71,37 @@ module RBI
74
71
 
75
72
  # An arbitrary blank line that can be added both in trees and comments
76
73
  class BlankLine < Comment
77
- extend T::Sig
78
-
79
- sig { params(loc: T.nilable(Loc)).void }
74
+ #: (?loc: Loc?) -> void
80
75
  def initialize(loc: nil)
81
76
  super("", loc: loc)
82
77
  end
83
78
  end
84
79
 
80
+ # A comment representing a RBS type prefixed with `#:`
81
+ class RBSComment < Comment
82
+ #: (Object other) -> bool
83
+ def ==(other)
84
+ return false unless other.is_a?(RBSComment)
85
+
86
+ text == other.text
87
+ end
88
+ end
89
+
85
90
  class NodeWithComments < Node
86
- extend T::Sig
87
91
  extend T::Helpers
88
92
 
89
93
  abstract!
90
94
 
91
- sig { returns(T::Array[Comment]) }
95
+ #: Array[Comment]
92
96
  attr_accessor :comments
93
97
 
94
- sig { params(loc: T.nilable(Loc), comments: T::Array[Comment]).void }
98
+ #: (?loc: Loc?, ?comments: Array[Comment]) -> void
95
99
  def initialize(loc: nil, comments: [])
96
100
  super(loc: loc)
97
101
  @comments = comments
98
102
  end
99
103
 
100
- sig { returns(T::Array[String]) }
104
+ #: -> Array[String]
101
105
  def annotations
102
106
  comments
103
107
  .select { |comment| comment.text.start_with?("@") }
@@ -106,55 +110,39 @@ module RBI
106
110
  end
107
111
 
108
112
  class Tree < NodeWithComments
109
- extend T::Sig
110
-
111
- sig { returns(T::Array[Node]) }
113
+ #: Array[Node]
112
114
  attr_reader :nodes
113
115
 
114
- sig do
115
- params(
116
- loc: T.nilable(Loc),
117
- comments: T::Array[Comment],
118
- block: T.nilable(T.proc.params(node: Tree).void),
119
- ).void
120
- end
116
+ #: (?loc: Loc?, ?comments: Array[Comment]) ?{ (Tree node) -> void } -> void
121
117
  def initialize(loc: nil, comments: [], &block)
122
118
  super(loc: loc, comments: comments)
123
119
  @nodes = T.let([], T::Array[Node])
124
120
  block&.call(self)
125
121
  end
126
122
 
127
- sig { params(node: Node).void }
123
+ #: (Node node) -> void
128
124
  def <<(node)
129
125
  node.parent_tree = self
130
126
  @nodes << node
131
127
  end
132
128
 
133
- sig { returns(T::Boolean) }
129
+ #: -> bool
134
130
  def empty?
135
131
  nodes.empty?
136
132
  end
137
133
  end
138
134
 
139
135
  class File
140
- extend T::Sig
141
-
142
- sig { returns(Tree) }
136
+ #: Tree
143
137
  attr_accessor :root
144
138
 
145
- sig { returns(T.nilable(String)) }
139
+ #: String?
146
140
  attr_accessor :strictness
147
141
 
148
- sig { returns(T::Array[Comment]) }
142
+ #: Array[Comment]
149
143
  attr_accessor :comments
150
144
 
151
- sig do
152
- params(
153
- strictness: T.nilable(String),
154
- comments: T::Array[Comment],
155
- block: T.nilable(T.proc.params(file: File).void),
156
- ).void
157
- end
145
+ #: (?strictness: String?, ?comments: Array[Comment]) ?{ (File file) -> void } -> void
158
146
  def initialize(strictness: nil, comments: [], &block)
159
147
  @root = T.let(Tree.new, Tree)
160
148
  @strictness = strictness
@@ -162,12 +150,12 @@ module RBI
162
150
  block&.call(self)
163
151
  end
164
152
 
165
- sig { params(node: Node).void }
153
+ #: (Node node) -> void
166
154
  def <<(node)
167
155
  @root << node
168
156
  end
169
157
 
170
- sig { returns(T::Boolean) }
158
+ #: -> bool
171
159
  def empty?
172
160
  @root.empty?
173
161
  end
@@ -176,6 +164,7 @@ module RBI
176
164
  # Scopes
177
165
 
178
166
  class Scope < Tree
167
+ extend T::Sig
179
168
  extend T::Helpers
180
169
 
181
170
  abstract!
@@ -183,33 +172,26 @@ module RBI
183
172
  sig { abstract.returns(String) }
184
173
  def fully_qualified_name; end
185
174
 
186
- sig { override.returns(String) }
175
+ # @override
176
+ #: -> String
187
177
  def to_s
188
178
  fully_qualified_name
189
179
  end
190
180
  end
191
181
 
192
182
  class Module < Scope
193
- extend T::Sig
194
-
195
- sig { returns(String) }
183
+ #: String
196
184
  attr_accessor :name
197
185
 
198
- sig do
199
- params(
200
- name: String,
201
- loc: T.nilable(Loc),
202
- comments: T::Array[Comment],
203
- block: T.nilable(T.proc.params(node: Module).void),
204
- ).void
205
- end
186
+ #: (String name, ?loc: Loc?, ?comments: Array[Comment]) ?{ (Module node) -> void } -> void
206
187
  def initialize(name, loc: nil, comments: [], &block)
207
188
  super(loc: loc, comments: comments) {}
208
189
  @name = name
209
190
  block&.call(self)
210
191
  end
211
192
 
212
- sig { override.returns(String) }
193
+ # @override
194
+ #: -> String
213
195
  def fully_qualified_name
214
196
  return name if name.start_with?("::")
215
197
 
@@ -218,23 +200,13 @@ module RBI
218
200
  end
219
201
 
220
202
  class Class < Scope
221
- extend T::Sig
222
-
223
- sig { returns(String) }
203
+ #: String
224
204
  attr_accessor :name
225
205
 
226
- sig { returns(T.nilable(String)) }
206
+ #: String?
227
207
  attr_accessor :superclass_name
228
208
 
229
- sig do
230
- params(
231
- name: String,
232
- superclass_name: T.nilable(String),
233
- loc: T.nilable(Loc),
234
- comments: T::Array[Comment],
235
- block: T.nilable(T.proc.params(node: Class).void),
236
- ).void
237
- end
209
+ #: (String name, ?superclass_name: String?, ?loc: Loc?, ?comments: Array[Comment]) ?{ (Class node) -> void } -> void
238
210
  def initialize(name, superclass_name: nil, loc: nil, comments: [], &block)
239
211
  super(loc: loc, comments: comments) {}
240
212
  @name = name
@@ -242,7 +214,8 @@ module RBI
242
214
  block&.call(self)
243
215
  end
244
216
 
245
- sig { override.returns(String) }
217
+ # @override
218
+ #: -> String
246
219
  def fully_qualified_name
247
220
  return name if name.start_with?("::")
248
221
 
@@ -251,48 +224,30 @@ module RBI
251
224
  end
252
225
 
253
226
  class SingletonClass < Scope
254
- extend T::Sig
255
-
256
- sig do
257
- params(
258
- loc: T.nilable(Loc),
259
- comments: T::Array[Comment],
260
- block: T.nilable(T.proc.params(node: SingletonClass).void),
261
- ).void
262
- end
227
+ #: (?loc: Loc?, ?comments: Array[Comment]) ?{ (SingletonClass node) -> void } -> void
263
228
  def initialize(loc: nil, comments: [], &block)
264
229
  super {}
265
230
  block&.call(self)
266
231
  end
267
232
 
268
- sig { override.returns(String) }
233
+ # @override
234
+ #: -> String
269
235
  def fully_qualified_name
270
236
  "#{parent_scope&.fully_qualified_name}::<self>"
271
237
  end
272
238
  end
273
239
 
274
240
  class Struct < Scope
275
- extend T::Sig
276
-
277
- sig { returns(String) }
241
+ #: String
278
242
  attr_accessor :name
279
243
 
280
- sig { returns(T::Array[Symbol]) }
244
+ #: Array[Symbol]
281
245
  attr_accessor :members
282
246
 
283
- sig { returns(T::Boolean) }
247
+ #: bool
284
248
  attr_accessor :keyword_init
285
249
 
286
- sig do
287
- params(
288
- name: String,
289
- members: T::Array[Symbol],
290
- keyword_init: T::Boolean,
291
- loc: T.nilable(Loc),
292
- comments: T::Array[Comment],
293
- block: T.nilable(T.proc.params(struct: Struct).void),
294
- ).void
295
- end
250
+ #: (String name, ?members: Array[Symbol], ?keyword_init: bool, ?loc: Loc?, ?comments: Array[Comment]) ?{ (Struct struct) -> void } -> void
296
251
  def initialize(name, members: [], keyword_init: false, loc: nil, comments: [], &block)
297
252
  super(loc: loc, comments: comments) {}
298
253
  @name = name
@@ -301,7 +256,8 @@ module RBI
301
256
  block&.call(self)
302
257
  end
303
258
 
304
- sig { override.returns(String) }
259
+ # @override
260
+ #: -> String
305
261
  def fully_qualified_name
306
262
  return name if name.start_with?("::")
307
263
 
@@ -312,20 +268,10 @@ module RBI
312
268
  # Consts
313
269
 
314
270
  class Const < NodeWithComments
315
- extend T::Sig
316
-
317
- sig { returns(String) }
271
+ #: String
318
272
  attr_reader :name, :value
319
273
 
320
- sig do
321
- params(
322
- name: String,
323
- value: String,
324
- loc: T.nilable(Loc),
325
- comments: T::Array[Comment],
326
- block: T.nilable(T.proc.params(node: Const).void),
327
- ).void
328
- end
274
+ #: (String name, String value, ?loc: Loc?, ?comments: Array[Comment]) ?{ (Const node) -> void } -> void
329
275
  def initialize(name, value, loc: nil, comments: [], &block)
330
276
  super(loc: loc, comments: comments)
331
277
  @name = name
@@ -333,14 +279,15 @@ module RBI
333
279
  block&.call(self)
334
280
  end
335
281
 
336
- sig { returns(String) }
282
+ #: -> String
337
283
  def fully_qualified_name
338
284
  return name if name.start_with?("::")
339
285
 
340
286
  "#{parent_scope&.fully_qualified_name}::#{name}"
341
287
  end
342
288
 
343
- sig { override.returns(String) }
289
+ # @override
290
+ #: -> String
344
291
  def to_s
345
292
  fully_qualified_name
346
293
  end
@@ -354,25 +301,16 @@ module RBI
354
301
 
355
302
  abstract!
356
303
 
357
- sig { returns(T::Array[Symbol]) }
304
+ #: Array[Symbol]
358
305
  attr_reader :names
359
306
 
360
- sig { returns(Visibility) }
307
+ #: Visibility
361
308
  attr_accessor :visibility
362
309
 
363
- sig { returns(T::Array[Sig]) }
310
+ #: Array[Sig]
364
311
  attr_reader :sigs
365
312
 
366
- sig do
367
- params(
368
- name: Symbol,
369
- names: T::Array[Symbol],
370
- visibility: Visibility,
371
- sigs: T::Array[Sig],
372
- loc: T.nilable(Loc),
373
- comments: T::Array[Comment],
374
- ).void
375
- end
313
+ #: (Symbol name, Array[Symbol] names, ?visibility: Visibility, ?sigs: Array[Sig], ?loc: Loc?, ?comments: Array[Comment]) -> void
376
314
  def initialize(name, names, visibility: Public.new, sigs: [], loc: nil, comments: [])
377
315
  super(loc: loc, comments: comments)
378
316
  @names = T.let([name, *names], T::Array[Symbol])
@@ -385,31 +323,21 @@ module RBI
385
323
  end
386
324
 
387
325
  class AttrAccessor < Attr
388
- extend T::Sig
389
-
390
- sig do
391
- params(
392
- name: Symbol,
393
- names: Symbol,
394
- visibility: Visibility,
395
- sigs: T::Array[Sig],
396
- loc: T.nilable(Loc),
397
- comments: T::Array[Comment],
398
- block: T.nilable(T.proc.params(node: AttrAccessor).void),
399
- ).void
400
- end
326
+ #: (Symbol name, *Symbol names, ?visibility: Visibility, ?sigs: Array[Sig], ?loc: Loc?, ?comments: Array[Comment]) ?{ (AttrAccessor node) -> void } -> void
401
327
  def initialize(name, *names, visibility: Public.new, sigs: [], loc: nil, comments: [], &block)
402
328
  super(name, names, loc: loc, visibility: visibility, sigs: sigs, comments: comments)
403
329
  block&.call(self)
404
330
  end
405
331
 
406
- sig { override.returns(T::Array[String]) }
332
+ # @override
333
+ #: -> Array[String]
407
334
  def fully_qualified_names
408
335
  parent_name = parent_scope&.fully_qualified_name
409
336
  names.flat_map { |name| ["#{parent_name}##{name}", "#{parent_name}##{name}="] }
410
337
  end
411
338
 
412
- sig { override.returns(String) }
339
+ # @override
340
+ #: -> String
413
341
  def to_s
414
342
  symbols = names.map { |name| ":#{name}" }.join(", ")
415
343
  "#{parent_scope&.fully_qualified_name}.attr_accessor(#{symbols})"
@@ -417,31 +345,21 @@ module RBI
417
345
  end
418
346
 
419
347
  class AttrReader < Attr
420
- extend T::Sig
421
-
422
- sig do
423
- params(
424
- name: Symbol,
425
- names: Symbol,
426
- visibility: Visibility,
427
- sigs: T::Array[Sig],
428
- loc: T.nilable(Loc),
429
- comments: T::Array[Comment],
430
- block: T.nilable(T.proc.params(node: AttrReader).void),
431
- ).void
432
- end
348
+ #: (Symbol name, *Symbol names, ?visibility: Visibility, ?sigs: Array[Sig], ?loc: Loc?, ?comments: Array[Comment]) ?{ (AttrReader node) -> void } -> void
433
349
  def initialize(name, *names, visibility: Public.new, sigs: [], loc: nil, comments: [], &block)
434
350
  super(name, names, loc: loc, visibility: visibility, sigs: sigs, comments: comments)
435
351
  block&.call(self)
436
352
  end
437
353
 
438
- sig { override.returns(T::Array[String]) }
354
+ # @override
355
+ #: -> Array[String]
439
356
  def fully_qualified_names
440
357
  parent_name = parent_scope&.fully_qualified_name
441
358
  names.map { |name| "#{parent_name}##{name}" }
442
359
  end
443
360
 
444
- sig { override.returns(String) }
361
+ # @override
362
+ #: -> String
445
363
  def to_s
446
364
  symbols = names.map { |name| ":#{name}" }.join(", ")
447
365
  "#{parent_scope&.fully_qualified_name}.attr_reader(#{symbols})"
@@ -449,31 +367,21 @@ module RBI
449
367
  end
450
368
 
451
369
  class AttrWriter < Attr
452
- extend T::Sig
453
-
454
- sig do
455
- params(
456
- name: Symbol,
457
- names: Symbol,
458
- visibility: Visibility,
459
- sigs: T::Array[Sig],
460
- loc: T.nilable(Loc),
461
- comments: T::Array[Comment],
462
- block: T.nilable(T.proc.params(node: AttrWriter).void),
463
- ).void
464
- end
370
+ #: (Symbol name, *Symbol names, ?visibility: Visibility, ?sigs: Array[Sig], ?loc: Loc?, ?comments: Array[Comment]) ?{ (AttrWriter node) -> void } -> void
465
371
  def initialize(name, *names, visibility: Public.new, sigs: [], loc: nil, comments: [], &block)
466
372
  super(name, names, loc: loc, visibility: visibility, sigs: sigs, comments: comments)
467
373
  block&.call(self)
468
374
  end
469
375
 
470
- sig { override.returns(T::Array[String]) }
376
+ # @override
377
+ #: -> Array[String]
471
378
  def fully_qualified_names
472
379
  parent_name = parent_scope&.fully_qualified_name
473
380
  names.map { |name| "#{parent_name}##{name}=" }
474
381
  end
475
382
 
476
- sig { override.returns(String) }
383
+ # @override
384
+ #: -> String
477
385
  def to_s
478
386
  symbols = names.map { |name| ":#{name}" }.join(", ")
479
387
  "#{parent_scope&.fully_qualified_name}.attr_writer(#{symbols})"
@@ -483,35 +391,22 @@ module RBI
483
391
  # Methods and args
484
392
 
485
393
  class Method < NodeWithComments
486
- extend T::Sig
487
-
488
- sig { returns(String) }
394
+ #: String
489
395
  attr_accessor :name
490
396
 
491
- sig { returns(T::Array[Param]) }
397
+ #: Array[Param]
492
398
  attr_reader :params
493
399
 
494
- sig { returns(T::Boolean) }
400
+ #: bool
495
401
  attr_accessor :is_singleton
496
402
 
497
- sig { returns(Visibility) }
403
+ #: Visibility
498
404
  attr_accessor :visibility
499
405
 
500
- sig { returns(T::Array[Sig]) }
406
+ #: Array[Sig]
501
407
  attr_accessor :sigs
502
408
 
503
- sig do
504
- params(
505
- name: String,
506
- params: T::Array[Param],
507
- is_singleton: T::Boolean,
508
- visibility: Visibility,
509
- sigs: T::Array[Sig],
510
- loc: T.nilable(Loc),
511
- comments: T::Array[Comment],
512
- block: T.nilable(T.proc.params(node: Method).void),
513
- ).void
514
- end
409
+ #: (String name, ?params: Array[Param], ?is_singleton: bool, ?visibility: Visibility, ?sigs: Array[Sig], ?loc: Loc?, ?comments: Array[Comment]) ?{ (Method node) -> void } -> void
515
410
  def initialize(
516
411
  name,
517
412
  params: [],
@@ -531,59 +426,47 @@ module RBI
531
426
  block&.call(self)
532
427
  end
533
428
 
534
- sig { params(param: Param).void }
429
+ #: (Param param) -> void
535
430
  def <<(param)
536
431
  @params << param
537
432
  end
538
433
 
539
- sig { params(name: String).void }
434
+ #: (String name) -> void
540
435
  def add_param(name)
541
436
  @params << ReqParam.new(name)
542
437
  end
543
438
 
544
- sig { params(name: String, default_value: String).void }
439
+ #: (String name, String default_value) -> void
545
440
  def add_opt_param(name, default_value)
546
441
  @params << OptParam.new(name, default_value)
547
442
  end
548
443
 
549
- sig { params(name: String).void }
444
+ #: (String name) -> void
550
445
  def add_rest_param(name)
551
446
  @params << RestParam.new(name)
552
447
  end
553
448
 
554
- sig { params(name: String).void }
449
+ #: (String name) -> void
555
450
  def add_kw_param(name)
556
451
  @params << KwParam.new(name)
557
452
  end
558
453
 
559
- sig { params(name: String, default_value: String).void }
454
+ #: (String name, String default_value) -> void
560
455
  def add_kw_opt_param(name, default_value)
561
456
  @params << KwOptParam.new(name, default_value)
562
457
  end
563
458
 
564
- sig { params(name: String).void }
459
+ #: (String name) -> void
565
460
  def add_kw_rest_param(name)
566
461
  @params << KwRestParam.new(name)
567
462
  end
568
463
 
569
- sig { params(name: String).void }
464
+ #: (String name) -> void
570
465
  def add_block_param(name)
571
466
  @params << BlockParam.new(name)
572
467
  end
573
468
 
574
- sig do
575
- params(
576
- params: T::Array[SigParam],
577
- return_type: T.any(String, Type),
578
- is_abstract: T::Boolean,
579
- is_override: T::Boolean,
580
- is_overridable: T::Boolean,
581
- is_final: T::Boolean,
582
- type_params: T::Array[String],
583
- checked: T.nilable(Symbol),
584
- block: T.nilable(T.proc.params(node: Sig).void),
585
- ).void
586
- end
469
+ #: (?params: Array[SigParam], ?return_type: (String | Type), ?is_abstract: bool, ?is_override: bool, ?is_overridable: bool, ?is_final: bool, ?type_params: Array[String], ?checked: Symbol?) ?{ (Sig node) -> void } -> void
587
470
  def add_sig(
588
471
  params: [],
589
472
  return_type: "void",
@@ -609,7 +492,7 @@ module RBI
609
492
  @sigs << sig
610
493
  end
611
494
 
612
- sig { returns(String) }
495
+ #: -> String
613
496
  def fully_qualified_name
614
497
  if is_singleton
615
498
  "#{parent_scope&.fully_qualified_name}::#{name}"
@@ -618,7 +501,8 @@ module RBI
618
501
  end
619
502
  end
620
503
 
621
- sig { override.returns(String) }
504
+ # @override
505
+ #: -> String
622
506
  def to_s
623
507
  "#{fully_qualified_name}(#{params.join(", ")})"
624
508
  end
@@ -626,215 +510,149 @@ module RBI
626
510
 
627
511
  class Param < NodeWithComments
628
512
  extend T::Helpers
629
- extend T::Sig
630
513
 
631
514
  abstract!
632
515
 
633
- sig { returns(String) }
516
+ #: String
634
517
  attr_reader :name
635
518
 
636
- sig do
637
- params(
638
- name: String,
639
- loc: T.nilable(Loc),
640
- comments: T::Array[Comment],
641
- ).void
642
- end
519
+ #: (String name, ?loc: Loc?, ?comments: Array[Comment]) -> void
643
520
  def initialize(name, loc: nil, comments: [])
644
521
  super(loc: loc, comments: comments)
645
522
  @name = name
646
523
  end
647
524
 
648
- sig { override.returns(String) }
525
+ # @override
526
+ #: -> String
649
527
  def to_s
650
528
  name
651
529
  end
652
530
  end
653
531
 
654
532
  class ReqParam < Param
655
- extend T::Sig
656
-
657
- sig do
658
- params(
659
- name: String,
660
- loc: T.nilable(Loc),
661
- comments: T::Array[Comment],
662
- block: T.nilable(T.proc.params(node: ReqParam).void),
663
- ).void
664
- end
533
+ #: (String name, ?loc: Loc?, ?comments: Array[Comment]) ?{ (ReqParam node) -> void } -> void
665
534
  def initialize(name, loc: nil, comments: [], &block)
666
535
  super(name, loc: loc, comments: comments)
667
536
  block&.call(self)
668
537
  end
669
538
 
670
- sig { params(other: T.nilable(Object)).returns(T::Boolean) }
539
+ #: (Object? other) -> bool
671
540
  def ==(other)
672
541
  ReqParam === other && name == other.name
673
542
  end
674
543
  end
675
544
 
676
545
  class OptParam < Param
677
- extend T::Sig
678
-
679
- sig { returns(String) }
546
+ #: String
680
547
  attr_reader :value
681
548
 
682
- sig do
683
- params(
684
- name: String,
685
- value: String,
686
- loc: T.nilable(Loc),
687
- comments: T::Array[Comment],
688
- block: T.nilable(T.proc.params(node: OptParam).void),
689
- ).void
690
- end
549
+ #: (String name, String value, ?loc: Loc?, ?comments: Array[Comment]) ?{ (OptParam node) -> void } -> void
691
550
  def initialize(name, value, loc: nil, comments: [], &block)
692
551
  super(name, loc: loc, comments: comments)
693
552
  @value = value
694
553
  block&.call(self)
695
554
  end
696
555
 
697
- sig { params(other: T.nilable(Object)).returns(T::Boolean) }
556
+ #: (Object? other) -> bool
698
557
  def ==(other)
699
558
  OptParam === other && name == other.name
700
559
  end
701
560
  end
702
561
 
703
562
  class RestParam < Param
704
- extend T::Sig
705
-
706
- sig do
707
- params(
708
- name: String,
709
- loc: T.nilable(Loc),
710
- comments: T::Array[Comment],
711
- block: T.nilable(T.proc.params(node: RestParam).void),
712
- ).void
713
- end
563
+ #: (String name, ?loc: Loc?, ?comments: Array[Comment]) ?{ (RestParam node) -> void } -> void
714
564
  def initialize(name, loc: nil, comments: [], &block)
715
565
  super(name, loc: loc, comments: comments)
716
566
  block&.call(self)
717
567
  end
718
568
 
719
- sig { override.returns(String) }
569
+ # @override
570
+ #: -> String
720
571
  def to_s
721
572
  "*#{name}"
722
573
  end
723
574
 
724
- sig { params(other: T.nilable(Object)).returns(T::Boolean) }
575
+ #: (Object? other) -> bool
725
576
  def ==(other)
726
577
  RestParam === other && name == other.name
727
578
  end
728
579
  end
729
580
 
730
581
  class KwParam < Param
731
- extend T::Sig
732
-
733
- sig do
734
- params(
735
- name: String,
736
- loc: T.nilable(Loc),
737
- comments: T::Array[Comment],
738
- block: T.nilable(T.proc.params(node: KwParam).void),
739
- ).void
740
- end
582
+ #: (String name, ?loc: Loc?, ?comments: Array[Comment]) ?{ (KwParam node) -> void } -> void
741
583
  def initialize(name, loc: nil, comments: [], &block)
742
584
  super(name, loc: loc, comments: comments)
743
585
  block&.call(self)
744
586
  end
745
587
 
746
- sig { override.returns(String) }
588
+ # @override
589
+ #: -> String
747
590
  def to_s
748
591
  "#{name}:"
749
592
  end
750
593
 
751
- sig { params(other: T.nilable(Object)).returns(T::Boolean) }
594
+ #: (Object? other) -> bool
752
595
  def ==(other)
753
596
  KwParam === other && name == other.name
754
597
  end
755
598
  end
756
599
 
757
600
  class KwOptParam < Param
758
- extend T::Sig
759
-
760
- sig { returns(String) }
601
+ #: String
761
602
  attr_reader :value
762
603
 
763
- sig do
764
- params(
765
- name: String,
766
- value: String,
767
- loc: T.nilable(Loc),
768
- comments: T::Array[Comment],
769
- block: T.nilable(T.proc.params(node: KwOptParam).void),
770
- ).void
771
- end
604
+ #: (String name, String value, ?loc: Loc?, ?comments: Array[Comment]) ?{ (KwOptParam node) -> void } -> void
772
605
  def initialize(name, value, loc: nil, comments: [], &block)
773
606
  super(name, loc: loc, comments: comments)
774
607
  @value = value
775
608
  block&.call(self)
776
609
  end
777
610
 
778
- sig { override.returns(String) }
611
+ # @override
612
+ #: -> String
779
613
  def to_s
780
614
  "#{name}:"
781
615
  end
782
616
 
783
- sig { params(other: T.nilable(Object)).returns(T::Boolean) }
617
+ #: (Object? other) -> bool
784
618
  def ==(other)
785
619
  KwOptParam === other && name == other.name
786
620
  end
787
621
  end
788
622
 
789
623
  class KwRestParam < Param
790
- extend T::Sig
791
-
792
- sig do
793
- params(
794
- name: String,
795
- loc: T.nilable(Loc),
796
- comments: T::Array[Comment],
797
- block: T.nilable(T.proc.params(node: KwRestParam).void),
798
- ).void
799
- end
624
+ #: (String name, ?loc: Loc?, ?comments: Array[Comment]) ?{ (KwRestParam node) -> void } -> void
800
625
  def initialize(name, loc: nil, comments: [], &block)
801
626
  super(name, loc: loc, comments: comments)
802
627
  block&.call(self)
803
628
  end
804
629
 
805
- sig { override.returns(String) }
630
+ # @override
631
+ #: -> String
806
632
  def to_s
807
633
  "**#{name}:"
808
634
  end
809
635
 
810
- sig { params(other: T.nilable(Object)).returns(T::Boolean) }
636
+ #: (Object? other) -> bool
811
637
  def ==(other)
812
638
  KwRestParam === other && name == other.name
813
639
  end
814
640
  end
815
641
 
816
642
  class BlockParam < Param
817
- extend T::Sig
818
-
819
- sig do
820
- params(
821
- name: String,
822
- loc: T.nilable(Loc),
823
- comments: T::Array[Comment],
824
- block: T.nilable(T.proc.params(node: BlockParam).void),
825
- ).void
826
- end
643
+ #: (String name, ?loc: Loc?, ?comments: Array[Comment]) ?{ (BlockParam node) -> void } -> void
827
644
  def initialize(name, loc: nil, comments: [], &block)
828
645
  super(name, loc: loc, comments: comments)
829
646
  block&.call(self)
830
647
  end
831
648
 
832
- sig { override.returns(String) }
649
+ # @override
650
+ #: -> String
833
651
  def to_s
834
652
  "&#{name}"
835
653
  end
836
654
 
837
- sig { params(other: T.nilable(Object)).returns(T::Boolean) }
655
+ #: (Object? other) -> bool
838
656
  def ==(other)
839
657
  BlockParam === other && name == other.name
840
658
  end
@@ -843,22 +661,14 @@ module RBI
843
661
  # Mixins
844
662
 
845
663
  class Mixin < NodeWithComments
846
- extend T::Sig
847
664
  extend T::Helpers
848
665
 
849
666
  abstract!
850
667
 
851
- sig { returns(T::Array[String]) }
668
+ #: Array[String]
852
669
  attr_reader :names
853
670
 
854
- sig do
855
- params(
856
- name: String,
857
- names: T::Array[String],
858
- loc: T.nilable(Loc),
859
- comments: T::Array[Comment],
860
- ).void
861
- end
671
+ #: (String name, Array[String] names, ?loc: Loc?, ?comments: Array[Comment]) -> void
862
672
  def initialize(name, names, loc: nil, comments: [])
863
673
  super(loc: loc, comments: comments)
864
674
  @names = T.let([name, *names], T::Array[String])
@@ -866,46 +676,28 @@ module RBI
866
676
  end
867
677
 
868
678
  class Include < Mixin
869
- extend T::Sig
870
-
871
- sig do
872
- params(
873
- name: String,
874
- names: String,
875
- loc: T.nilable(Loc),
876
- comments: T::Array[Comment],
877
- block: T.nilable(T.proc.params(node: Include).void),
878
- ).void
879
- end
679
+ #: (String name, *String names, ?loc: Loc?, ?comments: Array[Comment]) ?{ (Include node) -> void } -> void
880
680
  def initialize(name, *names, loc: nil, comments: [], &block)
881
681
  super(name, names, loc: loc, comments: comments)
882
682
  block&.call(self)
883
683
  end
884
684
 
885
- sig { override.returns(String) }
685
+ # @override
686
+ #: -> String
886
687
  def to_s
887
688
  "#{parent_scope&.fully_qualified_name}.include(#{names.join(", ")})"
888
689
  end
889
690
  end
890
691
 
891
692
  class Extend < Mixin
892
- extend T::Sig
893
-
894
- sig do
895
- params(
896
- name: String,
897
- names: String,
898
- loc: T.nilable(Loc),
899
- comments: T::Array[Comment],
900
- block: T.nilable(T.proc.params(node: Extend).void),
901
- ).void
902
- end
693
+ #: (String name, *String names, ?loc: Loc?, ?comments: Array[Comment]) ?{ (Extend node) -> void } -> void
903
694
  def initialize(name, *names, loc: nil, comments: [], &block)
904
695
  super(name, names, loc: loc, comments: comments)
905
696
  block&.call(self)
906
697
  end
907
698
 
908
- sig { override.returns(String) }
699
+ # @override
700
+ #: -> String
909
701
  def to_s
910
702
  "#{parent_scope&.fully_qualified_name}.extend(#{names.join(", ")})"
911
703
  end
@@ -914,53 +706,44 @@ module RBI
914
706
  # Visibility
915
707
 
916
708
  class Visibility < NodeWithComments
917
- extend T::Sig
918
709
  extend T::Helpers
919
710
 
920
711
  abstract!
921
712
 
922
- sig { returns(Symbol) }
713
+ #: Symbol
923
714
  attr_reader :visibility
924
715
 
925
- sig { params(visibility: Symbol, loc: T.nilable(Loc), comments: T::Array[Comment]).void }
716
+ #: (Symbol visibility, ?loc: Loc?, ?comments: Array[Comment]) -> void
926
717
  def initialize(visibility, loc: nil, comments: [])
927
718
  super(loc: loc, comments: comments)
928
719
  @visibility = visibility
929
720
  end
930
721
 
931
- sig { params(other: T.nilable(Object)).returns(T::Boolean) }
722
+ #: (Object? other) -> bool
932
723
  def ==(other)
933
724
  return false unless other.is_a?(Visibility)
934
725
 
935
726
  visibility == other.visibility
936
727
  end
937
728
 
938
- sig { returns(T::Boolean) }
729
+ #: -> bool
939
730
  def public?
940
731
  visibility == :public
941
732
  end
942
733
 
943
- sig { returns(T::Boolean) }
734
+ #: -> bool
944
735
  def protected?
945
736
  visibility == :protected
946
737
  end
947
738
 
948
- sig { returns(T::Boolean) }
739
+ #: -> bool
949
740
  def private?
950
741
  visibility == :private
951
742
  end
952
743
  end
953
744
 
954
745
  class Public < Visibility
955
- extend T::Sig
956
-
957
- sig do
958
- params(
959
- loc: T.nilable(Loc),
960
- comments: T::Array[Comment],
961
- block: T.nilable(T.proc.params(node: Public).void),
962
- ).void
963
- end
746
+ #: (?loc: Loc?, ?comments: Array[Comment]) ?{ (Public node) -> void } -> void
964
747
  def initialize(loc: nil, comments: [], &block)
965
748
  super(:public, loc: loc, comments: comments)
966
749
  block&.call(self)
@@ -968,15 +751,7 @@ module RBI
968
751
  end
969
752
 
970
753
  class Protected < Visibility
971
- extend T::Sig
972
-
973
- sig do
974
- params(
975
- loc: T.nilable(Loc),
976
- comments: T::Array[Comment],
977
- block: T.nilable(T.proc.params(node: Protected).void),
978
- ).void
979
- end
754
+ #: (?loc: Loc?, ?comments: Array[Comment]) ?{ (Protected node) -> void } -> void
980
755
  def initialize(loc: nil, comments: [], &block)
981
756
  super(:protected, loc: loc, comments: comments)
982
757
  block&.call(self)
@@ -984,15 +759,7 @@ module RBI
984
759
  end
985
760
 
986
761
  class Private < Visibility
987
- extend T::Sig
988
-
989
- sig do
990
- params(
991
- loc: T.nilable(Loc),
992
- comments: T::Array[Comment],
993
- block: T.nilable(T.proc.params(node: Private).void),
994
- ).void
995
- end
762
+ #: (?loc: Loc?, ?comments: Array[Comment]) ?{ (Private node) -> void } -> void
996
763
  def initialize(loc: nil, comments: [], &block)
997
764
  super(:private, loc: loc, comments: comments)
998
765
  block&.call(self)
@@ -1002,23 +769,13 @@ module RBI
1002
769
  # Sends
1003
770
 
1004
771
  class Send < NodeWithComments
1005
- extend T::Sig
1006
-
1007
- sig { returns(String) }
772
+ #: String
1008
773
  attr_reader :method
1009
774
 
1010
- sig { returns(T::Array[Arg]) }
775
+ #: Array[Arg]
1011
776
  attr_reader :args
1012
777
 
1013
- sig do
1014
- params(
1015
- method: String,
1016
- args: T::Array[Arg],
1017
- loc: T.nilable(Loc),
1018
- comments: T::Array[Comment],
1019
- block: T.nilable(T.proc.params(node: Send).void),
1020
- ).void
1021
- end
778
+ #: (String method, ?Array[Arg] args, ?loc: Loc?, ?comments: Array[Comment]) ?{ (Send node) -> void } -> void
1022
779
  def initialize(method, args = [], loc: nil, comments: [], &block)
1023
780
  super(loc: loc, comments: comments)
1024
781
  @method = method
@@ -1026,74 +783,59 @@ module RBI
1026
783
  block&.call(self)
1027
784
  end
1028
785
 
1029
- sig { params(arg: Arg).void }
786
+ #: (Arg arg) -> void
1030
787
  def <<(arg)
1031
788
  @args << arg
1032
789
  end
1033
790
 
1034
- sig { params(other: T.nilable(Object)).returns(T::Boolean) }
791
+ #: (Object? other) -> bool
1035
792
  def ==(other)
1036
793
  Send === other && method == other.method && args == other.args
1037
794
  end
1038
795
 
1039
- sig { returns(String) }
796
+ #: -> String
1040
797
  def to_s
1041
798
  "#{parent_scope&.fully_qualified_name}.#{method}(#{args.join(", ")})"
1042
799
  end
1043
800
  end
1044
801
 
1045
802
  class Arg < Node
1046
- extend T::Sig
1047
-
1048
- sig { returns(String) }
803
+ #: String
1049
804
  attr_reader :value
1050
805
 
1051
- sig do
1052
- params(
1053
- value: String,
1054
- loc: T.nilable(Loc),
1055
- ).void
1056
- end
806
+ #: (String value, ?loc: Loc?) -> void
1057
807
  def initialize(value, loc: nil)
1058
808
  super(loc: loc)
1059
809
  @value = value
1060
810
  end
1061
811
 
1062
- sig { params(other: T.nilable(Object)).returns(T::Boolean) }
812
+ #: (Object? other) -> bool
1063
813
  def ==(other)
1064
814
  Arg === other && value == other.value
1065
815
  end
1066
816
 
1067
- sig { returns(String) }
817
+ #: -> String
1068
818
  def to_s
1069
819
  value
1070
820
  end
1071
821
  end
1072
822
 
1073
823
  class KwArg < Arg
1074
- extend T::Sig
1075
-
1076
- sig { returns(String) }
824
+ #: String
1077
825
  attr_reader :keyword
1078
826
 
1079
- sig do
1080
- params(
1081
- keyword: String,
1082
- value: String,
1083
- loc: T.nilable(Loc),
1084
- ).void
1085
- end
827
+ #: (String keyword, String value, ?loc: Loc?) -> void
1086
828
  def initialize(keyword, value, loc: nil)
1087
829
  super(value, loc: loc)
1088
830
  @keyword = keyword
1089
831
  end
1090
832
 
1091
- sig { params(other: T.nilable(Object)).returns(T::Boolean) }
833
+ #: (Object? other) -> bool
1092
834
  def ==(other)
1093
835
  KwArg === other && value == other.value && keyword == other.keyword
1094
836
  end
1095
837
 
1096
- sig { returns(String) }
838
+ #: -> String
1097
839
  def to_s
1098
840
  "#{keyword}: #{value}"
1099
841
  end
@@ -1102,39 +844,22 @@ module RBI
1102
844
  # Sorbet's sigs
1103
845
 
1104
846
  class Sig < NodeWithComments
1105
- extend T::Sig
1106
-
1107
- sig { returns(T::Array[SigParam]) }
847
+ #: Array[SigParam]
1108
848
  attr_reader :params
1109
849
 
1110
- sig { returns(T.any(Type, String)) }
850
+ #: (Type | String)
1111
851
  attr_accessor :return_type
1112
852
 
1113
- sig { returns(T::Boolean) }
853
+ #: bool
1114
854
  attr_accessor :is_abstract, :is_override, :is_overridable, :is_final, :allow_incompatible_override
1115
855
 
1116
- sig { returns(T::Array[String]) }
856
+ #: Array[String]
1117
857
  attr_reader :type_params
1118
858
 
1119
- sig { returns(T.nilable(Symbol)) }
859
+ #: Symbol?
1120
860
  attr_accessor :checked
1121
861
 
1122
- sig do
1123
- params(
1124
- params: T::Array[SigParam],
1125
- return_type: T.any(Type, String),
1126
- is_abstract: T::Boolean,
1127
- is_override: T::Boolean,
1128
- is_overridable: T::Boolean,
1129
- is_final: T::Boolean,
1130
- allow_incompatible_override: T::Boolean,
1131
- type_params: T::Array[String],
1132
- checked: T.nilable(Symbol),
1133
- loc: T.nilable(Loc),
1134
- comments: T::Array[Comment],
1135
- block: T.nilable(T.proc.params(node: Sig).void),
1136
- ).void
1137
- end
862
+ #: (?params: Array[SigParam], ?return_type: (Type | String), ?is_abstract: bool, ?is_override: bool, ?is_overridable: bool, ?is_final: bool, ?allow_incompatible_override: bool, ?type_params: Array[String], ?checked: Symbol?, ?loc: Loc?, ?comments: Array[Comment]) ?{ (Sig node) -> void } -> void
1138
863
  def initialize(
1139
864
  params: [],
1140
865
  return_type: "void",
@@ -1162,17 +887,17 @@ module RBI
1162
887
  block&.call(self)
1163
888
  end
1164
889
 
1165
- sig { params(param: SigParam).void }
890
+ #: (SigParam param) -> void
1166
891
  def <<(param)
1167
892
  @params << param
1168
893
  end
1169
894
 
1170
- sig { params(name: String, type: T.any(Type, String)).void }
895
+ #: (String name, (Type | String) type) -> void
1171
896
  def add_param(name, type)
1172
897
  @params << SigParam.new(name, type)
1173
898
  end
1174
899
 
1175
- sig { params(other: Object).returns(T::Boolean) }
900
+ #: (Object other) -> bool
1176
901
  def ==(other)
1177
902
  return false unless other.is_a?(Sig)
1178
903
 
@@ -1183,23 +908,13 @@ module RBI
1183
908
  end
1184
909
 
1185
910
  class SigParam < NodeWithComments
1186
- extend T::Sig
1187
-
1188
- sig { returns(String) }
911
+ #: String
1189
912
  attr_reader :name
1190
913
 
1191
- sig { returns(T.any(Type, String)) }
914
+ #: (Type | String)
1192
915
  attr_reader :type
1193
916
 
1194
- sig do
1195
- params(
1196
- name: String,
1197
- type: T.any(Type, String),
1198
- loc: T.nilable(Loc),
1199
- comments: T::Array[Comment],
1200
- block: T.nilable(T.proc.params(node: SigParam).void),
1201
- ).void
1202
- end
917
+ #: (String name, (Type | String) type, ?loc: Loc?, ?comments: Array[Comment]) ?{ (SigParam node) -> void } -> void
1203
918
  def initialize(name, type, loc: nil, comments: [], &block)
1204
919
  super(loc: loc, comments: comments)
1205
920
  @name = name
@@ -1207,7 +922,7 @@ module RBI
1207
922
  block&.call(self)
1208
923
  end
1209
924
 
1210
- sig { params(other: Object).returns(T::Boolean) }
925
+ #: (Object other) -> bool
1211
926
  def ==(other)
1212
927
  other.is_a?(SigParam) && name == other.name && type.to_s == other.type.to_s
1213
928
  end
@@ -1216,16 +931,7 @@ module RBI
1216
931
  # Sorbet's T::Struct
1217
932
 
1218
933
  class TStruct < Class
1219
- extend T::Sig
1220
-
1221
- sig do
1222
- params(
1223
- name: String,
1224
- loc: T.nilable(Loc),
1225
- comments: T::Array[Comment],
1226
- block: T.nilable(T.proc.params(klass: TStruct).void),
1227
- ).void
1228
- end
934
+ #: (String name, ?loc: Loc?, ?comments: Array[Comment]) ?{ (TStruct klass) -> void } -> void
1229
935
  def initialize(name, loc: nil, comments: [], &block)
1230
936
  super(name, superclass_name: "::T::Struct", loc: loc, comments: comments) {}
1231
937
  block&.call(self)
@@ -1238,24 +944,16 @@ module RBI
1238
944
 
1239
945
  abstract!
1240
946
 
1241
- sig { returns(String) }
947
+ #: String
1242
948
  attr_accessor :name
1243
949
 
1244
- sig { returns(T.any(Type, String)) }
950
+ #: (Type | String)
1245
951
  attr_accessor :type
1246
952
 
1247
- sig { returns(T.nilable(String)) }
953
+ #: String?
1248
954
  attr_accessor :default
1249
955
 
1250
- sig do
1251
- params(
1252
- name: String,
1253
- type: T.any(Type, String),
1254
- default: T.nilable(String),
1255
- loc: T.nilable(Loc),
1256
- comments: T::Array[Comment],
1257
- ).void
1258
- end
956
+ #: (String name, (Type | String) type, ?default: String?, ?loc: Loc?, ?comments: Array[Comment]) -> void
1259
957
  def initialize(name, type, default: nil, loc: nil, comments: [])
1260
958
  super(loc: loc, comments: comments)
1261
959
  @name = name
@@ -1268,60 +966,42 @@ module RBI
1268
966
  end
1269
967
 
1270
968
  class TStructConst < TStructField
1271
- extend T::Sig
1272
-
1273
- sig do
1274
- params(
1275
- name: String,
1276
- type: T.any(Type, String),
1277
- default: T.nilable(String),
1278
- loc: T.nilable(Loc),
1279
- comments: T::Array[Comment],
1280
- block: T.nilable(T.proc.params(node: TStructConst).void),
1281
- ).void
1282
- end
969
+ #: (String name, (Type | String) type, ?default: String?, ?loc: Loc?, ?comments: Array[Comment]) ?{ (TStructConst node) -> void } -> void
1283
970
  def initialize(name, type, default: nil, loc: nil, comments: [], &block)
1284
971
  super(name, type, default: default, loc: loc, comments: comments)
1285
972
  block&.call(self)
1286
973
  end
1287
974
 
1288
- sig { override.returns(T::Array[String]) }
975
+ # @override
976
+ #: -> Array[String]
1289
977
  def fully_qualified_names
1290
978
  parent_name = parent_scope&.fully_qualified_name
1291
979
  ["#{parent_name}##{name}"]
1292
980
  end
1293
981
 
1294
- sig { override.returns(String) }
982
+ # @override
983
+ #: -> String
1295
984
  def to_s
1296
985
  "#{parent_scope&.fully_qualified_name}.const(:#{name})"
1297
986
  end
1298
987
  end
1299
988
 
1300
989
  class TStructProp < TStructField
1301
- extend T::Sig
1302
-
1303
- sig do
1304
- params(
1305
- name: String,
1306
- type: T.any(Type, String),
1307
- default: T.nilable(String),
1308
- loc: T.nilable(Loc),
1309
- comments: T::Array[Comment],
1310
- block: T.nilable(T.proc.params(node: TStructProp).void),
1311
- ).void
1312
- end
990
+ #: (String name, (Type | String) type, ?default: String?, ?loc: Loc?, ?comments: Array[Comment]) ?{ (TStructProp node) -> void } -> void
1313
991
  def initialize(name, type, default: nil, loc: nil, comments: [], &block)
1314
992
  super(name, type, default: default, loc: loc, comments: comments)
1315
993
  block&.call(self)
1316
994
  end
1317
995
 
1318
- sig { override.returns(T::Array[String]) }
996
+ # @override
997
+ #: -> Array[String]
1319
998
  def fully_qualified_names
1320
999
  parent_name = parent_scope&.fully_qualified_name
1321
1000
  ["#{parent_name}##{name}", "#{parent_name}##{name}="]
1322
1001
  end
1323
1002
 
1324
- sig { override.returns(String) }
1003
+ # @override
1004
+ #: -> String
1325
1005
  def to_s
1326
1006
  "#{parent_scope&.fully_qualified_name}.prop(:#{name})"
1327
1007
  end
@@ -1330,16 +1010,7 @@ module RBI
1330
1010
  # Sorbet's T::Enum
1331
1011
 
1332
1012
  class TEnum < Class
1333
- extend T::Sig
1334
-
1335
- sig do
1336
- params(
1337
- name: String,
1338
- loc: T.nilable(Loc),
1339
- comments: T::Array[Comment],
1340
- block: T.nilable(T.proc.params(klass: TEnum).void),
1341
- ).void
1342
- end
1013
+ #: (String name, ?loc: Loc?, ?comments: Array[Comment]) ?{ (TEnum klass) -> void } -> void
1343
1014
  def initialize(name, loc: nil, comments: [], &block)
1344
1015
  super(name, superclass_name: "::T::Enum", loc: loc, comments: comments) {}
1345
1016
  block&.call(self)
@@ -1347,26 +1018,20 @@ module RBI
1347
1018
  end
1348
1019
 
1349
1020
  class TEnumBlock < Scope
1350
- extend T::Sig
1351
-
1352
- sig do
1353
- params(
1354
- loc: T.nilable(Loc),
1355
- comments: T::Array[Comment],
1356
- block: T.nilable(T.proc.params(node: TEnumBlock).void),
1357
- ).void
1358
- end
1021
+ #: (?loc: Loc?, ?comments: Array[Comment]) ?{ (TEnumBlock node) -> void } -> void
1359
1022
  def initialize(loc: nil, comments: [], &block)
1360
1023
  super {}
1361
1024
  block&.call(self)
1362
1025
  end
1363
1026
 
1364
- sig { override.returns(String) }
1027
+ # @override
1028
+ #: -> String
1365
1029
  def fully_qualified_name
1366
1030
  "#{parent_scope&.fully_qualified_name}.enums"
1367
1031
  end
1368
1032
 
1369
- sig { override.returns(String) }
1033
+ # @override
1034
+ #: -> String
1370
1035
  def to_s
1371
1036
  fully_qualified_name
1372
1037
  end
@@ -1375,46 +1040,28 @@ module RBI
1375
1040
  # Sorbet's misc.
1376
1041
 
1377
1042
  class Helper < NodeWithComments
1378
- extend T::Helpers
1379
-
1380
- sig { returns(String) }
1043
+ #: String
1381
1044
  attr_reader :name
1382
1045
 
1383
- sig do
1384
- params(
1385
- name: String,
1386
- loc: T.nilable(Loc),
1387
- comments: T::Array[Comment],
1388
- block: T.nilable(T.proc.params(node: Helper).void),
1389
- ).void
1390
- end
1046
+ #: (String name, ?loc: Loc?, ?comments: Array[Comment]) ?{ (Helper node) -> void } -> void
1391
1047
  def initialize(name, loc: nil, comments: [], &block)
1392
1048
  super(loc: loc, comments: comments)
1393
1049
  @name = name
1394
1050
  block&.call(self)
1395
1051
  end
1396
1052
 
1397
- sig { override.returns(String) }
1053
+ # @override
1054
+ #: -> String
1398
1055
  def to_s
1399
1056
  "#{parent_scope&.fully_qualified_name}.#{name}!"
1400
1057
  end
1401
1058
  end
1402
1059
 
1403
1060
  class TypeMember < NodeWithComments
1404
- extend T::Sig
1405
-
1406
- sig { returns(String) }
1061
+ #: String
1407
1062
  attr_reader :name, :value
1408
1063
 
1409
- sig do
1410
- params(
1411
- name: String,
1412
- value: String,
1413
- loc: T.nilable(Loc),
1414
- comments: T::Array[Comment],
1415
- block: T.nilable(T.proc.params(node: TypeMember).void),
1416
- ).void
1417
- end
1064
+ #: (String name, String value, ?loc: Loc?, ?comments: Array[Comment]) ?{ (TypeMember node) -> void } -> void
1418
1065
  def initialize(name, value, loc: nil, comments: [], &block)
1419
1066
  super(loc: loc, comments: comments)
1420
1067
  @name = name
@@ -1422,61 +1069,46 @@ module RBI
1422
1069
  block&.call(self)
1423
1070
  end
1424
1071
 
1425
- sig { returns(String) }
1072
+ #: -> String
1426
1073
  def fully_qualified_name
1427
1074
  return name if name.start_with?("::")
1428
1075
 
1429
1076
  "#{parent_scope&.fully_qualified_name}::#{name}"
1430
1077
  end
1431
1078
 
1432
- sig { override.returns(String) }
1079
+ # @override
1080
+ #: -> String
1433
1081
  def to_s
1434
1082
  fully_qualified_name
1435
1083
  end
1436
1084
  end
1437
1085
 
1438
1086
  class MixesInClassMethods < Mixin
1439
- extend T::Sig
1440
-
1441
- sig do
1442
- params(
1443
- name: String,
1444
- names: String,
1445
- loc: T.nilable(Loc),
1446
- comments: T::Array[Comment],
1447
- block: T.nilable(T.proc.params(node: MixesInClassMethods).void),
1448
- ).void
1449
- end
1087
+ #: (String name, *String names, ?loc: Loc?, ?comments: Array[Comment]) ?{ (MixesInClassMethods node) -> void } -> void
1450
1088
  def initialize(name, *names, loc: nil, comments: [], &block)
1451
1089
  super(name, names, loc: loc, comments: comments)
1452
1090
  block&.call(self)
1453
1091
  end
1454
1092
 
1455
- sig { override.returns(String) }
1093
+ # @override
1094
+ #: -> String
1456
1095
  def to_s
1457
1096
  "#{parent_scope&.fully_qualified_name}.mixes_in_class_methods(#{names.join(", ")})"
1458
1097
  end
1459
1098
  end
1460
1099
 
1461
1100
  class RequiresAncestor < NodeWithComments
1462
- extend T::Sig
1463
-
1464
- sig { returns(String) }
1101
+ #: String
1465
1102
  attr_reader :name
1466
1103
 
1467
- sig do
1468
- params(
1469
- name: String,
1470
- loc: T.nilable(Loc),
1471
- comments: T::Array[Comment],
1472
- ).void
1473
- end
1104
+ #: (String name, ?loc: Loc?, ?comments: Array[Comment]) -> void
1474
1105
  def initialize(name, loc: nil, comments: [])
1475
1106
  super(loc: loc, comments: comments)
1476
1107
  @name = name
1477
1108
  end
1478
1109
 
1479
- sig { override.returns(String) }
1110
+ # @override
1111
+ #: -> String
1480
1112
  def to_s
1481
1113
  "#{parent_scope&.fully_qualified_name}.requires_ancestor(#{name})"
1482
1114
  end