spoom 1.2.4 → 1.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.
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