rbi 0.2.4 → 0.3.2

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