sorbet-result 1.0.0 → 1.1.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 (59) hide show
  1. checksums.yaml +4 -4
  2. data/.ruby-version +1 -1
  3. data/.standard.yml +6 -0
  4. data/.tool-versions +1 -1
  5. data/CHANGELOG.md +10 -0
  6. data/Gemfile +2 -4
  7. data/Gemfile.lock +75 -55
  8. data/README.md +23 -0
  9. data/Rakefile +3 -5
  10. data/lib/minitest/result_assertions.rb +48 -0
  11. data/lib/sorbet-result.rb +1 -5
  12. data/lib/typed/result.rb +169 -7
  13. data/sorbet/rbi/gems/.gitattributes +1 -0
  14. data/sorbet/rbi/gems/erubi@1.12.0.rbi +145 -0
  15. data/sorbet/rbi/gems/{json@2.6.3.rbi → json@2.7.1.rbi} +80 -60
  16. data/sorbet/rbi/gems/language_server-protocol@3.17.0.3.rbi +14237 -0
  17. data/sorbet/rbi/gems/lint_roller@1.1.0.rbi +239 -0
  18. data/sorbet/rbi/gems/{minitest@5.18.1.rbi → minitest@5.22.2.rbi} +285 -241
  19. data/sorbet/rbi/gems/{parallel@1.23.0.rbi → parallel@1.24.0.rbi} +8 -1
  20. data/sorbet/rbi/gems/{parser@3.2.2.3.rbi → parser@3.3.0.5.rbi} +438 -2219
  21. data/sorbet/rbi/gems/prettier_print@1.2.1.rbi +951 -0
  22. data/sorbet/rbi/gems/prism@0.24.0.rbi +31040 -0
  23. data/sorbet/rbi/gems/psych@5.1.2.rbi +1731 -0
  24. data/sorbet/rbi/gems/{racc@1.7.1.rbi → racc@1.7.3.rbi} +35 -39
  25. data/sorbet/rbi/gems/{rake@13.0.6.rbi → rake@13.1.0.rbi} +68 -65
  26. data/sorbet/rbi/gems/{rbi@0.0.16.rbi → rbi@0.1.9.rbi} +712 -714
  27. data/sorbet/rbi/gems/{regexp_parser@2.8.1.rbi → regexp_parser@2.9.0.rbi} +187 -165
  28. data/sorbet/rbi/gems/{rexml@3.2.5.rbi → rexml@3.2.6.rbi} +116 -52
  29. data/sorbet/rbi/gems/{rubocop-ast@1.29.0.rbi → rubocop-ast@1.30.0.rbi} +77 -77
  30. data/sorbet/rbi/gems/rubocop-performance@1.20.2.rbi +8 -0
  31. data/sorbet/rbi/gems/rubocop-sorbet@0.7.7.rbi +8 -0
  32. data/sorbet/rbi/gems/{rubocop@1.52.1.rbi → rubocop@1.60.2.rbi} +3593 -1700
  33. data/sorbet/rbi/gems/{spoom@1.2.1.rbi → spoom@1.2.4.rbi} +1378 -104
  34. data/sorbet/rbi/gems/standard-custom@1.0.2.rbi +8 -0
  35. data/sorbet/rbi/gems/standard-performance@1.3.1.rbi +8 -0
  36. data/sorbet/rbi/gems/standard-sorbet@0.0.2.rbi +52 -0
  37. data/sorbet/rbi/gems/standard@1.34.0.rbi +850 -0
  38. data/sorbet/rbi/gems/stringio@3.1.0.rbi +8 -0
  39. data/sorbet/rbi/gems/syntax_tree@6.2.0.rbi +23133 -0
  40. data/sorbet/rbi/gems/{tapioca@0.11.6.rbi → tapioca@0.12.0.rbi} +776 -574
  41. data/sorbet/rbi/gems/{thor@1.2.2.rbi → thor@1.3.0.rbi} +775 -395
  42. data/sorbet/rbi/gems/yard-sorbet@0.8.1.rbi +1 -1
  43. data/sorbet/rbi/gems/yard@0.9.34.rbi +2 -2
  44. data/sorbet/tapioca/config.yml +3 -12
  45. data/sorbet/tapioca/require.rb +0 -1
  46. metadata +41 -34
  47. data/.rubocop.yml +0 -33
  48. data/lib/typed/failure.rb +0 -81
  49. data/lib/typed/success.rb +0 -80
  50. data/sorbet/rbi/gems/diff-lcs@1.5.0.rbi +0 -1083
  51. data/sorbet/rbi/gems/irb@1.7.0.rbi +0 -342
  52. data/sorbet/rbi/gems/rubocop-minitest@0.31.0.rbi +0 -2528
  53. data/sorbet/rbi/gems/rubocop-rake@0.6.0.rbi +0 -328
  54. data/sorbet/rbi/gems/rubocop-sorbet@0.7.0.rbi +0 -1043
  55. data/sorbet/rbi/gems/unparser@0.6.8.rbi +0 -4525
  56. data/sorbet/rbi/gems/zeitwerk@2.6.8.rbi +0 -986
  57. /data/sorbet/rbi/gems/{io-console@0.6.0.rbi → io-console@0.7.2.rbi} +0 -0
  58. /data/sorbet/rbi/gems/{reline@0.3.5.rbi → reline@0.4.2.rbi} +0 -0
  59. /data/sorbet/rbi/gems/{unicode-display_width@2.4.2.rbi → unicode-display_width@2.5.0.rbi} +0 -0
@@ -221,22 +221,22 @@ class Spoom::Cli::Main < ::Thor
221
221
  # source://spoom//lib/spoom/cli.rb#61
222
222
  def __print_version; end
223
223
 
224
- # source://thor/1.2.1/lib/thor.rb#239
224
+ # source://thor/1.3.0/lib/thor.rb#334
225
225
  def bump(*args); end
226
226
 
227
- # source://thor/1.2.1/lib/thor.rb#239
227
+ # source://thor/1.3.0/lib/thor.rb#334
228
228
  def config(*args); end
229
229
 
230
- # source://thor/1.2.1/lib/thor.rb#239
230
+ # source://thor/1.3.0/lib/thor.rb#334
231
231
  def coverage(*args); end
232
232
 
233
233
  # source://spoom//lib/spoom/cli.rb#43
234
234
  def files; end
235
235
 
236
- # source://thor/1.2.1/lib/thor.rb#239
236
+ # source://thor/1.3.0/lib/thor.rb#334
237
237
  def lsp(*args); end
238
238
 
239
- # source://thor/1.2.1/lib/thor.rb#239
239
+ # source://thor/1.3.0/lib/thor.rb#334
240
240
  def tc(*args); end
241
241
 
242
242
  class << self
@@ -359,19 +359,19 @@ module Spoom::Context::Bundle
359
359
 
360
360
  # Run a command with `bundle` in this context directory
361
361
  #
362
- # source://spoom//lib/spoom/context/bundle.rb#27
362
+ # source://spoom//lib/spoom/context/bundle.rb#33
363
363
  sig { params(command: ::String, version: T.nilable(::String), capture_err: T::Boolean).returns(::Spoom::ExecResult) }
364
364
  def bundle(command, version: T.unsafe(nil), capture_err: T.unsafe(nil)); end
365
365
 
366
366
  # Run a command `bundle exec` in this context directory
367
367
  #
368
- # source://spoom//lib/spoom/context/bundle.rb#40
368
+ # source://spoom//lib/spoom/context/bundle.rb#46
369
369
  sig { params(command: ::String, version: T.nilable(::String), capture_err: T::Boolean).returns(::Spoom::ExecResult) }
370
370
  def bundle_exec(command, version: T.unsafe(nil), capture_err: T.unsafe(nil)); end
371
371
 
372
372
  # Run `bundle install` in this context directory
373
373
  #
374
- # source://spoom//lib/spoom/context/bundle.rb#34
374
+ # source://spoom//lib/spoom/context/bundle.rb#40
375
375
  sig { params(version: T.nilable(::String), capture_err: T::Boolean).returns(::Spoom::ExecResult) }
376
376
  def bundle_install!(version: T.unsafe(nil), capture_err: T.unsafe(nil)); end
377
377
 
@@ -379,19 +379,29 @@ module Spoom::Context::Bundle
379
379
  #
380
380
  # Returns `nil` if `gem` cannot be found in the Gemfile.
381
381
  #
382
- # source://spoom//lib/spoom/context/bundle.rb#48
382
+ # source://spoom//lib/spoom/context/bundle.rb#62
383
383
  sig { params(gem: ::String).returns(T.nilable(::String)) }
384
384
  def gem_version_from_gemfile_lock(gem); end
385
385
 
386
- # Read the `contents` of the Gemfile in this context directory
386
+ # source://spoom//lib/spoom/context/bundle.rb#51
387
+ sig { returns(T::Hash[::String, ::Bundler::LazySpecification]) }
388
+ def gemfile_lock_specs; end
389
+
390
+ # Read the contents of the Gemfile in this context directory
387
391
  #
388
392
  # source://spoom//lib/spoom/context/bundle.rb#15
389
393
  sig { returns(T.nilable(::String)) }
390
394
  def read_gemfile; end
391
395
 
392
- # Set the `contents` of the Gemfile in this context directory
396
+ # Read the contents of the Gemfile.lock in this context directory
393
397
  #
394
398
  # source://spoom//lib/spoom/context/bundle.rb#21
399
+ sig { returns(T.nilable(::String)) }
400
+ def read_gemfile_lock; end
401
+
402
+ # Set the `contents` of the Gemfile in this context directory
403
+ #
404
+ # source://spoom//lib/spoom/context/bundle.rb#27
395
405
  sig { params(contents: ::String, append: T::Boolean).void }
396
406
  def write_gemfile!(contents, append: T.unsafe(nil)); end
397
407
  end
@@ -421,11 +431,21 @@ module Spoom::Context::FileSystem
421
431
  sig { params(relative_path: ::String).returns(::String) }
422
432
  def absolute_path_to(relative_path); end
423
433
 
434
+ # source://spoom//lib/spoom/context/file_system.rb#53
435
+ sig do
436
+ params(
437
+ allow_extensions: T::Array[::String],
438
+ allow_mime_types: T::Array[::String],
439
+ exclude_patterns: T::Array[::String]
440
+ ).returns(T::Array[::String])
441
+ end
442
+ def collect_files(allow_extensions: T.unsafe(nil), allow_mime_types: T.unsafe(nil), exclude_patterns: T.unsafe(nil)); end
443
+
424
444
  # Delete this context and its content
425
445
  #
426
446
  # Warning: it will `rm -rf` the context directory on the file system.
427
447
  #
428
- # source://spoom//lib/spoom/context/file_system.rb#88
448
+ # source://spoom//lib/spoom/context/file_system.rb#105
429
449
  sig { void }
430
450
  def destroy!; end
431
451
 
@@ -437,7 +457,7 @@ module Spoom::Context::FileSystem
437
457
 
438
458
  # Does `relative_path` point to an existing file in this context directory?
439
459
  #
440
- # source://spoom//lib/spoom/context/file_system.rb#48
460
+ # source://spoom//lib/spoom/context/file_system.rb#65
441
461
  sig { params(relative_path: ::String).returns(T::Boolean) }
442
462
  def file?(relative_path); end
443
463
 
@@ -461,7 +481,7 @@ module Spoom::Context::FileSystem
461
481
 
462
482
  # Move the file or directory from `from_relative_path` to `to_relative_path`
463
483
  #
464
- # source://spoom//lib/spoom/context/file_system.rb#78
484
+ # source://spoom//lib/spoom/context/file_system.rb#95
465
485
  sig { params(from_relative_path: ::String, to_relative_path: ::String).void }
466
486
  def move!(from_relative_path, to_relative_path); end
467
487
 
@@ -469,13 +489,13 @@ module Spoom::Context::FileSystem
469
489
  #
470
490
  # Will raise if the file doesn't exist.
471
491
  #
472
- # source://spoom//lib/spoom/context/file_system.rb#56
492
+ # source://spoom//lib/spoom/context/file_system.rb#73
473
493
  sig { params(relative_path: ::String).returns(::String) }
474
494
  def read(relative_path); end
475
495
 
476
496
  # Remove the path at `relative_path` (recursive + force) in this context directory
477
497
  #
478
- # source://spoom//lib/spoom/context/file_system.rb#72
498
+ # source://spoom//lib/spoom/context/file_system.rb#89
479
499
  sig { params(relative_path: ::String).void }
480
500
  def remove!(relative_path); end
481
501
 
@@ -483,7 +503,7 @@ module Spoom::Context::FileSystem
483
503
  #
484
504
  # Append to the file if `append` is true.
485
505
  #
486
- # source://spoom//lib/spoom/context/file_system.rb#64
506
+ # source://spoom//lib/spoom/context/file_system.rb#81
487
507
  sig { params(relative_path: ::String, contents: ::String, append: T::Boolean).void }
488
508
  def write!(relative_path, contents = T.unsafe(nil), append: T.unsafe(nil)); end
489
509
  end
@@ -506,21 +526,27 @@ module Spoom::Context::Git
506
526
  sig { params(ref: ::String).returns(::Spoom::ExecResult) }
507
527
  def git_checkout!(ref: T.unsafe(nil)); end
508
528
 
509
- # Run `git add . && git commit` in this context directory
529
+ # Run `git checkout -b <branch-name> <ref>` in this context directory
510
530
  #
511
531
  # source://spoom//lib/spoom/context/git.rb#68
512
- sig { params(message: ::String, time: ::Time, allow_empty: T::Boolean).void }
532
+ sig { params(branch_name: ::String, ref: T.nilable(::String)).returns(::Spoom::ExecResult) }
533
+ def git_checkout_new_branch!(branch_name, ref: T.unsafe(nil)); end
534
+
535
+ # Run `git add . && git commit` in this context directory
536
+ #
537
+ # source://spoom//lib/spoom/context/git.rb#78
538
+ sig { params(message: ::String, time: ::Time, allow_empty: T::Boolean).returns(::Spoom::ExecResult) }
513
539
  def git_commit!(message: T.unsafe(nil), time: T.unsafe(nil), allow_empty: T.unsafe(nil)); end
514
540
 
515
541
  # Get the current git branch in this context directory
516
542
  #
517
- # source://spoom//lib/spoom/context/git.rb#79
543
+ # source://spoom//lib/spoom/context/git.rb#89
518
544
  sig { returns(T.nilable(::String)) }
519
545
  def git_current_branch; end
520
546
 
521
547
  # Run `git diff` in this context directory
522
548
  #
523
- # source://spoom//lib/spoom/context/git.rb#88
549
+ # source://spoom//lib/spoom/context/git.rb#98
524
550
  sig { params(arg: ::String).returns(::Spoom::ExecResult) }
525
551
  def git_diff(*arg); end
526
552
 
@@ -535,21 +561,27 @@ module Spoom::Context::Git
535
561
 
536
562
  # Get the last commit in the currently checked out branch
537
563
  #
538
- # source://spoom//lib/spoom/context/git.rb#94
564
+ # source://spoom//lib/spoom/context/git.rb#104
539
565
  sig { params(short_sha: T::Boolean).returns(T.nilable(::Spoom::Git::Commit)) }
540
566
  def git_last_commit(short_sha: T.unsafe(nil)); end
541
567
 
542
- # source://spoom//lib/spoom/context/git.rb#105
568
+ # source://spoom//lib/spoom/context/git.rb#115
543
569
  sig { params(arg: ::String).returns(::Spoom::ExecResult) }
544
570
  def git_log(*arg); end
545
571
 
546
- # source://spoom//lib/spoom/context/git.rb#110
572
+ # Run `git push <remote> <ref>` in this context directory
573
+ #
574
+ # source://spoom//lib/spoom/context/git.rb#121
575
+ sig { params(remote: ::String, ref: ::String, force: T::Boolean).returns(::Spoom::ExecResult) }
576
+ def git_push!(remote, ref, force: T.unsafe(nil)); end
577
+
578
+ # source://spoom//lib/spoom/context/git.rb#126
547
579
  sig { params(arg: ::String).returns(::Spoom::ExecResult) }
548
580
  def git_show(*arg); end
549
581
 
550
582
  # Is there uncommited changes in this context directory?
551
583
  #
552
- # source://spoom//lib/spoom/context/git.rb#116
584
+ # source://spoom//lib/spoom/context/git.rb#132
553
585
  sig { params(path: ::String).returns(T::Boolean) }
554
586
  def git_workdir_clean?(path: T.unsafe(nil)); end
555
587
  end
@@ -562,35 +594,35 @@ module Spoom::Context::Sorbet
562
594
 
563
595
  # Does this context has a `sorbet/config` file?
564
596
  #
565
- # source://spoom//lib/spoom/context/sorbet.rb#102
597
+ # source://spoom//lib/spoom/context/sorbet.rb#119
566
598
  sig { returns(T::Boolean) }
567
599
  def has_sorbet_config?; end
568
600
 
569
601
  # Read the strictness sigil from the file at `relative_path` (returns `nil` if no sigil)
570
602
  #
571
- # source://spoom//lib/spoom/context/sorbet.rb#125
603
+ # source://spoom//lib/spoom/context/sorbet.rb#142
572
604
  sig { params(relative_path: ::String).returns(T.nilable(::String)) }
573
605
  def read_file_strictness(relative_path); end
574
606
 
575
607
  # Read the contents of `sorbet/config` in this context directory
576
608
  #
577
- # source://spoom//lib/spoom/context/sorbet.rb#113
609
+ # source://spoom//lib/spoom/context/sorbet.rb#130
578
610
  sig { returns(::String) }
579
611
  def read_sorbet_config; end
580
612
 
581
- # source://spoom//lib/spoom/context/sorbet.rb#107
613
+ # source://spoom//lib/spoom/context/sorbet.rb#124
582
614
  sig { returns(::Spoom::Sorbet::Config) }
583
615
  def sorbet_config; end
584
616
 
585
617
  # Get the commit introducing the `sorbet/config` file
586
618
  #
587
- # source://spoom//lib/spoom/context/sorbet.rb#131
619
+ # source://spoom//lib/spoom/context/sorbet.rb#148
588
620
  sig { returns(T.nilable(::Spoom::Git::Commit)) }
589
621
  def sorbet_intro_commit; end
590
622
 
591
623
  # Get the commit removing the `sorbet/config` file
592
624
  #
593
- # source://spoom//lib/spoom/context/sorbet.rb#143
625
+ # source://spoom//lib/spoom/context/sorbet.rb#160
594
626
  sig { returns(T.nilable(::Spoom::Git::Commit)) }
595
627
  def sorbet_removal_commit; end
596
628
 
@@ -608,7 +640,7 @@ module Spoom::Context::Sorbet
608
640
 
609
641
  # List all files typechecked by Sorbet from its `config` that matches `strictness`
610
642
  #
611
- # source://spoom//lib/spoom/context/sorbet.rb#87
643
+ # source://spoom//lib/spoom/context/sorbet.rb#104
612
644
  sig do
613
645
  params(
614
646
  strictness: ::String,
@@ -632,13 +664,13 @@ module Spoom::Context::Sorbet
632
664
  sig { params(arg: ::String, sorbet_bin: T.nilable(::String), capture_err: T::Boolean).returns(::Spoom::ExecResult) }
633
665
  def srb_tc(*arg, sorbet_bin: T.unsafe(nil), capture_err: T.unsafe(nil)); end
634
666
 
635
- # source://spoom//lib/spoom/context/sorbet.rb#93
667
+ # source://spoom//lib/spoom/context/sorbet.rb#110
636
668
  sig { params(arg: ::String, sorbet_bin: T.nilable(::String), capture_err: T::Boolean).returns(T.nilable(::String)) }
637
669
  def srb_version(*arg, sorbet_bin: T.unsafe(nil), capture_err: T.unsafe(nil)); end
638
670
 
639
671
  # Set the `contents` of `sorbet/config` in this context directory
640
672
  #
641
- # source://spoom//lib/spoom/context/sorbet.rb#119
673
+ # source://spoom//lib/spoom/context/sorbet.rb#136
642
674
  sig { params(contents: ::String, append: T::Boolean).void }
643
675
  def write_sorbet_config!(contents, append: T.unsafe(nil)); end
644
676
  end
@@ -926,7 +958,7 @@ class Spoom::Coverage::D3::ColorPalette < ::T::Struct
926
958
  prop :strong, ::String
927
959
 
928
960
  class << self
929
- # source://sorbet-runtime/0.5.10792/lib/types/struct.rb#13
961
+ # source://sorbet-runtime/0.5.11262/lib/types/struct.rb#13
930
962
  def inherited(s); end
931
963
  end
932
964
  end
@@ -1125,9 +1157,6 @@ end
1125
1157
  class Spoom::Coverage::D3::Timeline::Stacked < ::Spoom::Coverage::D3::Timeline
1126
1158
  abstract!
1127
1159
 
1128
- # source://sorbet-runtime/0.5.10792/lib/types/private/abstract/declare.rb#37
1129
- def initialize(*args, **_arg1, &blk); end
1130
-
1131
1160
  # source://spoom//lib/spoom/coverage/d3/timeline.rb#388
1132
1161
  sig { override.params(y: ::String, color: ::String, curve: ::String).returns(::String) }
1133
1162
  def line(y:, color: T.unsafe(nil), curve: T.unsafe(nil)); end
@@ -1269,7 +1298,7 @@ class Spoom::Coverage::Snapshot < ::T::Struct
1269
1298
  sig { params(obj: T::Hash[::String, T.untyped]).returns(::Spoom::Coverage::Snapshot) }
1270
1299
  def from_obj(obj); end
1271
1300
 
1272
- # source://sorbet-runtime/0.5.10792/lib/types/struct.rb#13
1301
+ # source://sorbet-runtime/0.5.11262/lib/types/struct.rb#13
1273
1302
  def inherited(s); end
1274
1303
  end
1275
1304
  end
@@ -1321,6 +1350,1254 @@ class Spoom::Coverage::Template
1321
1350
  def html; end
1322
1351
  end
1323
1352
 
1353
+ # source://spoom//lib/spoom/deadcode/erb.rb#27
1354
+ module Spoom::Deadcode
1355
+ class << self
1356
+ # source://spoom//lib/spoom/deadcode.rb#51
1357
+ sig do
1358
+ params(
1359
+ index: ::Spoom::Deadcode::Index,
1360
+ erb: ::String,
1361
+ file: ::String,
1362
+ plugins: T::Array[::Spoom::Deadcode::Plugins::Base]
1363
+ ).void
1364
+ end
1365
+ def index_erb(index, erb, file:, plugins: T.unsafe(nil)); end
1366
+
1367
+ # source://spoom//lib/spoom/deadcode.rb#40
1368
+ sig do
1369
+ params(
1370
+ index: ::Spoom::Deadcode::Index,
1371
+ ruby: ::String,
1372
+ file: ::String,
1373
+ plugins: T::Array[::Spoom::Deadcode::Plugins::Base]
1374
+ ).void
1375
+ end
1376
+ def index_ruby(index, ruby, file:, plugins: T.unsafe(nil)); end
1377
+
1378
+ # source://spoom//lib/spoom/deadcode/plugins.rb#74
1379
+ sig { params(context: ::Spoom::Context).returns(T::Array[::Spoom::Deadcode::Plugins::Base]) }
1380
+ def load_custom_plugins(context); end
1381
+
1382
+ # source://spoom//lib/spoom/deadcode/plugins.rb#60
1383
+ sig { params(context: ::Spoom::Context).returns(T::Array[::Spoom::Deadcode::Plugins::Base]) }
1384
+ def plugins_from_gemfile_lock(context); end
1385
+ end
1386
+ end
1387
+
1388
+ # source://spoom//lib/spoom/deadcode/plugins.rb#25
1389
+ Spoom::Deadcode::DEFAULT_CUSTOM_PLUGINS_PATH = T.let(T.unsafe(nil), String)
1390
+
1391
+ # source://spoom//lib/spoom/deadcode/plugins.rb#27
1392
+ Spoom::Deadcode::DEFAULT_PLUGINS = T.let(T.unsafe(nil), Set)
1393
+
1394
+ # A definition is a class, module, method, constant, etc. being defined in the code
1395
+ #
1396
+ # source://spoom//lib/spoom/deadcode/definition.rb#7
1397
+ class Spoom::Deadcode::Definition < ::T::Struct
1398
+ const :kind, ::Spoom::Deadcode::Definition::Kind
1399
+ const :name, ::String
1400
+ const :full_name, ::String
1401
+ const :location, ::Spoom::Deadcode::Location
1402
+ const :status, ::Spoom::Deadcode::Definition::Status, default: T.unsafe(nil)
1403
+
1404
+ # source://spoom//lib/spoom/deadcode/definition.rb#78
1405
+ sig { void }
1406
+ def alive!; end
1407
+
1408
+ # Status
1409
+ #
1410
+ # source://spoom//lib/spoom/deadcode/definition.rb#73
1411
+ sig { returns(T::Boolean) }
1412
+ def alive?; end
1413
+
1414
+ # Kind
1415
+ #
1416
+ # source://spoom//lib/spoom/deadcode/definition.rb#41
1417
+ sig { returns(T::Boolean) }
1418
+ def attr_reader?; end
1419
+
1420
+ # source://spoom//lib/spoom/deadcode/definition.rb#46
1421
+ sig { returns(T::Boolean) }
1422
+ def attr_writer?; end
1423
+
1424
+ # source://spoom//lib/spoom/deadcode/definition.rb#51
1425
+ sig { returns(T::Boolean) }
1426
+ def class?; end
1427
+
1428
+ # source://spoom//lib/spoom/deadcode/definition.rb#56
1429
+ sig { returns(T::Boolean) }
1430
+ def constant?; end
1431
+
1432
+ # source://spoom//lib/spoom/deadcode/definition.rb#83
1433
+ sig { returns(T::Boolean) }
1434
+ def dead?; end
1435
+
1436
+ # source://spoom//lib/spoom/deadcode/definition.rb#93
1437
+ sig { void }
1438
+ def ignored!; end
1439
+
1440
+ # source://spoom//lib/spoom/deadcode/definition.rb#88
1441
+ sig { returns(T::Boolean) }
1442
+ def ignored?; end
1443
+
1444
+ # source://spoom//lib/spoom/deadcode/definition.rb#61
1445
+ sig { returns(T::Boolean) }
1446
+ def method?; end
1447
+
1448
+ # source://spoom//lib/spoom/deadcode/definition.rb#66
1449
+ sig { returns(T::Boolean) }
1450
+ def module?; end
1451
+
1452
+ class << self
1453
+ # source://sorbet-runtime/0.5.11262/lib/types/struct.rb#13
1454
+ def inherited(s); end
1455
+ end
1456
+ end
1457
+
1458
+ # source://spoom//lib/spoom/deadcode/definition.rb#10
1459
+ class Spoom::Deadcode::Definition::Kind < ::T::Enum
1460
+ enums do
1461
+ AttrReader = new
1462
+ AttrWriter = new
1463
+ Class = new
1464
+ Constant = new
1465
+ Method = new
1466
+ Module = new
1467
+ end
1468
+ end
1469
+
1470
+ # source://spoom//lib/spoom/deadcode/definition.rb#21
1471
+ class Spoom::Deadcode::Definition::Status < ::T::Enum
1472
+ enums do
1473
+ ALIVE = new
1474
+ DEAD = new
1475
+ IGNORED = new
1476
+ end
1477
+ end
1478
+
1479
+ # Custom engine to handle ERB templates as used by Rails
1480
+ #
1481
+ # source://spoom//lib/spoom/deadcode/erb.rb#29
1482
+ class Spoom::Deadcode::ERB < ::Erubi::Engine
1483
+ # source://spoom//lib/spoom/deadcode/erb.rb#33
1484
+ sig { params(input: T.untyped, properties: T.untyped).void }
1485
+ def initialize(input, properties = T.unsafe(nil)); end
1486
+
1487
+ private
1488
+
1489
+ # source://spoom//lib/spoom/deadcode/erb.rb#83
1490
+ sig { override.params(code: T.untyped).void }
1491
+ def add_code(code); end
1492
+
1493
+ # source://spoom//lib/spoom/deadcode/erb.rb#66
1494
+ sig { override.params(indicator: T.untyped, code: T.untyped).void }
1495
+ def add_expression(indicator, code); end
1496
+
1497
+ # source://spoom//lib/spoom/deadcode/erb.rb#89
1498
+ sig { override.params(_: T.untyped).void }
1499
+ def add_postamble(_); end
1500
+
1501
+ # source://spoom//lib/spoom/deadcode/erb.rb#48
1502
+ sig { override.params(text: T.untyped).void }
1503
+ def add_text(text); end
1504
+
1505
+ # source://spoom//lib/spoom/deadcode/erb.rb#95
1506
+ sig { params(src: T.untyped).void }
1507
+ def flush_newline_if_pending(src); end
1508
+ end
1509
+
1510
+ # source://spoom//lib/spoom/deadcode/erb.rb#63
1511
+ Spoom::Deadcode::ERB::BLOCK_EXPR = T.let(T.unsafe(nil), Regexp)
1512
+
1513
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
1514
+ #
1515
+ # source://spoom//lib/spoom/deadcode.rb#20
1516
+ class Spoom::Deadcode::Error < ::Spoom::Error
1517
+ abstract!
1518
+
1519
+ # source://spoom//lib/spoom/deadcode.rb#27
1520
+ sig { params(message: ::String, parent: ::Exception).void }
1521
+ def initialize(message, parent:); end
1522
+ end
1523
+
1524
+ # source://spoom//lib/spoom/deadcode/index.rb#6
1525
+ class Spoom::Deadcode::Index
1526
+ # source://spoom//lib/spoom/deadcode/index.rb#16
1527
+ sig { void }
1528
+ def initialize; end
1529
+
1530
+ # source://spoom//lib/spoom/deadcode/index.rb#51
1531
+ sig { returns(T::Array[::Spoom::Deadcode::Definition]) }
1532
+ def all_definitions; end
1533
+
1534
+ # source://spoom//lib/spoom/deadcode/index.rb#56
1535
+ sig { returns(T::Array[::Spoom::Deadcode::Reference]) }
1536
+ def all_references; end
1537
+
1538
+ # Indexing
1539
+ #
1540
+ # source://spoom//lib/spoom/deadcode/index.rb#24
1541
+ sig { params(definition: ::Spoom::Deadcode::Definition).void }
1542
+ def define(definition); end
1543
+
1544
+ # source://spoom//lib/spoom/deadcode/index.rb#10
1545
+ sig { returns(T::Hash[::String, T::Array[::Spoom::Deadcode::Definition]]) }
1546
+ def definitions; end
1547
+
1548
+ # Utils
1549
+ #
1550
+ # source://spoom//lib/spoom/deadcode/index.rb#46
1551
+ sig { params(name: ::String).returns(T::Array[::Spoom::Deadcode::Definition]) }
1552
+ def definitions_for_name(name); end
1553
+
1554
+ # Mark all definitions having a reference of the same name as `alive`
1555
+ #
1556
+ # To be called once all the files have been indexed and all the definitions and references discovered.
1557
+ #
1558
+ # source://spoom//lib/spoom/deadcode/index.rb#37
1559
+ sig { void }
1560
+ def finalize!; end
1561
+
1562
+ # source://spoom//lib/spoom/deadcode/index.rb#29
1563
+ sig { params(reference: ::Spoom::Deadcode::Reference).void }
1564
+ def reference(reference); end
1565
+
1566
+ # source://spoom//lib/spoom/deadcode/index.rb#13
1567
+ sig { returns(T::Hash[::String, T::Array[::Spoom::Deadcode::Reference]]) }
1568
+ def references; end
1569
+ end
1570
+
1571
+ # source://spoom//lib/spoom/deadcode/indexer.rb#6
1572
+ class Spoom::Deadcode::Indexer < ::SyntaxTree::Visitor
1573
+ # source://spoom//lib/spoom/deadcode/indexer.rb#16
1574
+ sig do
1575
+ params(
1576
+ path: ::String,
1577
+ source: ::String,
1578
+ index: ::Spoom::Deadcode::Index,
1579
+ plugins: T::Array[::Spoom::Deadcode::Plugins::Base]
1580
+ ).void
1581
+ end
1582
+ def initialize(path, source, index, plugins: T.unsafe(nil)); end
1583
+
1584
+ # source://spoom//lib/spoom/deadcode/indexer.rb#459
1585
+ sig do
1586
+ params(
1587
+ node: T.nilable(T.any(::SyntaxTree::ArgParen, ::SyntaxTree::Args, ::SyntaxTree::ArgsForward))
1588
+ ).returns(T::Array[::SyntaxTree::Node])
1589
+ end
1590
+ def call_args(node); end
1591
+
1592
+ # Context
1593
+ #
1594
+ # source://spoom//lib/spoom/deadcode/indexer.rb#367
1595
+ sig { returns(::SyntaxTree::Node) }
1596
+ def current_node; end
1597
+
1598
+ # Definition indexing
1599
+ #
1600
+ # source://spoom//lib/spoom/deadcode/indexer.rb#281
1601
+ sig { params(name: ::String, full_name: ::String, node: ::SyntaxTree::Node).void }
1602
+ def define_attr_reader(name, full_name, node); end
1603
+
1604
+ # source://spoom//lib/spoom/deadcode/indexer.rb#293
1605
+ sig { params(name: ::String, full_name: ::String, node: ::SyntaxTree::Node).void }
1606
+ def define_attr_writer(name, full_name, node); end
1607
+
1608
+ # source://spoom//lib/spoom/deadcode/indexer.rb#305
1609
+ sig { params(name: ::String, full_name: ::String, node: ::SyntaxTree::Node).void }
1610
+ def define_class(name, full_name, node); end
1611
+
1612
+ # source://spoom//lib/spoom/deadcode/indexer.rb#317
1613
+ sig { params(name: ::String, full_name: ::String, node: ::SyntaxTree::Node).void }
1614
+ def define_constant(name, full_name, node); end
1615
+
1616
+ # source://spoom//lib/spoom/deadcode/indexer.rb#329
1617
+ sig { params(name: ::String, full_name: ::String, node: ::SyntaxTree::Node).void }
1618
+ def define_method(name, full_name, node); end
1619
+
1620
+ # source://spoom//lib/spoom/deadcode/indexer.rb#341
1621
+ sig { params(name: ::String, full_name: ::String, node: ::SyntaxTree::Node).void }
1622
+ def define_module(name, full_name, node); end
1623
+
1624
+ # @return [String]
1625
+ #
1626
+ # source://spoom//lib/spoom/deadcode/indexer.rb#10
1627
+ def file_name; end
1628
+
1629
+ # source://spoom//lib/spoom/deadcode/indexer.rb#13
1630
+ sig { returns(::Spoom::Deadcode::Index) }
1631
+ def index; end
1632
+
1633
+ # source://spoom//lib/spoom/deadcode/indexer.rb#426
1634
+ sig { returns(T.nilable(::String)) }
1635
+ def last_sig; end
1636
+
1637
+ # source://spoom//lib/spoom/deadcode/indexer.rb#386
1638
+ sig { returns(T.nilable(::SyntaxTree::BlockNode)) }
1639
+ def nesting_block; end
1640
+
1641
+ # source://spoom//lib/spoom/deadcode/indexer.rb#391
1642
+ sig { returns(T.nilable(::SyntaxTree::MethodAddBlock)) }
1643
+ def nesting_block_call; end
1644
+
1645
+ # source://spoom//lib/spoom/deadcode/indexer.rb#396
1646
+ sig { returns(T.nilable(::String)) }
1647
+ def nesting_block_call_name; end
1648
+
1649
+ # source://spoom//lib/spoom/deadcode/indexer.rb#381
1650
+ sig { returns(T.nilable(::SyntaxTree::ClassDeclaration)) }
1651
+ def nesting_class; end
1652
+
1653
+ # source://spoom//lib/spoom/deadcode/indexer.rb#410
1654
+ sig { returns(T.nilable(::String)) }
1655
+ def nesting_class_name; end
1656
+
1657
+ # source://spoom//lib/spoom/deadcode/indexer.rb#418
1658
+ sig { returns(T.nilable(::String)) }
1659
+ def nesting_class_superclass_name; end
1660
+
1661
+ # source://spoom//lib/spoom/deadcode/indexer.rb#372
1662
+ sig { type_parameters(:N).params(type: T::Class[T.type_parameter(:N)]).returns(T.nilable(T.type_parameter(:N))) }
1663
+ def nesting_node(type); end
1664
+
1665
+ # source://spoom//lib/spoom/deadcode/indexer.rb#445
1666
+ sig { params(node: ::SyntaxTree::Node).returns(::Spoom::Deadcode::Location) }
1667
+ def node_location(node); end
1668
+
1669
+ # Node utils
1670
+ #
1671
+ # source://spoom//lib/spoom/deadcode/indexer.rb#435
1672
+ sig { params(node: T.any(::Symbol, ::SyntaxTree::Node)).returns(::String) }
1673
+ def node_string(node); end
1674
+
1675
+ # source://spoom//lib/spoom/deadcode/indexer.rb#10
1676
+ sig { returns(::String) }
1677
+ def path; end
1678
+
1679
+ # Reference indexing
1680
+ #
1681
+ # source://spoom//lib/spoom/deadcode/indexer.rb#355
1682
+ sig { params(name: ::String, node: ::SyntaxTree::Node).void }
1683
+ def reference_constant(name, node); end
1684
+
1685
+ # source://spoom//lib/spoom/deadcode/indexer.rb#360
1686
+ sig { params(name: ::String, node: ::SyntaxTree::Node).void }
1687
+ def reference_method(name, node); end
1688
+
1689
+ # source://spoom//lib/spoom/deadcode/indexer.rb#450
1690
+ sig { params(node: ::SyntaxTree::Node).returns(::String) }
1691
+ def symbol_string(node); end
1692
+
1693
+ # Visit
1694
+ #
1695
+ # source://spoom//lib/spoom/deadcode/indexer.rb#35
1696
+ sig { override.params(node: T.nilable(::SyntaxTree::Node)).void }
1697
+ def visit(node); end
1698
+
1699
+ # source://spoom//lib/spoom/deadcode/indexer.rb#45
1700
+ sig { override.params(node: ::SyntaxTree::AliasNode).void }
1701
+ def visit_alias(node); end
1702
+
1703
+ # source://spoom//lib/spoom/deadcode/indexer.rb#50
1704
+ sig { override.params(node: ::SyntaxTree::ARef).void }
1705
+ def visit_aref(node); end
1706
+
1707
+ # source://spoom//lib/spoom/deadcode/indexer.rb#57
1708
+ sig { override.params(node: ::SyntaxTree::ARefField).void }
1709
+ def visit_aref_field(node); end
1710
+
1711
+ # source://spoom//lib/spoom/deadcode/indexer.rb#64
1712
+ sig { override.params(node: ::SyntaxTree::ArgBlock).void }
1713
+ def visit_arg_block(node); end
1714
+
1715
+ # source://spoom//lib/spoom/deadcode/indexer.rb#78
1716
+ sig { override.params(node: ::SyntaxTree::Binary).void }
1717
+ def visit_binary(node); end
1718
+
1719
+ # source://spoom//lib/spoom/deadcode/indexer.rb#94
1720
+ sig { override.params(node: ::SyntaxTree::CallNode).void }
1721
+ def visit_call(node); end
1722
+
1723
+ # source://spoom//lib/spoom/deadcode/indexer.rb#106
1724
+ sig { override.params(node: ::SyntaxTree::ClassDeclaration).void }
1725
+ def visit_class(node); end
1726
+
1727
+ # source://spoom//lib/spoom/deadcode/indexer.rb#119
1728
+ sig { override.params(node: ::SyntaxTree::Command).void }
1729
+ def visit_command(node); end
1730
+
1731
+ # source://spoom//lib/spoom/deadcode/indexer.rb#131
1732
+ sig { override.params(node: ::SyntaxTree::CommandCall).void }
1733
+ def visit_command_call(node); end
1734
+
1735
+ # source://spoom//lib/spoom/deadcode/indexer.rb#144
1736
+ sig { override.params(node: ::SyntaxTree::Const).void }
1737
+ def visit_const(node); end
1738
+
1739
+ # source://spoom//lib/spoom/deadcode/indexer.rb#149
1740
+ sig { override.params(node: ::SyntaxTree::ConstPathField).void }
1741
+ def visit_const_path_field(node); end
1742
+
1743
+ # source://spoom//lib/spoom/deadcode/indexer.rb#159
1744
+ sig { override.params(node: ::SyntaxTree::DefNode).void }
1745
+ def visit_def(node); end
1746
+
1747
+ # source://spoom//lib/spoom/deadcode/indexer.rb#167
1748
+ sig { override.params(node: ::SyntaxTree::Field).void }
1749
+ def visit_field(node); end
1750
+
1751
+ # source://spoom//lib/spoom/deadcode/indexer.rb#183
1752
+ sig { override.params(node: ::SyntaxTree::ModuleDeclaration).void }
1753
+ def visit_module(node); end
1754
+
1755
+ # source://spoom//lib/spoom/deadcode/indexer.rb#195
1756
+ sig { override.params(node: ::SyntaxTree::OpAssign).void }
1757
+ def visit_opassign(node); end
1758
+
1759
+ # source://spoom//lib/spoom/deadcode/indexer.rb#204
1760
+ sig { params(send: ::Spoom::Deadcode::Send).void }
1761
+ def visit_send(send); end
1762
+
1763
+ # source://spoom//lib/spoom/deadcode/indexer.rb#243
1764
+ sig { override.params(node: ::SyntaxTree::SymbolLiteral).void }
1765
+ def visit_symbol_literal(node); end
1766
+
1767
+ # source://spoom//lib/spoom/deadcode/indexer.rb#252
1768
+ sig { override.params(node: ::SyntaxTree::TopConstField).void }
1769
+ def visit_top_const_field(node); end
1770
+
1771
+ # source://spoom//lib/spoom/deadcode/indexer.rb#257
1772
+ sig { override.params(node: ::SyntaxTree::VarField).void }
1773
+ def visit_var_field(node); end
1774
+
1775
+ # source://spoom//lib/spoom/deadcode/indexer.rb#274
1776
+ sig { override.params(node: ::SyntaxTree::VCall).void }
1777
+ def visit_vcall(node); end
1778
+ end
1779
+
1780
+ # source://spoom//lib/spoom/deadcode.rb#34
1781
+ class Spoom::Deadcode::IndexerError < ::Spoom::Deadcode::Error; end
1782
+
1783
+ # source://spoom//lib/spoom/deadcode/location.rb#6
1784
+ class Spoom::Deadcode::Location
1785
+ include ::Comparable
1786
+
1787
+ # source://spoom//lib/spoom/deadcode/location.rb#54
1788
+ sig do
1789
+ params(
1790
+ file: ::String,
1791
+ start_line: ::Integer,
1792
+ start_column: ::Integer,
1793
+ end_line: ::Integer,
1794
+ end_column: ::Integer
1795
+ ).void
1796
+ end
1797
+ def initialize(file, start_line, start_column, end_line, end_column); end
1798
+
1799
+ # source://spoom//lib/spoom/deadcode/location.rb#74
1800
+ sig { override.params(other: ::BasicObject).returns(T.nilable(::Integer)) }
1801
+ def <=>(other); end
1802
+
1803
+ # @return [Integer]
1804
+ #
1805
+ # source://spoom//lib/spoom/deadcode/location.rb#43
1806
+ def end_column; end
1807
+
1808
+ # @return [Integer]
1809
+ #
1810
+ # source://spoom//lib/spoom/deadcode/location.rb#43
1811
+ def end_line; end
1812
+
1813
+ # source://spoom//lib/spoom/deadcode/location.rb#40
1814
+ sig { returns(::String) }
1815
+ def file; end
1816
+
1817
+ # source://spoom//lib/spoom/deadcode/location.rb#63
1818
+ sig { params(other: ::Spoom::Deadcode::Location).returns(T::Boolean) }
1819
+ def include?(other); end
1820
+
1821
+ # @return [Integer]
1822
+ #
1823
+ # source://spoom//lib/spoom/deadcode/location.rb#43
1824
+ def start_column; end
1825
+
1826
+ # source://spoom//lib/spoom/deadcode/location.rb#43
1827
+ sig { returns(::Integer) }
1828
+ def start_line; end
1829
+
1830
+ # source://spoom//lib/spoom/deadcode/location.rb#81
1831
+ sig { returns(::String) }
1832
+ def to_s; end
1833
+
1834
+ class << self
1835
+ # @raise [LocationError]
1836
+ #
1837
+ # source://spoom//lib/spoom/deadcode/location.rb#17
1838
+ sig { params(location_string: ::String).returns(::Spoom::Deadcode::Location) }
1839
+ def from_string(location_string); end
1840
+
1841
+ # source://spoom//lib/spoom/deadcode/location.rb#34
1842
+ sig { params(file: ::String, location: ::SyntaxTree::Location).returns(::Spoom::Deadcode::Location) }
1843
+ def from_syntax_tree(file, location); end
1844
+ end
1845
+ end
1846
+
1847
+ # source://spoom//lib/spoom/deadcode/location.rb#11
1848
+ class Spoom::Deadcode::Location::LocationError < ::Spoom::Error; end
1849
+
1850
+ # source://spoom//lib/spoom/deadcode/plugins.rb#35
1851
+ Spoom::Deadcode::PLUGINS_FOR_GEM = T.let(T.unsafe(nil), Hash)
1852
+
1853
+ # source://spoom//lib/spoom/deadcode.rb#33
1854
+ class Spoom::Deadcode::ParserError < ::Spoom::Deadcode::Error; end
1855
+
1856
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#8
1857
+ module Spoom::Deadcode::Plugins; end
1858
+
1859
+ # source://spoom//lib/spoom/deadcode/plugins/action_mailer.rb#7
1860
+ class Spoom::Deadcode::Plugins::ActionMailer < ::Spoom::Deadcode::Plugins::Base
1861
+ # source://spoom//lib/spoom/deadcode/plugins/action_mailer.rb#11
1862
+ sig { override.params(indexer: ::Spoom::Deadcode::Indexer, send: ::Spoom::Deadcode::Send).void }
1863
+ def on_send(indexer, send); end
1864
+ end
1865
+
1866
+ # source://spoom//lib/spoom/deadcode/plugins/actionpack.rb#7
1867
+ class Spoom::Deadcode::Plugins::ActionPack < ::Spoom::Deadcode::Plugins::Base
1868
+ # source://spoom//lib/spoom/deadcode/plugins/actionpack.rb#31
1869
+ sig { override.params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void }
1870
+ def on_define_method(indexer, definition); end
1871
+
1872
+ # source://spoom//lib/spoom/deadcode/plugins/actionpack.rb#36
1873
+ sig { override.params(indexer: ::Spoom::Deadcode::Indexer, send: ::Spoom::Deadcode::Send).void }
1874
+ def on_send(indexer, send); end
1875
+ end
1876
+
1877
+ # source://spoom//lib/spoom/deadcode/plugins/actionpack.rb#10
1878
+ Spoom::Deadcode::Plugins::ActionPack::CALLBACKS = T.let(T.unsafe(nil), Array)
1879
+
1880
+ # source://spoom//lib/spoom/deadcode/plugins/active_job.rb#7
1881
+ class Spoom::Deadcode::Plugins::ActiveJob < ::Spoom::Deadcode::Plugins::Base; end
1882
+
1883
+ # source://spoom//lib/spoom/deadcode/plugins/active_model.rb#7
1884
+ class Spoom::Deadcode::Plugins::ActiveModel < ::Spoom::Deadcode::Plugins::Base
1885
+ # source://spoom//lib/spoom/deadcode/plugins/active_model.rb#14
1886
+ sig { override.params(indexer: ::Spoom::Deadcode::Indexer, send: ::Spoom::Deadcode::Send).void }
1887
+ def on_send(indexer, send); end
1888
+ end
1889
+
1890
+ # source://spoom//lib/spoom/deadcode/plugins/active_record.rb#7
1891
+ class Spoom::Deadcode::Plugins::ActiveRecord < ::Spoom::Deadcode::Plugins::Base
1892
+ # source://spoom//lib/spoom/deadcode/plugins/active_record.rb#74
1893
+ sig { override.params(indexer: ::Spoom::Deadcode::Indexer, send: ::Spoom::Deadcode::Send).void }
1894
+ def on_send(indexer, send); end
1895
+ end
1896
+
1897
+ # source://spoom//lib/spoom/deadcode/plugins/active_record.rb#64
1898
+ Spoom::Deadcode::Plugins::ActiveRecord::ARRAY_METHODS = T.let(T.unsafe(nil), Array)
1899
+
1900
+ # source://spoom//lib/spoom/deadcode/plugins/active_record.rb#20
1901
+ Spoom::Deadcode::Plugins::ActiveRecord::CALLBACKS = T.let(T.unsafe(nil), Array)
1902
+
1903
+ # source://spoom//lib/spoom/deadcode/plugins/active_record.rb#49
1904
+ Spoom::Deadcode::Plugins::ActiveRecord::CRUD_METHODS = T.let(T.unsafe(nil), Array)
1905
+
1906
+ # source://spoom//lib/spoom/deadcode/plugins/active_support.rb#7
1907
+ class Spoom::Deadcode::Plugins::ActiveSupport < ::Spoom::Deadcode::Plugins::Base; end
1908
+
1909
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
1910
+ #
1911
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#9
1912
+ class Spoom::Deadcode::Plugins::Base
1913
+ abstract!
1914
+
1915
+ # Do not override this method, use `on_define_accessor` instead.
1916
+ #
1917
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#150
1918
+ sig { params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void }
1919
+ def internal_on_define_accessor(indexer, definition); end
1920
+
1921
+ # Do not override this method, use `on_define_class` instead.
1922
+ #
1923
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#174
1924
+ sig { params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void }
1925
+ def internal_on_define_class(indexer, definition); end
1926
+
1927
+ # Do not override this method, use `on_define_constant` instead.
1928
+ #
1929
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#204
1930
+ sig { params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void }
1931
+ def internal_on_define_constant(indexer, definition); end
1932
+
1933
+ # Do not override this method, use `on_define_method` instead.
1934
+ #
1935
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#232
1936
+ sig { params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void }
1937
+ def internal_on_define_method(indexer, definition); end
1938
+
1939
+ # Do not override this method, use `on_define_module` instead.
1940
+ #
1941
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#258
1942
+ sig { params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void }
1943
+ def internal_on_define_module(indexer, definition); end
1944
+
1945
+ # Do not override this method, use `on_send` instead.
1946
+ #
1947
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#284
1948
+ sig { params(indexer: ::Spoom::Deadcode::Indexer, send: ::Spoom::Deadcode::Send).void }
1949
+ def internal_on_send(indexer, send); end
1950
+
1951
+ # Called when an accessor is defined.
1952
+ #
1953
+ # Will be called when the indexer processes a `attr_reader`, `attr_writer` or `attr_accessor` node.
1954
+ # Note that when this method is called, the definition for the node has already been added to the index.
1955
+ # It is still possible to ignore it from the plugin:
1956
+ #
1957
+ # ~~~rb
1958
+ # class MyPlugin < Spoom::Deadcode::Plugins::Base
1959
+ # def on_define_accessor(indexer, definition)
1960
+ # definition.ignored! if definition.name == "foo"
1961
+ # end
1962
+ # end
1963
+ # ~~~
1964
+ #
1965
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#144
1966
+ sig { params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void }
1967
+ def on_define_accessor(indexer, definition); end
1968
+
1969
+ # Called when a class is defined.
1970
+ #
1971
+ # Will be called when the indexer processes a `class` node.
1972
+ # Note that when this method is called, the definition for the node has already been added to the index.
1973
+ # It is still possible to ignore it from the plugin:
1974
+ #
1975
+ # ~~~rb
1976
+ # class MyPlugin < Spoom::Deadcode::Plugins::Base
1977
+ # def on_define_class(indexer, definition)
1978
+ # definition.ignored! if definition.name == "Foo"
1979
+ # end
1980
+ # end
1981
+ # ~~~
1982
+ #
1983
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#168
1984
+ sig { params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void }
1985
+ def on_define_class(indexer, definition); end
1986
+
1987
+ # Called when a constant is defined.
1988
+ #
1989
+ # Will be called when the indexer processes a `CONST =` node.
1990
+ # Note that when this method is called, the definition for the node has already been added to the index.
1991
+ # It is still possible to ignore it from the plugin:
1992
+ #
1993
+ # ~~~rb
1994
+ # class MyPlugin < Spoom::Deadcode::Plugins::Base
1995
+ # def on_define_constant(indexer, definition)
1996
+ # definition.ignored! if definition.name == "FOO"
1997
+ # end
1998
+ # end
1999
+ # ~~~
2000
+ #
2001
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#198
2002
+ sig { params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void }
2003
+ def on_define_constant(indexer, definition); end
2004
+
2005
+ # Called when a method is defined.
2006
+ #
2007
+ # Will be called when the indexer processes a `def` or `defs` node.
2008
+ # Note that when this method is called, the definition for the node has already been added to the index.
2009
+ # It is still possible to ignore it from the plugin:
2010
+ #
2011
+ # ~~~rb
2012
+ # class MyPlugin < Spoom::Deadcode::Plugins::Base
2013
+ # def on_define_method(indexer, definition)
2014
+ # super # So the `ignore_method_names` DSL is still applied
2015
+ #
2016
+ # definition.ignored! if definition.name == "foo"
2017
+ # end
2018
+ # end
2019
+ # ~~~
2020
+ #
2021
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#226
2022
+ sig { params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void }
2023
+ def on_define_method(indexer, definition); end
2024
+
2025
+ # Called when a module is defined.
2026
+ #
2027
+ # Will be called when the indexer processes a `module` node.
2028
+ # Note that when this method is called, the definition for the node has already been added to the index.
2029
+ # It is still possible to ignore it from the plugin:
2030
+ #
2031
+ # ~~~rb
2032
+ # class MyPlugin < Spoom::Deadcode::Plugins::Base
2033
+ # def on_define_module(indexer, definition)
2034
+ # definition.ignored! if definition.name == "Foo"
2035
+ # end
2036
+ # end
2037
+ # ~~~
2038
+ #
2039
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#252
2040
+ sig { params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void }
2041
+ def on_define_module(indexer, definition); end
2042
+
2043
+ # Called when a send is being processed
2044
+ #
2045
+ # ~~~rb
2046
+ # class MyPlugin < Spoom::Deadcode::Plugins::Base
2047
+ # def on_send(indexer, send)
2048
+ # return unless send.name == "dsl_method"
2049
+ # return if send.args.empty?
2050
+ #
2051
+ # method_name = indexer.node_string(send.args.first).delete_prefix(":")
2052
+ # indexer.reference_method(method_name, send.node)
2053
+ # end
2054
+ # end
2055
+ # ~~~
2056
+ #
2057
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#278
2058
+ sig { params(indexer: ::Spoom::Deadcode::Indexer, send: ::Spoom::Deadcode::Send).void }
2059
+ def on_send(indexer, send); end
2060
+
2061
+ private
2062
+
2063
+ # Plugin utils
2064
+ #
2065
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#339
2066
+ sig { params(name: ::String).returns(::String) }
2067
+ def camelize(name); end
2068
+
2069
+ # DSL support
2070
+ #
2071
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#293
2072
+ sig { params(name: T.nilable(::String)).returns(T::Boolean) }
2073
+ def ignored_class_name?(name); end
2074
+
2075
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#307
2076
+ sig { params(name: ::String).returns(T::Boolean) }
2077
+ def ignored_constant_name?(name); end
2078
+
2079
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#312
2080
+ sig { params(name: ::String).returns(T::Boolean) }
2081
+ def ignored_method_name?(name); end
2082
+
2083
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#317
2084
+ sig { params(name: ::String).returns(T::Boolean) }
2085
+ def ignored_module_name?(name); end
2086
+
2087
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#322
2088
+ sig { params(name: ::String, names_variable: ::Symbol, patterns_variable: ::Symbol).returns(T::Boolean) }
2089
+ def ignored_name?(name, names_variable, patterns_variable); end
2090
+
2091
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#300
2092
+ sig { params(superclass_name: T.nilable(::String)).returns(T::Boolean) }
2093
+ def ignored_subclass?(superclass_name); end
2094
+
2095
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#327
2096
+ sig { params(const: ::Symbol).returns(T::Set[::String]) }
2097
+ def names(const); end
2098
+
2099
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#332
2100
+ sig { params(const: ::Symbol).returns(T::Array[::Regexp]) }
2101
+ def patterns(const); end
2102
+
2103
+ class << self
2104
+ # Mark classes directly subclassing a class matching `names` as ignored.
2105
+ #
2106
+ # Names can be either strings or regexps:
2107
+ #
2108
+ # ~~~rb
2109
+ # class MyPlugin < Spoom::Deadcode::Plugins::Base
2110
+ # ignore_classes_inheriting_from(
2111
+ # "Foo",
2112
+ # "Bar",
2113
+ # /Baz.*/,
2114
+ # )
2115
+ # end
2116
+ # ~~~
2117
+ #
2118
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#52
2119
+ sig { params(names: T.any(::Regexp, ::String)).void }
2120
+ def ignore_classes_inheriting_from(*names); end
2121
+
2122
+ # Mark classes matching `names` as ignored.
2123
+ #
2124
+ # Names can be either strings or regexps:
2125
+ #
2126
+ # ~~~rb
2127
+ # class MyPlugin < Spoom::Deadcode::Plugins::Base
2128
+ # ignore_class_names(
2129
+ # "Foo",
2130
+ # "Bar",
2131
+ # /Baz.*/,
2132
+ # )
2133
+ # end
2134
+ # ~~~
2135
+ #
2136
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#34
2137
+ sig { params(names: T.any(::Regexp, ::String)).void }
2138
+ def ignore_classes_named(*names); end
2139
+
2140
+ # Mark constants matching `names` as ignored.
2141
+ #
2142
+ # Names can be either strings or regexps:
2143
+ #
2144
+ # ~~~rb
2145
+ # class MyPlugin < Spoom::Deadcode::Plugins::Base
2146
+ # ignore_class_names(
2147
+ # "FOO",
2148
+ # "BAR",
2149
+ # /BAZ.*/,
2150
+ # )
2151
+ # end
2152
+ # ~~~
2153
+ #
2154
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#70
2155
+ sig { params(names: T.any(::Regexp, ::String)).void }
2156
+ def ignore_constants_named(*names); end
2157
+
2158
+ # Mark methods matching `names` as ignored.
2159
+ #
2160
+ # Names can be either strings or regexps:
2161
+ #
2162
+ # ~~~rb
2163
+ # class MyPlugin < Spoom::Deadcode::Plugins::Base
2164
+ # ignore_method_names(
2165
+ # "foo",
2166
+ # "bar",
2167
+ # /baz.*/,
2168
+ # )
2169
+ # end
2170
+ # ~~~
2171
+ #
2172
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#88
2173
+ sig { params(names: T.any(::Regexp, ::String)).void }
2174
+ def ignore_methods_named(*names); end
2175
+
2176
+ # Mark modules matching `names` as ignored.
2177
+ #
2178
+ # Names can be either strings or regexps:
2179
+ #
2180
+ # ~~~rb
2181
+ # class MyPlugin < Spoom::Deadcode::Plugins::Base
2182
+ # ignore_class_names(
2183
+ # "Foo",
2184
+ # "Bar",
2185
+ # /Baz.*/,
2186
+ # )
2187
+ # end
2188
+ # ~~~
2189
+ #
2190
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#106
2191
+ sig { params(names: T.any(::Regexp, ::String)).void }
2192
+ def ignore_modules_named(*names); end
2193
+
2194
+ private
2195
+
2196
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#113
2197
+ sig do
2198
+ params(
2199
+ names: T::Array[T.any(::Regexp, ::String)],
2200
+ names_variable: ::Symbol,
2201
+ patterns_variable: ::Symbol
2202
+ ).void
2203
+ end
2204
+ def save_names_and_patterns(names, names_variable, patterns_variable); end
2205
+ end
2206
+ end
2207
+
2208
+ # source://spoom//lib/spoom/deadcode/plugins/graphql.rb#7
2209
+ class Spoom::Deadcode::Plugins::GraphQL < ::Spoom::Deadcode::Plugins::Base
2210
+ # source://spoom//lib/spoom/deadcode/plugins/graphql.rb#28
2211
+ sig { override.params(indexer: ::Spoom::Deadcode::Indexer, send: ::Spoom::Deadcode::Send).void }
2212
+ def on_send(indexer, send); end
2213
+ end
2214
+
2215
+ # source://spoom//lib/spoom/deadcode/plugins/minitest.rb#7
2216
+ class Spoom::Deadcode::Plugins::Minitest < ::Spoom::Deadcode::Plugins::Base
2217
+ # source://spoom//lib/spoom/deadcode/plugins/minitest.rb#22
2218
+ sig { override.params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void }
2219
+ def on_define_method(indexer, definition); end
2220
+ end
2221
+
2222
+ # source://spoom//lib/spoom/deadcode/plugins/namespaces.rb#7
2223
+ class Spoom::Deadcode::Plugins::Namespaces < ::Spoom::Deadcode::Plugins::Base
2224
+ # source://spoom//lib/spoom/deadcode/plugins/namespaces.rb#11
2225
+ sig { override.params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void }
2226
+ def on_define_class(indexer, definition); end
2227
+
2228
+ # source://spoom//lib/spoom/deadcode/plugins/namespaces.rb#16
2229
+ sig { override.params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void }
2230
+ def on_define_module(indexer, definition); end
2231
+
2232
+ private
2233
+
2234
+ # source://spoom//lib/spoom/deadcode/plugins/namespaces.rb#23
2235
+ sig { params(indexer: ::Spoom::Deadcode::Indexer).returns(T::Boolean) }
2236
+ def used_as_namespace?(indexer); end
2237
+ end
2238
+
2239
+ # source://spoom//lib/spoom/deadcode/plugins/rspec.rb#7
2240
+ class Spoom::Deadcode::Plugins::RSpec < ::Spoom::Deadcode::Plugins::Base; end
2241
+
2242
+ # source://spoom//lib/spoom/deadcode/plugins/rails.rb#7
2243
+ class Spoom::Deadcode::Plugins::Rails < ::Spoom::Deadcode::Plugins::Base
2244
+ # source://spoom//lib/spoom/deadcode/plugins/rails.rb#13
2245
+ sig { override.params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void }
2246
+ def on_define_class(indexer, definition); end
2247
+
2248
+ # source://spoom//lib/spoom/deadcode/plugins/rails.rb#18
2249
+ sig { override.params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void }
2250
+ def on_define_module(indexer, definition); end
2251
+
2252
+ private
2253
+
2254
+ # source://spoom//lib/spoom/deadcode/plugins/rails.rb#25
2255
+ sig { params(indexer: ::Spoom::Deadcode::Indexer).returns(T::Boolean) }
2256
+ def file_is_helper?(indexer); end
2257
+ end
2258
+
2259
+ # source://spoom//lib/spoom/deadcode/plugins/rake.rb#7
2260
+ class Spoom::Deadcode::Plugins::Rake < ::Spoom::Deadcode::Plugins::Base; end
2261
+
2262
+ # source://spoom//lib/spoom/deadcode/plugins/rubocop.rb#7
2263
+ class Spoom::Deadcode::Plugins::Rubocop < ::Spoom::Deadcode::Plugins::Base
2264
+ # source://spoom//lib/spoom/deadcode/plugins/rubocop.rb#18
2265
+ sig { override.params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void }
2266
+ def on_define_constant(indexer, definition); end
2267
+
2268
+ # source://spoom//lib/spoom/deadcode/plugins/rubocop.rb#23
2269
+ sig { override.params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void }
2270
+ def on_define_method(indexer, definition); end
2271
+
2272
+ private
2273
+
2274
+ # source://spoom//lib/spoom/deadcode/plugins/rubocop.rb#30
2275
+ sig { params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).returns(T::Boolean) }
2276
+ def rubocop_constant?(indexer, definition); end
2277
+
2278
+ # source://spoom//lib/spoom/deadcode/plugins/rubocop.rb#35
2279
+ sig { params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).returns(T::Boolean) }
2280
+ def rubocop_method?(indexer, definition); end
2281
+ end
2282
+
2283
+ # source://spoom//lib/spoom/deadcode/plugins/rubocop.rb#10
2284
+ Spoom::Deadcode::Plugins::Rubocop::RUBOCOP_CONSTANTS = T.let(T.unsafe(nil), Set)
2285
+
2286
+ # source://spoom//lib/spoom/deadcode/plugins/ruby.rb#7
2287
+ class Spoom::Deadcode::Plugins::Ruby < ::Spoom::Deadcode::Plugins::Base
2288
+ # source://spoom//lib/spoom/deadcode/plugins/ruby.rb#24
2289
+ sig { override.params(indexer: ::Spoom::Deadcode::Indexer, send: ::Spoom::Deadcode::Send).void }
2290
+ def on_send(indexer, send); end
2291
+
2292
+ private
2293
+
2294
+ # source://spoom//lib/spoom/deadcode/plugins/ruby.rb#50
2295
+ sig { params(indexer: ::Spoom::Deadcode::Indexer, send: ::Spoom::Deadcode::Send, node: ::SyntaxTree::Node).void }
2296
+ def reference_symbol_as_constant(indexer, send, node); end
2297
+ end
2298
+
2299
+ # source://spoom//lib/spoom/deadcode/plugins/sorbet.rb#7
2300
+ class Spoom::Deadcode::Plugins::Sorbet < ::Spoom::Deadcode::Plugins::Base
2301
+ # source://spoom//lib/spoom/deadcode/plugins/sorbet.rb#11
2302
+ sig { override.params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void }
2303
+ def on_define_constant(indexer, definition); end
2304
+
2305
+ # source://spoom//lib/spoom/deadcode/plugins/sorbet.rb#16
2306
+ sig { override.params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void }
2307
+ def on_define_method(indexer, definition); end
2308
+
2309
+ private
2310
+
2311
+ # source://spoom//lib/spoom/deadcode/plugins/sorbet.rb#40
2312
+ sig { params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).returns(T::Boolean) }
2313
+ def sorbet_enum_constant?(indexer, definition); end
2314
+
2315
+ # source://spoom//lib/spoom/deadcode/plugins/sorbet.rb#23
2316
+ sig { params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).returns(T::Boolean) }
2317
+ def sorbet_type_member?(indexer, definition); end
2318
+ end
2319
+
2320
+ # source://spoom//lib/spoom/deadcode/plugins/thor.rb#7
2321
+ class Spoom::Deadcode::Plugins::Thor < ::Spoom::Deadcode::Plugins::Base
2322
+ # source://spoom//lib/spoom/deadcode/plugins/thor.rb#13
2323
+ sig { override.params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void }
2324
+ def on_define_method(indexer, definition); end
2325
+ end
2326
+
2327
+ # A reference is a call to a method or a constant
2328
+ #
2329
+ # source://spoom//lib/spoom/deadcode/reference.rb#7
2330
+ class Spoom::Deadcode::Reference < ::T::Struct
2331
+ const :kind, ::Spoom::Deadcode::Reference::Kind
2332
+ const :name, ::String
2333
+ const :location, ::Spoom::Deadcode::Location
2334
+
2335
+ # Kind
2336
+ #
2337
+ # source://spoom//lib/spoom/deadcode/reference.rb#24
2338
+ sig { returns(T::Boolean) }
2339
+ def constant?; end
2340
+
2341
+ # source://spoom//lib/spoom/deadcode/reference.rb#29
2342
+ sig { returns(T::Boolean) }
2343
+ def method?; end
2344
+
2345
+ class << self
2346
+ # source://sorbet-runtime/0.5.11262/lib/types/struct.rb#13
2347
+ def inherited(s); end
2348
+ end
2349
+ end
2350
+
2351
+ # source://spoom//lib/spoom/deadcode/reference.rb#10
2352
+ class Spoom::Deadcode::Reference::Kind < ::T::Enum
2353
+ enums do
2354
+ Constant = new
2355
+ Method = new
2356
+ end
2357
+ end
2358
+
2359
+ # source://spoom//lib/spoom/deadcode/remover.rb#6
2360
+ class Spoom::Deadcode::Remover
2361
+ # source://spoom//lib/spoom/deadcode/remover.rb#12
2362
+ sig { params(context: ::Spoom::Context).void }
2363
+ def initialize(context); end
2364
+
2365
+ # source://spoom//lib/spoom/deadcode/remover.rb#17
2366
+ sig { params(kind: ::Spoom::Deadcode::Definition::Kind, location: ::Spoom::Deadcode::Location).void }
2367
+ def remove_location(kind, location); end
2368
+ end
2369
+
2370
+ # source://spoom//lib/spoom/deadcode/remover.rb#9
2371
+ class Spoom::Deadcode::Remover::Error < ::Spoom::Error; end
2372
+
2373
+ # source://spoom//lib/spoom/deadcode/remover.rb#348
2374
+ class Spoom::Deadcode::Remover::NodeContext
2375
+ # source://spoom//lib/spoom/deadcode/remover.rb#358
2376
+ sig { params(source: ::String, node: ::SyntaxTree::Node, nesting: T::Array[::SyntaxTree::Node]).void }
2377
+ def initialize(source, node, nesting); end
2378
+
2379
+ # source://spoom//lib/spoom/deadcode/remover.rb#467
2380
+ sig { returns(T::Array[::SyntaxTree::Node]) }
2381
+ def attached_comments_and_sigs; end
2382
+
2383
+ # source://spoom//lib/spoom/deadcode/remover.rb#480
2384
+ sig { returns(T.nilable(::SyntaxTree::MethodAddBlock)) }
2385
+ def attached_sig; end
2386
+
2387
+ # source://spoom//lib/spoom/deadcode/remover.rb#460
2388
+ sig { params(comment: ::SyntaxTree::Node, node: ::SyntaxTree::Node).returns(T::Boolean) }
2389
+ def comment_for_node?(comment, node); end
2390
+
2391
+ # source://spoom//lib/spoom/deadcode/remover.rb#355
2392
+ sig { returns(T::Array[::SyntaxTree::Node]) }
2393
+ def nesting; end
2394
+
2395
+ # @return [Array<SyntaxTree::Node>]
2396
+ #
2397
+ # source://spoom//lib/spoom/deadcode/remover.rb#355
2398
+ def nesting=(_arg0); end
2399
+
2400
+ # source://spoom//lib/spoom/deadcode/remover.rb#407
2401
+ sig { returns(T.nilable(::SyntaxTree::Node)) }
2402
+ def next_node; end
2403
+
2404
+ # source://spoom//lib/spoom/deadcode/remover.rb#397
2405
+ sig { returns(T::Array[::SyntaxTree::Node]) }
2406
+ def next_nodes; end
2407
+
2408
+ # source://spoom//lib/spoom/deadcode/remover.rb#352
2409
+ sig { returns(::SyntaxTree::Node) }
2410
+ def node; end
2411
+
2412
+ # source://spoom//lib/spoom/deadcode/remover.rb#495
2413
+ sig { params(node: T.any(::Symbol, ::SyntaxTree::Node)).returns(::String) }
2414
+ def node_string(node); end
2415
+
2416
+ # source://spoom//lib/spoom/deadcode/remover.rb#373
2417
+ sig { returns(::Spoom::Deadcode::Remover::NodeContext) }
2418
+ def parent_context; end
2419
+
2420
+ # source://spoom//lib/spoom/deadcode/remover.rb#365
2421
+ sig { returns(::SyntaxTree::Node) }
2422
+ def parent_node; end
2423
+
2424
+ # source://spoom//lib/spoom/deadcode/remover.rb#392
2425
+ sig { returns(T.nilable(::SyntaxTree::Node)) }
2426
+ def previous_node; end
2427
+
2428
+ # source://spoom//lib/spoom/deadcode/remover.rb#382
2429
+ sig { returns(T::Array[::SyntaxTree::Node]) }
2430
+ def previous_nodes; end
2431
+
2432
+ # source://spoom//lib/spoom/deadcode/remover.rb#412
2433
+ sig { returns(T.nilable(::Spoom::Deadcode::Remover::NodeContext)) }
2434
+ def sclass_context; end
2435
+
2436
+ # source://spoom//lib/spoom/deadcode/remover.rb#451
2437
+ sig { params(node: T.nilable(::SyntaxTree::Node)).returns(T::Boolean) }
2438
+ def sorbet_extend_sig?(node); end
2439
+
2440
+ # source://spoom//lib/spoom/deadcode/remover.rb#438
2441
+ sig { params(node: T.nilable(::SyntaxTree::Node)).returns(T::Boolean) }
2442
+ def sorbet_signature?(node); end
2443
+ end
2444
+
2445
+ # source://spoom//lib/spoom/deadcode/remover.rb#505
2446
+ class Spoom::Deadcode::Remover::NodeFinder < ::SyntaxTree::Visitor
2447
+ # source://spoom//lib/spoom/deadcode/remover.rb#554
2448
+ sig { params(location: ::Spoom::Deadcode::Location).void }
2449
+ def initialize(location); end
2450
+
2451
+ # source://spoom//lib/spoom/deadcode/remover.rb#548
2452
+ sig { returns(T.nilable(::SyntaxTree::Node)) }
2453
+ def node; end
2454
+
2455
+ # source://spoom//lib/spoom/deadcode/remover.rb#551
2456
+ sig { returns(T::Array[::SyntaxTree::Node]) }
2457
+ def nodes_nesting; end
2458
+
2459
+ # @return [Array<SyntaxTree::Node>]
2460
+ #
2461
+ # source://spoom//lib/spoom/deadcode/remover.rb#551
2462
+ def nodes_nesting=(_arg0); end
2463
+
2464
+ # source://spoom//lib/spoom/deadcode/remover.rb#562
2465
+ sig { override.params(node: T.nilable(::SyntaxTree::Node)).void }
2466
+ def visit(node); end
2467
+
2468
+ private
2469
+
2470
+ # TODO: remove once SyntaxTree location are fixed
2471
+ #
2472
+ # source://spoom//lib/spoom/deadcode/remover.rb#601
2473
+ sig { params(node: ::SyntaxTree::Node, nodes: T::Array[::SyntaxTree::Node]).returns(::Spoom::Deadcode::Location) }
2474
+ def location_from_children(node, nodes); end
2475
+
2476
+ # TODO: remove once SyntaxTree location are fixed
2477
+ #
2478
+ # source://spoom//lib/spoom/deadcode/remover.rb#586
2479
+ sig { params(node: ::SyntaxTree::Node).returns(::Spoom::Deadcode::Location) }
2480
+ def location_from_node(node); end
2481
+
2482
+ class << self
2483
+ # source://spoom//lib/spoom/deadcode/remover.rb#512
2484
+ sig do
2485
+ params(
2486
+ source: ::String,
2487
+ location: ::Spoom::Deadcode::Location,
2488
+ kind: ::Spoom::Deadcode::Definition::Kind
2489
+ ).returns(::Spoom::Deadcode::Remover::NodeContext)
2490
+ end
2491
+ def find(source, location, kind); end
2492
+
2493
+ # source://spoom//lib/spoom/deadcode/remover.rb#531
2494
+ sig { params(node: ::SyntaxTree::Node, kind: ::Spoom::Deadcode::Definition::Kind).returns(T::Boolean) }
2495
+ def node_match_kind?(node, kind); end
2496
+ end
2497
+ end
2498
+
2499
+ # source://spoom//lib/spoom/deadcode/remover.rb#29
2500
+ class Spoom::Deadcode::Remover::NodeRemover
2501
+ # source://spoom//lib/spoom/deadcode/remover.rb#36
2502
+ sig do
2503
+ params(
2504
+ source: ::String,
2505
+ kind: ::Spoom::Deadcode::Definition::Kind,
2506
+ location: ::Spoom::Deadcode::Location
2507
+ ).void
2508
+ end
2509
+ def initialize(source, kind, location); end
2510
+
2511
+ # source://spoom//lib/spoom/deadcode/remover.rb#46
2512
+ sig { void }
2513
+ def apply_edit; end
2514
+
2515
+ # source://spoom//lib/spoom/deadcode/remover.rb#33
2516
+ sig { returns(::String) }
2517
+ def new_source; end
2518
+
2519
+ private
2520
+
2521
+ # source://spoom//lib/spoom/deadcode/remover.rb#142
2522
+ sig { params(context: ::Spoom::Deadcode::Remover::NodeContext).void }
2523
+ def delete_attr_accessor(context); end
2524
+
2525
+ # source://spoom//lib/spoom/deadcode/remover.rb#290
2526
+ sig { params(start_char: ::Integer, end_char: ::Integer).void }
2527
+ def delete_chars(start_char, end_char); end
2528
+
2529
+ # source://spoom//lib/spoom/deadcode/remover.rb#69
2530
+ sig { params(context: ::Spoom::Deadcode::Remover::NodeContext).void }
2531
+ def delete_constant_assignment(context); end
2532
+
2533
+ # source://spoom//lib/spoom/deadcode/remover.rb#300
2534
+ sig { params(line_number: ::Integer, start_column: ::Integer, end_column: ::Integer).void }
2535
+ def delete_line_part(line_number, start_column, end_column); end
2536
+
2537
+ # source://spoom//lib/spoom/deadcode/remover.rb#283
2538
+ sig { params(start_line: ::Integer, end_line: ::Integer).void }
2539
+ def delete_lines(start_line, end_line); end
2540
+
2541
+ # source://spoom//lib/spoom/deadcode/remover.rb#250
2542
+ sig { params(context: ::Spoom::Deadcode::Remover::NodeContext).void }
2543
+ def delete_node_and_comments_and_sigs(context); end
2544
+
2545
+ # source://spoom//lib/spoom/deadcode/remover.rb#207
2546
+ sig do
2547
+ params(
2548
+ node: ::SyntaxTree::Node,
2549
+ send_context: ::Spoom::Deadcode::Remover::NodeContext,
2550
+ was_removed: T::Boolean
2551
+ ).void
2552
+ end
2553
+ def insert_accessor(node, send_context, was_removed:); end
2554
+
2555
+ # source://spoom//lib/spoom/deadcode/remover.rb#295
2556
+ sig { params(start_char: ::Integer, end_char: ::Integer, replacement: ::String).void }
2557
+ def replace_chars(start_char, end_char, replacement); end
2558
+
2559
+ # source://spoom//lib/spoom/deadcode/remover.rb#315
2560
+ sig do
2561
+ params(
2562
+ node: ::SyntaxTree::MethodAddBlock,
2563
+ name: ::String,
2564
+ kind: ::Spoom::Deadcode::Definition::Kind
2565
+ ).returns(::String)
2566
+ end
2567
+ def transform_sig(node, name:, kind:); end
2568
+ end
2569
+
2570
+ # An abstraction to simplify handling of SyntaxTree::CallNode, SyntaxTree::Command, SyntaxTree::CommandCall and
2571
+ # SyntaxTree::VCall nodes.
2572
+ #
2573
+ # source://spoom//lib/spoom/deadcode/send.rb#8
2574
+ class Spoom::Deadcode::Send < ::T::Struct
2575
+ const :node, ::SyntaxTree::Node
2576
+ const :name, ::String
2577
+ const :recv, T.nilable(::SyntaxTree::Node), default: T.unsafe(nil)
2578
+ const :args, T::Array[::SyntaxTree::Node], default: T.unsafe(nil)
2579
+ const :block, T.nilable(::SyntaxTree::Node), default: T.unsafe(nil)
2580
+
2581
+ # source://spoom//lib/spoom/deadcode/send.rb#22
2582
+ sig do
2583
+ type_parameters(:T)
2584
+ .params(
2585
+ arg_type: T::Class[T.type_parameter(:T)],
2586
+ block: T.proc.params(arg: T.type_parameter(:T)).void
2587
+ ).void
2588
+ end
2589
+ def each_arg(arg_type, &block); end
2590
+
2591
+ # source://spoom//lib/spoom/deadcode/send.rb#29
2592
+ sig { params(block: T.proc.params(key: ::SyntaxTree::Node, value: T.nilable(::SyntaxTree::Node)).void).void }
2593
+ def each_arg_assoc(&block); end
2594
+
2595
+ class << self
2596
+ # source://sorbet-runtime/0.5.11262/lib/types/struct.rb#13
2597
+ def inherited(s); end
2598
+ end
2599
+ end
2600
+
1324
2601
  # source://spoom//lib/spoom.rb#12
1325
2602
  class Spoom::Error < ::StandardError; end
1326
2603
 
@@ -1336,7 +2613,7 @@ class Spoom::ExecResult < ::T::Struct
1336
2613
  def to_s; end
1337
2614
 
1338
2615
  class << self
1339
- # source://sorbet-runtime/0.5.10792/lib/types/struct.rb#13
2616
+ # source://sorbet-runtime/0.5.11262/lib/types/struct.rb#13
1340
2617
  def inherited(s); end
1341
2618
  end
1342
2619
  end
@@ -1348,41 +2625,55 @@ class Spoom::FileCollector
1348
2625
  # If `allow_extensions` is empty, all files are collected.
1349
2626
  # If `allow_extensions` is an array of extensions, only files with one of these extensions are collected.
1350
2627
  #
1351
- # source://spoom//lib/spoom/file_collector.rb#21
1352
- sig { params(allow_extensions: T::Array[::String], exclude_patterns: T::Array[::String]).void }
1353
- def initialize(allow_extensions: T.unsafe(nil), exclude_patterns: T.unsafe(nil)); end
2628
+ # If `allow_mime_types` is empty, all files are collected.
2629
+ # If `allow_mime_types` is an array of mimetypes, files without an extension are collected if their mimetype is in
2630
+ # the list.
2631
+ #
2632
+ # source://spoom//lib/spoom/file_collector.rb#26
2633
+ sig do
2634
+ params(
2635
+ allow_extensions: T::Array[::String],
2636
+ allow_mime_types: T::Array[::String],
2637
+ exclude_patterns: T::Array[::String]
2638
+ ).void
2639
+ end
2640
+ def initialize(allow_extensions: T.unsafe(nil), allow_mime_types: T.unsafe(nil), exclude_patterns: T.unsafe(nil)); end
1354
2641
 
1355
2642
  # source://spoom//lib/spoom/file_collector.rb#9
1356
2643
  sig { returns(T::Array[::String]) }
1357
2644
  def files; end
1358
2645
 
1359
- # source://spoom//lib/spoom/file_collector.rb#33
2646
+ # source://spoom//lib/spoom/file_collector.rb#39
1360
2647
  sig { params(path: ::String).void }
1361
2648
  def visit_path(path); end
1362
2649
 
1363
- # source://spoom//lib/spoom/file_collector.rb#28
2650
+ # source://spoom//lib/spoom/file_collector.rb#34
1364
2651
  sig { params(paths: T::Array[::String]).void }
1365
2652
  def visit_paths(paths); end
1366
2653
 
1367
2654
  private
1368
2655
 
1369
- # source://spoom//lib/spoom/file_collector.rb#50
2656
+ # source://spoom//lib/spoom/file_collector.rb#56
1370
2657
  sig { params(path: ::String).returns(::String) }
1371
2658
  def clean_path(path); end
1372
2659
 
1373
- # source://spoom//lib/spoom/file_collector.rb#67
2660
+ # source://spoom//lib/spoom/file_collector.rb#73
1374
2661
  sig { params(path: ::String).returns(T::Boolean) }
1375
2662
  def excluded_file?(path); end
1376
2663
 
1377
- # source://spoom//lib/spoom/file_collector.rb#75
2664
+ # source://spoom//lib/spoom/file_collector.rb#88
1378
2665
  sig { params(path: ::String).returns(T::Boolean) }
1379
2666
  def excluded_path?(path); end
1380
2667
 
1381
- # source://spoom//lib/spoom/file_collector.rb#62
2668
+ # source://spoom//lib/spoom/file_collector.rb#97
2669
+ sig { params(path: ::String).returns(T.nilable(::String)) }
2670
+ def mime_type_for(path); end
2671
+
2672
+ # source://spoom//lib/spoom/file_collector.rb#68
1382
2673
  sig { params(path: ::String).void }
1383
2674
  def visit_directory(path); end
1384
2675
 
1385
- # source://spoom//lib/spoom/file_collector.rb#55
2676
+ # source://spoom//lib/spoom/file_collector.rb#61
1386
2677
  sig { params(path: ::String).void }
1387
2678
  def visit_file(path); end
1388
2679
  end
@@ -1530,7 +2821,7 @@ class Spoom::FileTree::Node < ::T::Struct
1530
2821
  def path; end
1531
2822
 
1532
2823
  class << self
1533
- # source://sorbet-runtime/0.5.10792/lib/types/struct.rb#13
2824
+ # source://sorbet-runtime/0.5.11262/lib/types/struct.rb#13
1534
2825
  def inherited(s); end
1535
2826
  end
1536
2827
  end
@@ -1570,9 +2861,6 @@ end
1570
2861
  class Spoom::FileTree::Visitor
1571
2862
  abstract!
1572
2863
 
1573
- # source://sorbet-runtime/0.5.10792/lib/types/private/abstract/declare.rb#37
1574
- def initialize(*args, **_arg1, &blk); end
1575
-
1576
2864
  # source://spoom//lib/spoom/file_tree.rb#129
1577
2865
  sig { params(node: ::Spoom::FileTree::Node).void }
1578
2866
  def visit_node(node); end
@@ -1599,7 +2887,7 @@ class Spoom::Git::Commit < ::T::Struct
1599
2887
  def timestamp; end
1600
2888
 
1601
2889
  class << self
1602
- # source://sorbet-runtime/0.5.10792/lib/types/struct.rb#13
2890
+ # source://sorbet-runtime/0.5.11262/lib/types/struct.rb#13
1603
2891
  def inherited(s); end
1604
2892
 
1605
2893
  # Parse a line formated as `%h %at` into a `Commit`
@@ -1711,7 +2999,7 @@ class Spoom::LSP::Diagnostic < ::T::Struct
1711
2999
  sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Diagnostic) }
1712
3000
  def from_json(json); end
1713
3001
 
1714
- # source://sorbet-runtime/0.5.10792/lib/types/struct.rb#13
3002
+ # source://sorbet-runtime/0.5.11262/lib/types/struct.rb#13
1715
3003
  def inherited(s); end
1716
3004
  end
1717
3005
  end
@@ -1744,7 +3032,7 @@ class Spoom::LSP::DocumentSymbol < ::T::Struct
1744
3032
  sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::DocumentSymbol) }
1745
3033
  def from_json(json); end
1746
3034
 
1747
- # source://sorbet-runtime/0.5.10792/lib/types/struct.rb#13
3035
+ # source://sorbet-runtime/0.5.11262/lib/types/struct.rb#13
1748
3036
  def inherited(s); end
1749
3037
  end
1750
3038
  end
@@ -1802,7 +3090,7 @@ class Spoom::LSP::Hover < ::T::Struct
1802
3090
  sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Hover) }
1803
3091
  def from_json(json); end
1804
3092
 
1805
- # source://sorbet-runtime/0.5.10792/lib/types/struct.rb#13
3093
+ # source://sorbet-runtime/0.5.11262/lib/types/struct.rb#13
1806
3094
  def inherited(s); end
1807
3095
  end
1808
3096
  end
@@ -1827,7 +3115,7 @@ class Spoom::LSP::Location < ::T::Struct
1827
3115
  sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Location) }
1828
3116
  def from_json(json); end
1829
3117
 
1830
- # source://sorbet-runtime/0.5.10792/lib/types/struct.rb#13
3118
+ # source://sorbet-runtime/0.5.11262/lib/types/struct.rb#13
1831
3119
  def inherited(s); end
1832
3120
  end
1833
3121
  end
@@ -1838,19 +3126,15 @@ end
1838
3126
  #
1839
3127
  # source://spoom//lib/spoom/sorbet/lsp/base.rb#12
1840
3128
  class Spoom::LSP::Message
1841
- # source://spoom//lib/spoom/sorbet/lsp/base.rb#19
3129
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#16
1842
3130
  sig { void }
1843
3131
  def initialize; end
1844
3132
 
1845
- # source://spoom//lib/spoom/sorbet/lsp/base.rb#24
3133
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#21
1846
3134
  sig { returns(T::Hash[T.untyped, T.untyped]) }
1847
3135
  def as_json; end
1848
3136
 
1849
- # source://spoom//lib/spoom/sorbet/lsp/base.rb#16
1850
- sig { returns(::String) }
1851
- def jsonrpc; end
1852
-
1853
- # source://spoom//lib/spoom/sorbet/lsp/base.rb#32
3137
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#29
1854
3138
  sig { params(args: T.untyped).returns(::String) }
1855
3139
  def to_json(*args); end
1856
3140
  end
@@ -1859,17 +3143,17 @@ end
1859
3143
  #
1860
3144
  # A processed notification message must not send a response back. They work like events.
1861
3145
  #
1862
- # source://spoom//lib/spoom/sorbet/lsp/base.rb#64
3146
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#58
1863
3147
  class Spoom::LSP::Notification < ::Spoom::LSP::Message
1864
- # source://spoom//lib/spoom/sorbet/lsp/base.rb#74
3148
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#68
1865
3149
  sig { params(method: ::String, params: T::Hash[T.untyped, T.untyped]).void }
1866
3150
  def initialize(method, params); end
1867
3151
 
1868
- # source://spoom//lib/spoom/sorbet/lsp/base.rb#68
3152
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#62
1869
3153
  sig { returns(::String) }
1870
3154
  def method; end
1871
3155
 
1872
- # source://spoom//lib/spoom/sorbet/lsp/base.rb#71
3156
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#65
1873
3157
  sig { returns(T::Hash[T.untyped, T.untyped]) }
1874
3158
  def params; end
1875
3159
  end
@@ -1894,7 +3178,7 @@ class Spoom::LSP::Position < ::T::Struct
1894
3178
  sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Position) }
1895
3179
  def from_json(json); end
1896
3180
 
1897
- # source://sorbet-runtime/0.5.10792/lib/types/struct.rb#13
3181
+ # source://sorbet-runtime/0.5.11262/lib/types/struct.rb#13
1898
3182
  def inherited(s); end
1899
3183
  end
1900
3184
  end
@@ -1932,7 +3216,7 @@ class Spoom::LSP::Range < ::T::Struct
1932
3216
  sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Range) }
1933
3217
  def from_json(json); end
1934
3218
 
1935
- # source://sorbet-runtime/0.5.10792/lib/types/struct.rb#13
3219
+ # source://sorbet-runtime/0.5.11262/lib/types/struct.rb#13
1936
3220
  def inherited(s); end
1937
3221
  end
1938
3222
  end
@@ -1941,21 +3225,17 @@ end
1941
3225
  #
1942
3226
  # Every processed request must send a response back to the sender of the request.
1943
3227
  #
1944
- # source://spoom//lib/spoom/sorbet/lsp/base.rb#40
3228
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#37
1945
3229
  class Spoom::LSP::Request < ::Spoom::LSP::Message
1946
- # source://spoom//lib/spoom/sorbet/lsp/base.rb#53
3230
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#47
1947
3231
  sig { params(id: ::Integer, method: ::String, params: T::Hash[T.untyped, T.untyped]).void }
1948
3232
  def initialize(id, method, params); end
1949
3233
 
1950
- # source://spoom//lib/spoom/sorbet/lsp/base.rb#44
3234
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#41
1951
3235
  sig { returns(::Integer) }
1952
3236
  def id; end
1953
3237
 
1954
- # source://spoom//lib/spoom/sorbet/lsp/base.rb#47
1955
- sig { returns(::String) }
1956
- def method; end
1957
-
1958
- # source://spoom//lib/spoom/sorbet/lsp/base.rb#50
3238
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#44
1959
3239
  sig { returns(T::Hash[T.untyped, T.untyped]) }
1960
3240
  def params; end
1961
3241
  end
@@ -2002,7 +3282,7 @@ class Spoom::LSP::SignatureHelp < ::T::Struct
2002
3282
  sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::SignatureHelp) }
2003
3283
  def from_json(json); end
2004
3284
 
2005
- # source://sorbet-runtime/0.5.10792/lib/types/struct.rb#13
3285
+ # source://sorbet-runtime/0.5.11262/lib/types/struct.rb#13
2006
3286
  def inherited(s); end
2007
3287
  end
2008
3288
  end
@@ -2048,55 +3328,46 @@ class Spoom::LSP::SymbolPrinter < ::Spoom::Printer
2048
3328
  # source://spoom//lib/spoom/sorbet/lsp/structures.rb#313
2049
3329
  sig { returns(T::Set[::Integer]) }
2050
3330
  def seen; end
2051
-
2052
- # @return [Set<Integer>]
2053
- #
2054
- # source://spoom//lib/spoom/sorbet/lsp/structures.rb#313
2055
- def seen=(_arg0); end
2056
3331
  end
2057
3332
 
2058
- # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
2059
- #
2060
3333
  # source://spoom//lib/spoom/printer.rb#7
2061
3334
  class Spoom::Printer
2062
3335
  include ::Spoom::Colorize
2063
3336
 
2064
- abstract!
2065
-
2066
- # source://spoom//lib/spoom/printer.rb#19
3337
+ # source://spoom//lib/spoom/printer.rb#17
2067
3338
  sig { params(out: T.any(::IO, ::StringIO), colors: T::Boolean, indent_level: ::Integer).void }
2068
3339
  def initialize(out: T.unsafe(nil), colors: T.unsafe(nil), indent_level: T.unsafe(nil)); end
2069
3340
 
2070
3341
  # Colorize `string` with color if `@colors`
2071
3342
  #
2072
- # source://spoom//lib/spoom/printer.rb#80
3343
+ # source://spoom//lib/spoom/printer.rb#78
2073
3344
  sig { params(string: ::String, color: ::Spoom::Color).returns(::String) }
2074
3345
  def colorize(string, *color); end
2075
3346
 
2076
3347
  # Decrease indent level
2077
3348
  #
2078
- # source://spoom//lib/spoom/printer.rb#33
3349
+ # source://spoom//lib/spoom/printer.rb#31
2079
3350
  sig { void }
2080
3351
  def dedent; end
2081
3352
 
2082
3353
  # Increase indent level
2083
3354
  #
2084
- # source://spoom//lib/spoom/printer.rb#27
3355
+ # source://spoom//lib/spoom/printer.rb#25
2085
3356
  sig { void }
2086
3357
  def indent; end
2087
3358
 
2088
- # source://spoom//lib/spoom/printer.rb#16
3359
+ # source://spoom//lib/spoom/printer.rb#14
2089
3360
  sig { returns(T.any(::IO, ::StringIO)) }
2090
3361
  def out; end
2091
3362
 
2092
3363
  # @return [IO, StringIO]
2093
3364
  #
2094
- # source://spoom//lib/spoom/printer.rb#16
3365
+ # source://spoom//lib/spoom/printer.rb#14
2095
3366
  def out=(_arg0); end
2096
3367
 
2097
3368
  # Print `string` into `out`
2098
3369
  #
2099
- # source://spoom//lib/spoom/printer.rb#39
3370
+ # source://spoom//lib/spoom/printer.rb#37
2100
3371
  sig { params(string: T.nilable(::String)).void }
2101
3372
  def print(string); end
2102
3373
 
@@ -2104,25 +3375,25 @@ class Spoom::Printer
2104
3375
  #
2105
3376
  # Does not use colors unless `@colors`.
2106
3377
  #
2107
- # source://spoom//lib/spoom/printer.rb#49
3378
+ # source://spoom//lib/spoom/printer.rb#47
2108
3379
  sig { params(string: T.nilable(::String), color: ::Spoom::Color).void }
2109
3380
  def print_colored(string, *color); end
2110
3381
 
2111
3382
  # Print `string` with indent and newline
2112
3383
  #
2113
- # source://spoom//lib/spoom/printer.rb#64
3384
+ # source://spoom//lib/spoom/printer.rb#62
2114
3385
  sig { params(string: T.nilable(::String)).void }
2115
3386
  def printl(string); end
2116
3387
 
2117
3388
  # Print a new line into `out`
2118
3389
  #
2119
- # source://spoom//lib/spoom/printer.rb#58
3390
+ # source://spoom//lib/spoom/printer.rb#56
2120
3391
  sig { void }
2121
3392
  def printn; end
2122
3393
 
2123
3394
  # Print an indent space into `out`
2124
3395
  #
2125
- # source://spoom//lib/spoom/printer.rb#74
3396
+ # source://spoom//lib/spoom/printer.rb#72
2126
3397
  sig { void }
2127
3398
  def printt; end
2128
3399
  end
@@ -2133,7 +3404,7 @@ Spoom::SPOOM_PATH = T.let(T.unsafe(nil), String)
2133
3404
  # source://spoom//lib/spoom/sorbet/config.rb#5
2134
3405
  module Spoom::Sorbet; end
2135
3406
 
2136
- # source://spoom//lib/spoom/sorbet.rb#38
3407
+ # source://spoom//lib/spoom/sorbet.rb#39
2137
3408
  Spoom::Sorbet::BIN_PATH = T.let(T.unsafe(nil), String)
2138
3409
 
2139
3410
  # source://spoom//lib/spoom/sorbet.rb#36
@@ -2376,7 +3647,10 @@ Spoom::Sorbet::Errors::Parser::HEADER = T.let(T.unsafe(nil), Array)
2376
3647
  # source://spoom//lib/spoom/sorbet.rb#37
2377
3648
  Spoom::Sorbet::GEM_PATH = T.let(T.unsafe(nil), String)
2378
3649
 
2379
- # source://spoom//lib/spoom/sorbet.rb#40
3650
+ # source://spoom//lib/spoom/sorbet.rb#38
3651
+ Spoom::Sorbet::GEM_VERSION = T.let(T.unsafe(nil), String)
3652
+
3653
+ # source://spoom//lib/spoom/sorbet.rb#41
2380
3654
  Spoom::Sorbet::KILLED_CODE = T.let(T.unsafe(nil), Integer)
2381
3655
 
2382
3656
  # source://spoom//lib/spoom/sorbet/metrics.rb#8
@@ -2399,7 +3673,7 @@ end
2399
3673
  # source://spoom//lib/spoom/sorbet/metrics.rb#9
2400
3674
  Spoom::Sorbet::MetricsParser::DEFAULT_PREFIX = T.let(T.unsafe(nil), String)
2401
3675
 
2402
- # source://spoom//lib/spoom/sorbet.rb#41
3676
+ # source://spoom//lib/spoom/sorbet.rb#42
2403
3677
  Spoom::Sorbet::SEGFAULT_CODE = T.let(T.unsafe(nil), Integer)
2404
3678
 
2405
3679
  # source://spoom//lib/spoom/sorbet/sigils.rb#9