sorbet-result 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
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