spoom 1.2.4 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (40) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +54 -55
  3. data/lib/spoom/cli/deadcode.rb +172 -0
  4. data/lib/spoom/cli/helper.rb +20 -0
  5. data/lib/spoom/cli/srb/bump.rb +200 -0
  6. data/lib/spoom/cli/srb/coverage.rb +224 -0
  7. data/lib/spoom/cli/srb/lsp.rb +159 -0
  8. data/lib/spoom/cli/srb/tc.rb +150 -0
  9. data/lib/spoom/cli/srb.rb +27 -0
  10. data/lib/spoom/cli.rb +72 -32
  11. data/lib/spoom/context/git.rb +2 -2
  12. data/lib/spoom/context/sorbet.rb +2 -2
  13. data/lib/spoom/deadcode/definition.rb +11 -0
  14. data/lib/spoom/deadcode/indexer.rb +222 -224
  15. data/lib/spoom/deadcode/location.rb +2 -2
  16. data/lib/spoom/deadcode/plugins/action_mailer.rb +2 -2
  17. data/lib/spoom/deadcode/plugins/action_mailer_preview.rb +19 -0
  18. data/lib/spoom/deadcode/plugins/actionpack.rb +4 -6
  19. data/lib/spoom/deadcode/plugins/active_model.rb +8 -8
  20. data/lib/spoom/deadcode/plugins/active_record.rb +9 -12
  21. data/lib/spoom/deadcode/plugins/active_support.rb +11 -0
  22. data/lib/spoom/deadcode/plugins/base.rb +1 -1
  23. data/lib/spoom/deadcode/plugins/graphql.rb +4 -4
  24. data/lib/spoom/deadcode/plugins/namespaces.rb +2 -4
  25. data/lib/spoom/deadcode/plugins/ruby.rb +8 -17
  26. data/lib/spoom/deadcode/plugins/sorbet.rb +4 -10
  27. data/lib/spoom/deadcode/plugins.rb +1 -0
  28. data/lib/spoom/deadcode/remover.rb +209 -174
  29. data/lib/spoom/deadcode/send.rb +9 -10
  30. data/lib/spoom/deadcode/visitor.rb +755 -0
  31. data/lib/spoom/deadcode.rb +40 -10
  32. data/lib/spoom/file_tree.rb +0 -16
  33. data/lib/spoom/sorbet/errors.rb +1 -1
  34. data/lib/spoom/sorbet/lsp/structures.rb +2 -2
  35. data/lib/spoom/version.rb +1 -1
  36. metadata +19 -15
  37. data/lib/spoom/cli/bump.rb +0 -198
  38. data/lib/spoom/cli/coverage.rb +0 -222
  39. data/lib/spoom/cli/lsp.rb +0 -168
  40. data/lib/spoom/cli/run.rb +0 -148
@@ -0,0 +1,755 @@
1
+ # typed: strict
2
+ # frozen_string_literal: true
3
+
4
+ module Spoom
5
+ module Deadcode
6
+ class Visitor < Prism::Visitor
7
+ extend T::Sig
8
+
9
+ sig { override.params(node: Prism::Node).void }
10
+ def visit_child_nodes(node)
11
+ node.child_nodes.compact.each { |node| visit(node) }
12
+ end
13
+
14
+ sig { override.params(node: Prism::AliasGlobalVariableNode).void }
15
+ def visit_alias_global_variable_node(node)
16
+ visit_child_nodes(node)
17
+ end
18
+
19
+ sig { override.params(node: Prism::AliasMethodNode).void }
20
+ def visit_alias_method_node(node)
21
+ visit_child_nodes(node)
22
+ end
23
+
24
+ sig { override.params(node: Prism::AlternationPatternNode).void }
25
+ def visit_alternation_pattern_node(node)
26
+ visit_child_nodes(node)
27
+ end
28
+
29
+ sig { override.params(node: Prism::AndNode).void }
30
+ def visit_and_node(node)
31
+ visit_child_nodes(node)
32
+ end
33
+
34
+ sig { override.params(node: Prism::ArgumentsNode).void }
35
+ def visit_arguments_node(node)
36
+ visit_child_nodes(node)
37
+ end
38
+
39
+ sig { override.params(node: Prism::ArrayNode).void }
40
+ def visit_array_node(node)
41
+ visit_child_nodes(node)
42
+ end
43
+
44
+ sig { override.params(node: Prism::ArrayPatternNode).void }
45
+ def visit_array_pattern_node(node)
46
+ visit_child_nodes(node)
47
+ end
48
+
49
+ sig { override.params(node: Prism::AssocNode).void }
50
+ def visit_assoc_node(node)
51
+ visit_child_nodes(node)
52
+ end
53
+
54
+ sig { override.params(node: Prism::AssocSplatNode).void }
55
+ def visit_assoc_splat_node(node)
56
+ visit_child_nodes(node)
57
+ end
58
+
59
+ sig { override.params(node: Prism::BackReferenceReadNode).void }
60
+ def visit_back_reference_read_node(node)
61
+ visit_child_nodes(node)
62
+ end
63
+
64
+ sig { override.params(node: Prism::BeginNode).void }
65
+ def visit_begin_node(node)
66
+ visit_child_nodes(node)
67
+ end
68
+
69
+ sig { override.params(node: Prism::BlockArgumentNode).void }
70
+ def visit_block_argument_node(node)
71
+ visit_child_nodes(node)
72
+ end
73
+
74
+ sig { override.params(node: Prism::BlockLocalVariableNode).void }
75
+ def visit_block_local_variable_node(node)
76
+ visit_child_nodes(node)
77
+ end
78
+
79
+ sig { override.params(node: Prism::BlockNode).void }
80
+ def visit_block_node(node)
81
+ visit_child_nodes(node)
82
+ end
83
+
84
+ sig { override.params(node: Prism::BlockParameterNode).void }
85
+ def visit_block_parameter_node(node)
86
+ visit_child_nodes(node)
87
+ end
88
+
89
+ sig { override.params(node: Prism::BlockParametersNode).void }
90
+ def visit_block_parameters_node(node)
91
+ visit_child_nodes(node)
92
+ end
93
+
94
+ sig { override.params(node: Prism::BreakNode).void }
95
+ def visit_break_node(node)
96
+ visit_child_nodes(node)
97
+ end
98
+
99
+ sig { override.params(node: Prism::CallAndWriteNode).void }
100
+ def visit_call_and_write_node(node)
101
+ visit_child_nodes(node)
102
+ end
103
+
104
+ sig { override.params(node: Prism::CallNode).void }
105
+ def visit_call_node(node)
106
+ visit_child_nodes(node)
107
+ end
108
+
109
+ sig { override.params(node: Prism::CallOperatorWriteNode).void }
110
+ def visit_call_operator_write_node(node)
111
+ visit_child_nodes(node)
112
+ end
113
+
114
+ sig { override.params(node: Prism::CallOrWriteNode).void }
115
+ def visit_call_or_write_node(node)
116
+ visit_child_nodes(node)
117
+ end
118
+
119
+ sig { override.params(node: Prism::CallTargetNode).void }
120
+ def visit_call_target_node(node)
121
+ visit_child_nodes(node)
122
+ end
123
+
124
+ sig { override.params(node: Prism::CapturePatternNode).void }
125
+ def visit_capture_pattern_node(node)
126
+ visit_child_nodes(node)
127
+ end
128
+
129
+ sig { override.params(node: Prism::CaseMatchNode).void }
130
+ def visit_case_match_node(node)
131
+ visit_child_nodes(node)
132
+ end
133
+
134
+ sig { override.params(node: Prism::CaseNode).void }
135
+ def visit_case_node(node)
136
+ visit_child_nodes(node)
137
+ end
138
+
139
+ sig { override.params(node: Prism::ClassNode).void }
140
+ def visit_class_node(node)
141
+ visit_child_nodes(node)
142
+ end
143
+
144
+ sig { override.params(node: Prism::ClassVariableAndWriteNode).void }
145
+ def visit_class_variable_and_write_node(node)
146
+ visit_child_nodes(node)
147
+ end
148
+
149
+ sig { override.params(node: Prism::ClassVariableOperatorWriteNode).void }
150
+ def visit_class_variable_operator_write_node(node)
151
+ visit_child_nodes(node)
152
+ end
153
+
154
+ sig { override.params(node: Prism::ClassVariableOrWriteNode).void }
155
+ def visit_class_variable_or_write_node(node)
156
+ visit_child_nodes(node)
157
+ end
158
+
159
+ sig { override.params(node: Prism::ClassVariableReadNode).void }
160
+ def visit_class_variable_read_node(node)
161
+ visit_child_nodes(node)
162
+ end
163
+
164
+ sig { override.params(node: Prism::ClassVariableTargetNode).void }
165
+ def visit_class_variable_target_node(node)
166
+ visit_child_nodes(node)
167
+ end
168
+
169
+ sig { override.params(node: Prism::ClassVariableWriteNode).void }
170
+ def visit_class_variable_write_node(node)
171
+ visit_child_nodes(node)
172
+ end
173
+
174
+ sig { override.params(node: Prism::ConstantAndWriteNode).void }
175
+ def visit_constant_and_write_node(node)
176
+ visit_child_nodes(node)
177
+ end
178
+
179
+ sig { override.params(node: Prism::ConstantOperatorWriteNode).void }
180
+ def visit_constant_operator_write_node(node)
181
+ visit_child_nodes(node)
182
+ end
183
+
184
+ sig { override.params(node: Prism::ConstantOrWriteNode).void }
185
+ def visit_constant_or_write_node(node)
186
+ visit_child_nodes(node)
187
+ end
188
+
189
+ sig { override.params(node: Prism::ConstantPathAndWriteNode).void }
190
+ def visit_constant_path_and_write_node(node)
191
+ visit_child_nodes(node)
192
+ end
193
+
194
+ sig { override.params(node: Prism::ConstantPathNode).void }
195
+ def visit_constant_path_node(node)
196
+ visit_child_nodes(node)
197
+ end
198
+
199
+ sig { override.params(node: Prism::ConstantPathOperatorWriteNode).void }
200
+ def visit_constant_path_operator_write_node(node)
201
+ visit_child_nodes(node)
202
+ end
203
+
204
+ sig { override.params(node: Prism::ConstantPathOrWriteNode).void }
205
+ def visit_constant_path_or_write_node(node)
206
+ visit_child_nodes(node)
207
+ end
208
+
209
+ sig { override.params(node: Prism::ConstantPathTargetNode).void }
210
+ def visit_constant_path_target_node(node)
211
+ visit_child_nodes(node)
212
+ end
213
+
214
+ sig { override.params(node: Prism::ConstantPathWriteNode).void }
215
+ def visit_constant_path_write_node(node)
216
+ visit_child_nodes(node)
217
+ end
218
+
219
+ sig { override.params(node: Prism::ConstantReadNode).void }
220
+ def visit_constant_read_node(node)
221
+ visit_child_nodes(node)
222
+ end
223
+
224
+ sig { override.params(node: Prism::ConstantTargetNode).void }
225
+ def visit_constant_target_node(node)
226
+ visit_child_nodes(node)
227
+ end
228
+
229
+ sig { override.params(node: Prism::ConstantWriteNode).void }
230
+ def visit_constant_write_node(node)
231
+ visit_child_nodes(node)
232
+ end
233
+
234
+ sig { override.params(node: Prism::DefNode).void }
235
+ def visit_def_node(node)
236
+ visit_child_nodes(node)
237
+ end
238
+
239
+ sig { override.params(node: Prism::DefinedNode).void }
240
+ def visit_defined_node(node)
241
+ visit_child_nodes(node)
242
+ end
243
+
244
+ sig { override.params(node: Prism::ElseNode).void }
245
+ def visit_else_node(node)
246
+ visit_child_nodes(node)
247
+ end
248
+
249
+ sig { override.params(node: Prism::EmbeddedStatementsNode).void }
250
+ def visit_embedded_statements_node(node)
251
+ visit_child_nodes(node)
252
+ end
253
+
254
+ sig { override.params(node: Prism::EmbeddedVariableNode).void }
255
+ def visit_embedded_variable_node(node)
256
+ visit_child_nodes(node)
257
+ end
258
+
259
+ sig { override.params(node: Prism::EnsureNode).void }
260
+ def visit_ensure_node(node)
261
+ visit_child_nodes(node)
262
+ end
263
+
264
+ sig { override.params(node: Prism::FalseNode).void }
265
+ def visit_false_node(node)
266
+ visit_child_nodes(node)
267
+ end
268
+
269
+ sig { override.params(node: Prism::FindPatternNode).void }
270
+ def visit_find_pattern_node(node)
271
+ visit_child_nodes(node)
272
+ end
273
+
274
+ sig { override.params(node: Prism::FlipFlopNode).void }
275
+ def visit_flip_flop_node(node)
276
+ visit_child_nodes(node)
277
+ end
278
+
279
+ sig { override.params(node: Prism::FloatNode).void }
280
+ def visit_float_node(node)
281
+ visit_child_nodes(node)
282
+ end
283
+
284
+ sig { override.params(node: Prism::ForNode).void }
285
+ def visit_for_node(node)
286
+ visit_child_nodes(node)
287
+ end
288
+
289
+ sig { override.params(node: Prism::ForwardingArgumentsNode).void }
290
+ def visit_forwarding_arguments_node(node)
291
+ visit_child_nodes(node)
292
+ end
293
+
294
+ sig { override.params(node: Prism::ForwardingParameterNode).void }
295
+ def visit_forwarding_parameter_node(node)
296
+ visit_child_nodes(node)
297
+ end
298
+
299
+ sig { override.params(node: Prism::ForwardingSuperNode).void }
300
+ def visit_forwarding_super_node(node)
301
+ visit_child_nodes(node)
302
+ end
303
+
304
+ sig { override.params(node: Prism::GlobalVariableAndWriteNode).void }
305
+ def visit_global_variable_and_write_node(node)
306
+ visit_child_nodes(node)
307
+ end
308
+
309
+ sig { override.params(node: Prism::GlobalVariableOperatorWriteNode).void }
310
+ def visit_global_variable_operator_write_node(node)
311
+ visit_child_nodes(node)
312
+ end
313
+
314
+ sig { override.params(node: Prism::GlobalVariableOrWriteNode).void }
315
+ def visit_global_variable_or_write_node(node)
316
+ visit_child_nodes(node)
317
+ end
318
+
319
+ sig { override.params(node: Prism::GlobalVariableReadNode).void }
320
+ def visit_global_variable_read_node(node)
321
+ visit_child_nodes(node)
322
+ end
323
+
324
+ sig { override.params(node: Prism::GlobalVariableTargetNode).void }
325
+ def visit_global_variable_target_node(node)
326
+ visit_child_nodes(node)
327
+ end
328
+
329
+ sig { override.params(node: Prism::GlobalVariableWriteNode).void }
330
+ def visit_global_variable_write_node(node)
331
+ visit_child_nodes(node)
332
+ end
333
+
334
+ sig { override.params(node: Prism::HashNode).void }
335
+ def visit_hash_node(node)
336
+ visit_child_nodes(node)
337
+ end
338
+
339
+ sig { override.params(node: Prism::HashPatternNode).void }
340
+ def visit_hash_pattern_node(node)
341
+ visit_child_nodes(node)
342
+ end
343
+
344
+ sig { override.params(node: Prism::IfNode).void }
345
+ def visit_if_node(node)
346
+ visit_child_nodes(node)
347
+ end
348
+
349
+ sig { override.params(node: Prism::ImaginaryNode).void }
350
+ def visit_imaginary_node(node)
351
+ visit_child_nodes(node)
352
+ end
353
+
354
+ sig { override.params(node: Prism::ImplicitNode).void }
355
+ def visit_implicit_node(node)
356
+ visit_child_nodes(node)
357
+ end
358
+
359
+ sig { override.params(node: Prism::ImplicitRestNode).void }
360
+ def visit_implicit_rest_node(node)
361
+ visit_child_nodes(node)
362
+ end
363
+
364
+ sig { override.params(node: Prism::InNode).void }
365
+ def visit_in_node(node)
366
+ visit_child_nodes(node)
367
+ end
368
+
369
+ sig { override.params(node: Prism::IndexAndWriteNode).void }
370
+ def visit_index_and_write_node(node)
371
+ visit_child_nodes(node)
372
+ end
373
+
374
+ sig { override.params(node: Prism::IndexOperatorWriteNode).void }
375
+ def visit_index_operator_write_node(node)
376
+ visit_child_nodes(node)
377
+ end
378
+
379
+ sig { override.params(node: Prism::IndexOrWriteNode).void }
380
+ def visit_index_or_write_node(node)
381
+ visit_child_nodes(node)
382
+ end
383
+
384
+ sig { override.params(node: Prism::IndexTargetNode).void }
385
+ def visit_index_target_node(node)
386
+ visit_child_nodes(node)
387
+ end
388
+
389
+ sig { override.params(node: Prism::InstanceVariableAndWriteNode).void }
390
+ def visit_instance_variable_and_write_node(node)
391
+ visit_child_nodes(node)
392
+ end
393
+
394
+ sig { override.params(node: Prism::InstanceVariableOperatorWriteNode).void }
395
+ def visit_instance_variable_operator_write_node(node)
396
+ visit_child_nodes(node)
397
+ end
398
+
399
+ sig { override.params(node: Prism::InstanceVariableOrWriteNode).void }
400
+ def visit_instance_variable_or_write_node(node)
401
+ visit_child_nodes(node)
402
+ end
403
+
404
+ sig { override.params(node: Prism::InstanceVariableReadNode).void }
405
+ def visit_instance_variable_read_node(node)
406
+ visit_child_nodes(node)
407
+ end
408
+
409
+ sig { override.params(node: Prism::InstanceVariableTargetNode).void }
410
+ def visit_instance_variable_target_node(node)
411
+ visit_child_nodes(node)
412
+ end
413
+
414
+ sig { override.params(node: Prism::InstanceVariableWriteNode).void }
415
+ def visit_instance_variable_write_node(node)
416
+ visit_child_nodes(node)
417
+ end
418
+
419
+ sig { override.params(node: Prism::IntegerNode).void }
420
+ def visit_integer_node(node)
421
+ visit_child_nodes(node)
422
+ end
423
+
424
+ sig { override.params(node: Prism::InterpolatedMatchLastLineNode).void }
425
+ def visit_interpolated_match_last_line_node(node)
426
+ visit_child_nodes(node)
427
+ end
428
+
429
+ sig { override.params(node: Prism::InterpolatedRegularExpressionNode).void }
430
+ def visit_interpolated_regular_expression_node(node)
431
+ visit_child_nodes(node)
432
+ end
433
+
434
+ sig { override.params(node: Prism::InterpolatedStringNode).void }
435
+ def visit_interpolated_string_node(node)
436
+ visit_child_nodes(node)
437
+ end
438
+
439
+ sig { override.params(node: Prism::InterpolatedSymbolNode).void }
440
+ def visit_interpolated_symbol_node(node)
441
+ visit_child_nodes(node)
442
+ end
443
+
444
+ sig { override.params(node: Prism::InterpolatedXStringNode).void }
445
+ def visit_interpolated_x_string_node(node)
446
+ visit_child_nodes(node)
447
+ end
448
+
449
+ sig { override.params(node: Prism::KeywordHashNode).void }
450
+ def visit_keyword_hash_node(node)
451
+ visit_child_nodes(node)
452
+ end
453
+
454
+ sig { override.params(node: Prism::KeywordRestParameterNode).void }
455
+ def visit_keyword_rest_parameter_node(node)
456
+ visit_child_nodes(node)
457
+ end
458
+
459
+ sig { override.params(node: Prism::LambdaNode).void }
460
+ def visit_lambda_node(node)
461
+ visit_child_nodes(node)
462
+ end
463
+
464
+ sig { override.params(node: Prism::LocalVariableAndWriteNode).void }
465
+ def visit_local_variable_and_write_node(node)
466
+ visit_child_nodes(node)
467
+ end
468
+
469
+ sig { override.params(node: Prism::LocalVariableOperatorWriteNode).void }
470
+ def visit_local_variable_operator_write_node(node)
471
+ visit_child_nodes(node)
472
+ end
473
+
474
+ sig { override.params(node: Prism::LocalVariableOrWriteNode).void }
475
+ def visit_local_variable_or_write_node(node)
476
+ visit_child_nodes(node)
477
+ end
478
+
479
+ sig { override.params(node: Prism::LocalVariableReadNode).void }
480
+ def visit_local_variable_read_node(node)
481
+ visit_child_nodes(node)
482
+ end
483
+
484
+ sig { override.params(node: Prism::LocalVariableTargetNode).void }
485
+ def visit_local_variable_target_node(node)
486
+ visit_child_nodes(node)
487
+ end
488
+
489
+ sig { override.params(node: Prism::LocalVariableWriteNode).void }
490
+ def visit_local_variable_write_node(node)
491
+ visit_child_nodes(node)
492
+ end
493
+
494
+ sig { override.params(node: Prism::MatchLastLineNode).void }
495
+ def visit_match_last_line_node(node)
496
+ visit_child_nodes(node)
497
+ end
498
+
499
+ sig { override.params(node: Prism::MatchPredicateNode).void }
500
+ def visit_match_predicate_node(node)
501
+ visit_child_nodes(node)
502
+ end
503
+
504
+ sig { override.params(node: Prism::MatchRequiredNode).void }
505
+ def visit_match_required_node(node)
506
+ visit_child_nodes(node)
507
+ end
508
+
509
+ sig { override.params(node: Prism::MatchWriteNode).void }
510
+ def visit_match_write_node(node)
511
+ visit_child_nodes(node)
512
+ end
513
+
514
+ sig { override.params(node: Prism::MissingNode).void }
515
+ def visit_missing_node(node)
516
+ visit_child_nodes(node)
517
+ end
518
+
519
+ sig { override.params(node: Prism::ModuleNode).void }
520
+ def visit_module_node(node)
521
+ visit_child_nodes(node)
522
+ end
523
+
524
+ sig { override.params(node: Prism::MultiTargetNode).void }
525
+ def visit_multi_target_node(node)
526
+ visit_child_nodes(node)
527
+ end
528
+
529
+ sig { override.params(node: Prism::MultiWriteNode).void }
530
+ def visit_multi_write_node(node)
531
+ visit_child_nodes(node)
532
+ end
533
+
534
+ sig { override.params(node: Prism::NextNode).void }
535
+ def visit_next_node(node)
536
+ visit_child_nodes(node)
537
+ end
538
+
539
+ sig { override.params(node: Prism::NilNode).void }
540
+ def visit_nil_node(node)
541
+ visit_child_nodes(node)
542
+ end
543
+
544
+ sig { override.params(node: Prism::NoKeywordsParameterNode).void }
545
+ def visit_no_keywords_parameter_node(node)
546
+ visit_child_nodes(node)
547
+ end
548
+
549
+ sig { override.params(node: Prism::NumberedParametersNode).void }
550
+ def visit_numbered_parameters_node(node)
551
+ visit_child_nodes(node)
552
+ end
553
+
554
+ sig { override.params(node: Prism::NumberedReferenceReadNode).void }
555
+ def visit_numbered_reference_read_node(node)
556
+ visit_child_nodes(node)
557
+ end
558
+
559
+ sig { override.params(node: Prism::OptionalKeywordParameterNode).void }
560
+ def visit_optional_keyword_parameter_node(node)
561
+ visit_child_nodes(node)
562
+ end
563
+
564
+ sig { override.params(node: Prism::OptionalParameterNode).void }
565
+ def visit_optional_parameter_node(node)
566
+ visit_child_nodes(node)
567
+ end
568
+
569
+ sig { override.params(node: Prism::OrNode).void }
570
+ def visit_or_node(node)
571
+ visit_child_nodes(node)
572
+ end
573
+
574
+ sig { override.params(node: Prism::ParametersNode).void }
575
+ def visit_parameters_node(node)
576
+ visit_child_nodes(node)
577
+ end
578
+
579
+ sig { override.params(node: Prism::ParenthesesNode).void }
580
+ def visit_parentheses_node(node)
581
+ visit_child_nodes(node)
582
+ end
583
+
584
+ sig { override.params(node: Prism::PinnedExpressionNode).void }
585
+ def visit_pinned_expression_node(node)
586
+ visit_child_nodes(node)
587
+ end
588
+
589
+ sig { override.params(node: Prism::PinnedVariableNode).void }
590
+ def visit_pinned_variable_node(node)
591
+ visit_child_nodes(node)
592
+ end
593
+
594
+ sig { override.params(node: Prism::PostExecutionNode).void }
595
+ def visit_post_execution_node(node)
596
+ visit_child_nodes(node)
597
+ end
598
+
599
+ sig { override.params(node: Prism::PreExecutionNode).void }
600
+ def visit_pre_execution_node(node)
601
+ visit_child_nodes(node)
602
+ end
603
+
604
+ sig { override.params(node: Prism::ProgramNode).void }
605
+ def visit_program_node(node)
606
+ visit_child_nodes(node)
607
+ end
608
+
609
+ sig { override.params(node: Prism::RangeNode).void }
610
+ def visit_range_node(node)
611
+ visit_child_nodes(node)
612
+ end
613
+
614
+ sig { override.params(node: Prism::RationalNode).void }
615
+ def visit_rational_node(node)
616
+ visit_child_nodes(node)
617
+ end
618
+
619
+ sig { override.params(node: Prism::RedoNode).void }
620
+ def visit_redo_node(node)
621
+ visit_child_nodes(node)
622
+ end
623
+
624
+ sig { override.params(node: Prism::RegularExpressionNode).void }
625
+ def visit_regular_expression_node(node)
626
+ visit_child_nodes(node)
627
+ end
628
+
629
+ sig { override.params(node: Prism::RequiredKeywordParameterNode).void }
630
+ def visit_required_keyword_parameter_node(node)
631
+ visit_child_nodes(node)
632
+ end
633
+
634
+ sig { override.params(node: Prism::RequiredParameterNode).void }
635
+ def visit_required_parameter_node(node)
636
+ visit_child_nodes(node)
637
+ end
638
+
639
+ sig { override.params(node: Prism::RescueModifierNode).void }
640
+ def visit_rescue_modifier_node(node)
641
+ visit_child_nodes(node)
642
+ end
643
+
644
+ sig { override.params(node: Prism::RescueNode).void }
645
+ def visit_rescue_node(node)
646
+ visit_child_nodes(node)
647
+ end
648
+
649
+ sig { override.params(node: Prism::RestParameterNode).void }
650
+ def visit_rest_parameter_node(node)
651
+ visit_child_nodes(node)
652
+ end
653
+
654
+ sig { override.params(node: Prism::RetryNode).void }
655
+ def visit_retry_node(node)
656
+ visit_child_nodes(node)
657
+ end
658
+
659
+ sig { override.params(node: Prism::ReturnNode).void }
660
+ def visit_return_node(node)
661
+ visit_child_nodes(node)
662
+ end
663
+
664
+ sig { override.params(node: Prism::SelfNode).void }
665
+ def visit_self_node(node)
666
+ visit_child_nodes(node)
667
+ end
668
+
669
+ sig { override.params(node: Prism::SingletonClassNode).void }
670
+ def visit_singleton_class_node(node)
671
+ visit_child_nodes(node)
672
+ end
673
+
674
+ sig { override.params(node: Prism::SourceEncodingNode).void }
675
+ def visit_source_encoding_node(node)
676
+ visit_child_nodes(node)
677
+ end
678
+
679
+ sig { override.params(node: Prism::SourceFileNode).void }
680
+ def visit_source_file_node(node)
681
+ visit_child_nodes(node)
682
+ end
683
+
684
+ sig { override.params(node: Prism::SourceLineNode).void }
685
+ def visit_source_line_node(node)
686
+ visit_child_nodes(node)
687
+ end
688
+
689
+ sig { override.params(node: Prism::SplatNode).void }
690
+ def visit_splat_node(node)
691
+ visit_child_nodes(node)
692
+ end
693
+
694
+ sig { override.params(node: Prism::StatementsNode).void }
695
+ def visit_statements_node(node)
696
+ visit_child_nodes(node)
697
+ end
698
+
699
+ sig { override.params(node: Prism::StringNode).void }
700
+ def visit_string_node(node)
701
+ visit_child_nodes(node)
702
+ end
703
+
704
+ sig { override.params(node: Prism::SuperNode).void }
705
+ def visit_super_node(node)
706
+ visit_child_nodes(node)
707
+ end
708
+
709
+ sig { override.params(node: Prism::SymbolNode).void }
710
+ def visit_symbol_node(node)
711
+ visit_child_nodes(node)
712
+ end
713
+
714
+ sig { override.params(node: Prism::TrueNode).void }
715
+ def visit_true_node(node)
716
+ visit_child_nodes(node)
717
+ end
718
+
719
+ sig { override.params(node: Prism::UndefNode).void }
720
+ def visit_undef_node(node)
721
+ visit_child_nodes(node)
722
+ end
723
+
724
+ sig { override.params(node: Prism::UnlessNode).void }
725
+ def visit_unless_node(node)
726
+ visit_child_nodes(node)
727
+ end
728
+
729
+ sig { override.params(node: Prism::UntilNode).void }
730
+ def visit_until_node(node)
731
+ visit_child_nodes(node)
732
+ end
733
+
734
+ sig { override.params(node: Prism::WhenNode).void }
735
+ def visit_when_node(node)
736
+ visit_child_nodes(node)
737
+ end
738
+
739
+ sig { override.params(node: Prism::WhileNode).void }
740
+ def visit_while_node(node)
741
+ visit_child_nodes(node)
742
+ end
743
+
744
+ sig { override.params(node: Prism::XStringNode).void }
745
+ def visit_x_string_node(node)
746
+ visit_child_nodes(node)
747
+ end
748
+
749
+ sig { override.params(node: Prism::YieldNode).void }
750
+ def visit_yield_node(node)
751
+ visit_child_nodes(node)
752
+ end
753
+ end
754
+ end
755
+ end