rbs 3.0.0.dev.2 → 3.0.0.dev.3

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 (112) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/comments.yml +2 -1
  3. data/.github/workflows/ruby.yml +4 -0
  4. data/Gemfile.lock +11 -11
  5. data/Rakefile +2 -2
  6. data/Steepfile +1 -1
  7. data/core/array.rbs +573 -423
  8. data/core/basic_object.rbs +11 -39
  9. data/core/binding.rbs +1 -1
  10. data/core/builtin.rbs +8 -0
  11. data/core/class.rbs +37 -0
  12. data/core/comparable.rbs +7 -18
  13. data/core/complex.rbs +2 -2
  14. data/core/data.rbs +419 -0
  15. data/core/dir.rbs +52 -104
  16. data/core/encoding.rbs +22 -181
  17. data/core/enumerable.rbs +212 -175
  18. data/core/enumerator/product.rbs +96 -0
  19. data/core/enumerator.rbs +57 -8
  20. data/core/errors.rbs +8 -2
  21. data/core/exception.rbs +41 -0
  22. data/core/fiber.rbs +95 -12
  23. data/core/file.rbs +840 -275
  24. data/core/file_test.rbs +34 -19
  25. data/core/float.rbs +40 -96
  26. data/core/gc.rbs +15 -3
  27. data/core/hash.rbs +113 -175
  28. data/core/integer.rbs +85 -145
  29. data/core/io/buffer.rbs +187 -60
  30. data/core/io/wait.rbs +28 -16
  31. data/core/io.rbs +1859 -1389
  32. data/core/kernel.rbs +525 -961
  33. data/core/match_data.rbs +306 -142
  34. data/core/math.rbs +506 -234
  35. data/core/method.rbs +0 -24
  36. data/core/module.rbs +110 -17
  37. data/core/nil_class.rbs +2 -0
  38. data/core/numeric.rbs +76 -144
  39. data/core/object.rbs +88 -212
  40. data/core/proc.rbs +17 -5
  41. data/core/process.rbs +22 -5
  42. data/core/ractor.rbs +1 -1
  43. data/core/random.rbs +20 -3
  44. data/core/range.rbs +91 -89
  45. data/core/rational.rbs +2 -3
  46. data/core/rbs/unnamed/argf.rbs +177 -120
  47. data/core/rbs/unnamed/env_class.rbs +89 -163
  48. data/core/rbs/unnamed/random.rbs +36 -12
  49. data/core/refinement.rbs +8 -0
  50. data/core/regexp.rbs +462 -272
  51. data/core/ruby_vm.rbs +210 -0
  52. data/{stdlib/set/0 → core}/set.rbs +43 -47
  53. data/core/string.rbs +1403 -1332
  54. data/core/string_io.rbs +191 -107
  55. data/core/struct.rbs +67 -63
  56. data/core/symbol.rbs +187 -201
  57. data/core/thread.rbs +40 -35
  58. data/core/time.rbs +902 -826
  59. data/core/trace_point.rbs +55 -6
  60. data/core/unbound_method.rbs +48 -24
  61. data/docs/collection.md +4 -0
  62. data/docs/syntax.md +55 -0
  63. data/ext/rbs_extension/parser.c +5 -6
  64. data/lib/rbs/cli.rb +6 -1
  65. data/lib/rbs/collection/cleaner.rb +8 -1
  66. data/lib/rbs/collection/config/lockfile.rb +3 -1
  67. data/lib/rbs/collection/config/lockfile_generator.rb +16 -14
  68. data/lib/rbs/collection/config.rb +1 -1
  69. data/lib/rbs/collection/sources/git.rb +9 -2
  70. data/lib/rbs/collection/sources/local.rb +79 -0
  71. data/lib/rbs/collection/sources.rb +8 -1
  72. data/lib/rbs/environment.rb +6 -5
  73. data/lib/rbs/environment_loader.rb +3 -2
  74. data/lib/rbs/errors.rb +18 -0
  75. data/lib/rbs/locator.rb +26 -7
  76. data/lib/rbs/sorter.rb +2 -2
  77. data/lib/rbs/version.rb +1 -1
  78. data/sig/collection/sources.rbs +32 -3
  79. data/sig/environment.rbs +2 -3
  80. data/sig/locator.rbs +14 -2
  81. data/sig/shims/{abstract_syntax_tree.rbs → _abstract_syntax_tree.rbs} +0 -0
  82. data/stdlib/bigdecimal/0/big_decimal.rbs +16 -13
  83. data/stdlib/cgi/0/core.rbs +16 -0
  84. data/stdlib/coverage/0/coverage.rbs +50 -8
  85. data/stdlib/csv/0/csv.rbs +1 -1
  86. data/stdlib/date/0/date.rbs +856 -726
  87. data/stdlib/date/0/date_time.rbs +83 -210
  88. data/stdlib/erb/0/erb.rbs +13 -36
  89. data/stdlib/etc/0/etc.rbs +127 -20
  90. data/stdlib/fileutils/0/fileutils.rbs +1290 -381
  91. data/stdlib/logger/0/logger.rbs +466 -316
  92. data/stdlib/net-http/0/net-http.rbs +2211 -534
  93. data/stdlib/nkf/0/nkf.rbs +5 -5
  94. data/stdlib/objspace/0/objspace.rbs +31 -14
  95. data/stdlib/openssl/0/openssl.rbs +11 -7
  96. data/stdlib/optparse/0/optparse.rbs +20 -17
  97. data/stdlib/pathname/0/pathname.rbs +21 -4
  98. data/stdlib/pstore/0/pstore.rbs +378 -154
  99. data/stdlib/pty/0/pty.rbs +24 -8
  100. data/stdlib/ripper/0/ripper.rbs +1650 -0
  101. data/stdlib/socket/0/addrinfo.rbs +9 -15
  102. data/stdlib/socket/0/socket.rbs +36 -3
  103. data/stdlib/strscan/0/string_scanner.rbs +7 -5
  104. data/stdlib/tempfile/0/tempfile.rbs +104 -44
  105. data/stdlib/time/0/time.rbs +2 -2
  106. data/stdlib/uri/0/file.rbs +5 -0
  107. data/stdlib/uri/0/generic.rbs +2 -2
  108. data/stdlib/yaml/0/yaml.rbs +2 -2
  109. data/stdlib/zlib/0/zlib.rbs +1 -1
  110. metadata +8 -6
  111. data/core/deprecated.rbs +0 -9
  112. data/sig/shims/ripper.rbs +0 -8
data/core/hash.rbs CHANGED
@@ -78,12 +78,12 @@
78
78
  #
79
79
  # You can create a Hash object explicitly with:
80
80
  #
81
- # * A [hash literal](doc/syntax/literals_rdoc.html#label-Hash+Literals).
81
+ # * A [hash literal](rdoc-ref:syntax/literals.rdoc@Hash+Literals).
82
82
  #
83
83
  #
84
84
  # You can convert certain objects to Hashes with:
85
85
  #
86
- # * Method [Hash](Kernel.html#method-i-Hash).
86
+ # * Method #Hash.
87
87
  #
88
88
  #
89
89
  # You can create a Hash by calling method Hash.new.
@@ -349,211 +349,152 @@
349
349
  #
350
350
  # First, what's elsewhere. Class Hash:
351
351
  #
352
- # * Inherits from [class
353
- # Object](Object.html#class-Object-label-What-27s+Here).
354
- # * Includes [module
355
- # Enumerable](Enumerable.html#module-Enumerable-label-What-27s+Here), which
352
+ # * Inherits from [class Object](rdoc-ref:Object@What-27s+Here).
353
+ # * Includes [module Enumerable](rdoc-ref:Enumerable@What-27s+Here), which
356
354
  # provides dozens of additional methods.
357
355
  #
358
356
  #
359
357
  # Here, class Hash provides methods that are useful for:
360
358
  #
361
- # * [Creating a Hash](#class-Hash-label-Methods+for+Creating+a+Hash)
362
- # * [Setting Hash State](#class-Hash-label-Methods+for+Setting+Hash+State)
363
- # * [Querying](#class-Hash-label-Methods+for+Querying)
364
- # * [Comparing](#class-Hash-label-Methods+for+Comparing)
365
- # * [Fetching](#class-Hash-label-Methods+for+Fetching)
366
- # * [Assigning](#class-Hash-label-Methods+for+Assigning)
367
- # * [Deleting](#class-Hash-label-Methods+for+Deleting)
368
- # * [Iterating](#class-Hash-label-Methods+for+Iterating)
369
- # * [Converting](#class-Hash-label-Methods+for+Converting)
359
+ # * [Creating a Hash](rdoc-ref:Hash@Methods+for+Creating+a+Hash)
360
+ # * [Setting Hash State](rdoc-ref:Hash@Methods+for+Setting+Hash+State)
361
+ # * [Querying](rdoc-ref:Hash@Methods+for+Querying)
362
+ # * [Comparing](rdoc-ref:Hash@Methods+for+Comparing)
363
+ # * [Fetching](rdoc-ref:Hash@Methods+for+Fetching)
364
+ # * [Assigning](rdoc-ref:Hash@Methods+for+Assigning)
365
+ # * [Deleting](rdoc-ref:Hash@Methods+for+Deleting)
366
+ # * [Iterating](rdoc-ref:Hash@Methods+for+Iterating)
367
+ # * [Converting](rdoc-ref:Hash@Methods+for+Converting)
370
368
  # * [Transforming Keys and
371
- # Values](#class-Hash-label-Methods+for+Transforming+Keys+and+Values)
372
- # * [And more....](#class-Hash-label-Other+Methods)
369
+ # Values](rdoc-ref:Hash@Methods+for+Transforming+Keys+and+Values)
370
+ # * [And more....](rdoc-ref:Hash@Other+Methods)
373
371
  #
374
372
  #
375
373
  # Class Hash also includes methods from module Enumerable.
376
374
  #
377
375
  # #### Methods for Creating a Hash
378
376
  #
379
- # ::[]
380
- # : Returns a new hash populated with given objects.
381
- # ::new
382
- # : Returns a new empty hash.
383
- # ::try_convert
384
- # : Returns a new hash created from a given object.
377
+ # * ::[]: Returns a new hash populated with given objects.
378
+ # * ::new: Returns a new empty hash.
379
+ # * ::try_convert: Returns a new hash created from a given object.
385
380
  #
386
381
  #
387
382
  # #### Methods for Setting Hash State
388
383
  #
389
- # #compare_by_identity
390
- # : Sets `self` to consider only identity in comparing keys.
391
- # #default=
392
- # : Sets the default to a given value.
393
- # #default_proc=
394
- # : Sets the default proc to a given proc.
395
- # #rehash
396
- # : Rebuilds the hash table by recomputing the hash index for each key.
384
+ # * #compare_by_identity: Sets `self` to consider only identity in comparing
385
+ # keys.
386
+ # * #default=: Sets the default to a given value.
387
+ # * #default_proc=: Sets the default proc to a given proc.
388
+ # * #rehash: Rebuilds the hash table by recomputing the hash index for each
389
+ # key.
397
390
  #
398
391
  #
399
392
  # #### Methods for Querying
400
393
  #
401
- # #any?
402
- # : Returns whether any element satisfies a given criterion.
403
- # #compare_by_identity?
404
- # : Returns whether the hash considers only identity when comparing keys.
405
- # #default
406
- # : Returns the default value, or the default value for a given key.
407
- # #default_proc
408
- # : Returns the default proc.
409
- # #empty?
410
- # : Returns whether there are no entries.
411
- # #eql?
412
- # : Returns whether a given object is equal to `self`.
413
- # #hash
414
- # : Returns the integer hash code.
415
- # #has_value?
416
- # : Returns whether a given object is a value in `self`.
417
- # #include?, #has_key?, #member?, #key?
418
- # : Returns whether a given object is a key in `self`.
419
- # #length, #size
420
- # : Returns the count of entries.
421
- # #value?
422
- # : Returns whether a given object is a value in `self`.
394
+ # * #any?: Returns whether any element satisfies a given criterion.
395
+ # * #compare_by_identity?: Returns whether the hash considers only identity
396
+ # when comparing keys.
397
+ # * #default: Returns the default value, or the default value for a given key.
398
+ # * #default_proc: Returns the default proc.
399
+ # * #empty?: Returns whether there are no entries.
400
+ # * #eql?: Returns whether a given object is equal to `self`.
401
+ # * #hash: Returns the integer hash code.
402
+ # * #has_value?: Returns whether a given object is a value in `self`.
403
+ # * #include?, #has_key?, #member?, #key?: Returns whether a given object is a
404
+ # key in `self`.
405
+ # * #length, #size: Returns the count of entries.
406
+ # * #value?: Returns whether a given object is a value in `self`.
423
407
  #
424
408
  #
425
409
  # #### Methods for Comparing
426
410
  #
427
- # [#<](#method-i-3C)
428
- # : Returns whether `self` is a proper subset of a given object.
429
- # [#<=](#method-i-3C-3D)
430
- # : Returns whether `self` is a subset of a given object.
431
- # [#==](#method-i-3D-3D)
432
- # : Returns whether a given object is equal to `self`.
433
- # [#>](#method-i-3E)
434
- # : Returns whether `self` is a proper superset of a given object
435
- # [#>=](#method-i-3E-3D)
436
- # : Returns whether `self` is a proper superset of a given object.
411
+ # * #<: Returns whether `self` is a proper subset of a given object.
412
+ # * #<=: Returns whether `self` is a subset of a given object.
413
+ # * #==: Returns whether a given object is equal to `self`.
414
+ # * #>: Returns whether `self` is a proper superset of a given object
415
+ # * #>=: Returns whether `self` is a proper superset of a given object.
437
416
  #
438
417
  #
439
418
  # #### Methods for Fetching
440
419
  #
441
- # #[]
442
- # : Returns the value associated with a given key.
443
- # #assoc
444
- # : Returns a 2-element array containing a given key and its value.
445
- # #dig
446
- # : Returns the object in nested objects that is specified by a given key and
447
- # additional arguments.
448
- # #fetch
449
- # : Returns the value for a given key.
450
- # #fetch_values
451
- # : Returns array containing the values associated with given keys.
452
- # #key
453
- # : Returns the key for the first-found entry with a given value.
454
- # #keys
455
- # : Returns an array containing all keys in `self`.
456
- # #rassoc
457
- # : Returns a 2-element array consisting of the key and value of the
420
+ # * #[]: Returns the value associated with a given key.
421
+ # * #assoc: Returns a 2-element array containing a given key and its value.
422
+ # * #dig: Returns the object in nested objects that is specified by a given
423
+ # key and additional arguments.
424
+ # * #fetch: Returns the value for a given key.
425
+ # * #fetch_values: Returns array containing the values associated with given
426
+ # keys.
427
+ # * #key: Returns the key for the first-found entry with a given value.
428
+ # * #keys: Returns an array containing all keys in `self`.
429
+ # * #rassoc: Returns a 2-element array consisting of the key and value of the
458
430
  # first-found entry having a given value.
459
- # #values
460
- # : Returns an array containing all values in `self`/
461
- # #values_at
462
- # : Returns an array containing values for given keys.
431
+ # * #values: Returns an array containing all values in `self`/
432
+ # * #values_at: Returns an array containing values for given keys.
463
433
  #
464
434
  #
465
435
  # #### Methods for Assigning
466
436
  #
467
- # #[]=, #store
468
- # : Associates a given key with a given value.
469
- # #merge
470
- # : Returns the hash formed by merging each given hash into a copy of `self`.
471
- # #merge!, #update
472
- # : Merges each given hash into `self`.
473
- # #replace
474
- # : Replaces the entire contents of `self` with the contents of a givan hash.
437
+ # * #[]=, #store: Associates a given key with a given value.
438
+ # * #merge: Returns the hash formed by merging each given hash into a copy of
439
+ # `self`.
440
+ # * #merge!, #update: Merges each given hash into `self`.
441
+ # * #replace: Replaces the entire contents of `self` with the contents of a
442
+ # given hash.
475
443
  #
476
444
  #
477
445
  # #### Methods for Deleting
478
446
  #
479
447
  # These methods remove entries from `self`:
480
448
  #
481
- # #clear
482
- # : Removes all entries from `self`.
483
- # #compact!
484
- # : Removes all `nil`-valued entries from `self`.
485
- # #delete
486
- # : Removes the entry for a given key.
487
- # #delete_if
488
- # : Removes entries selected by a given block.
489
- # #filter!, #select!
490
- # : Keep only those entries selected by a given block.
491
- # #keep_if
492
- # : Keep only those entries selected by a given block.
493
- # #reject!
494
- # : Removes entries selected by a given block.
495
- # #shift
496
- # : Removes and returns the first entry.
449
+ # * #clear: Removes all entries from `self`.
450
+ # * #compact!: Removes all `nil`-valued entries from `self`.
451
+ # * #delete: Removes the entry for a given key.
452
+ # * #delete_if: Removes entries selected by a given block.
453
+ # * #filter!, #select!: Keep only those entries selected by a given block.
454
+ # * #keep_if: Keep only those entries selected by a given block.
455
+ # * #reject!: Removes entries selected by a given block.
456
+ # * #shift: Removes and returns the first entry.
497
457
  #
498
458
  #
499
459
  # These methods return a copy of `self` with some entries removed:
500
460
  #
501
- # #compact
502
- # : Returns a copy of `self` with all `nil`-valued entries removed.
503
- # #except
504
- # : Returns a copy of `self` with entries removed for specified keys.
505
- # #filter, #select
506
- # : Returns a copy of `self` with only those entries selected by a given
507
- # block.
508
- # #reject
509
- # : Returns a copy of `self` with entries removed as specified by a given
510
- # block.
511
- # #slice
512
- # : Returns a hash containing the entries for given keys.
461
+ # * #compact: Returns a copy of `self` with all `nil`-valued entries removed.
462
+ # * #except: Returns a copy of `self` with entries removed for specified keys.
463
+ # * #filter, #select: Returns a copy of `self` with only those entries
464
+ # selected by a given block.
465
+ # * #reject: Returns a copy of `self` with entries removed as specified by a
466
+ # given block.
467
+ # * #slice: Returns a hash containing the entries for given keys.
513
468
  #
514
469
  #
515
470
  # #### Methods for Iterating
516
- # #each, #each_pair
517
- # : Calls a given block with each key-value pair.
518
- # #each_key
519
- # : Calls a given block with each key.
520
- # #each_value
521
- # : Calls a given block with each value.
471
+ # * #each, #each_pair: Calls a given block with each key-value pair.
472
+ # * #each_key: Calls a given block with each key.
473
+ # * #each_value: Calls a given block with each value.
522
474
  #
523
475
  #
524
476
  # #### Methods for Converting
525
477
  #
526
- # #inspect, #to_s
527
- # : Returns a new String containing the hash entries.
528
- # #to_a
529
- # : Returns a new array of 2-element arrays; each nested array contains a
530
- # key-value pair from `self`.
531
- # #to_h
532
- # : Returns `self` if a Hash; if a subclass of Hash, returns a Hash containing
533
- # the entries from `self`.
534
- # #to_hash
535
- # : Returns `self`.
536
- # #to_proc
537
- # : Returns a proc that maps a given key to its value.
478
+ # * #inspect, #to_s: Returns a new String containing the hash entries.
479
+ # * #to_a: Returns a new array of 2-element arrays; each nested array contains
480
+ # a key-value pair from `self`.
481
+ # * #to_h: Returns `self` if a Hash; if a subclass of Hash, returns a Hash
482
+ # containing the entries from `self`.
483
+ # * #to_hash: Returns `self`.
484
+ # * #to_proc: Returns a proc that maps a given key to its value.
538
485
  #
539
486
  #
540
487
  # #### Methods for Transforming Keys and Values
541
488
  #
542
- # #transform_keys
543
- # : Returns a copy of `self` with modified keys.
544
- # #transform_keys!
545
- # : Modifies keys in `self`
546
- # #transform_values
547
- # : Returns a copy of `self` with modified values.
548
- # #transform_values!
549
- # : Modifies values in `self`.
489
+ # * #transform_keys: Returns a copy of `self` with modified keys.
490
+ # * #transform_keys!: Modifies keys in `self`
491
+ # * #transform_values: Returns a copy of `self` with modified values.
492
+ # * #transform_values!: Modifies values in `self`.
550
493
  #
551
494
  #
552
495
  # #### Other Methods
553
- # #flatten
554
- # : Returns an array that is a 1-dimensional flattening of `self`.
555
- # #invert
556
- # : Returns a hash with the each key-value pair inverted.
496
+ # * #flatten: Returns an array that is a 1-dimensional flattening of `self`.
497
+ # * #invert: Returns a hash with the each key-value pair inverted.
557
498
  #
558
499
  class Hash[unchecked out K, unchecked out V] < Object
559
500
  include Enumerable[[ K, V ]]
@@ -694,7 +635,7 @@ class Hash[unchecked out K, unchecked out V] < Object
694
635
  # h[:foo] # => 0
695
636
  #
696
637
  # If `key` is not found, returns a default value (see [Default
697
- # Values](#class-Hash-label-Default+Values)):
638
+ # Values](rdoc-ref:Hash@Default+Values)):
698
639
  # h = {foo: 0, bar: 1, baz: 2}
699
640
  # h[:nosuch] # => nil
700
641
  #
@@ -710,14 +651,14 @@ class Hash[unchecked out K, unchecked out V] < Object
710
651
  # Associates the given `value` with the given `key`; returns `value`.
711
652
  #
712
653
  # If the given `key` exists, replaces its value with the given `value`; the
713
- # ordering is not affected (see [Entry Order](#class-Hash-label-Entry+Order)):
654
+ # ordering is not affected (see [Entry Order](rdoc-ref:Hash@Entry+Order)):
714
655
  # h = {foo: 0, bar: 1}
715
656
  # h[:foo] = 2 # => 2
716
657
  # h.store(:bar, 3) # => 3
717
658
  # h # => {:foo=>2, :bar=>3}
718
659
  #
719
660
  # If `key` does not exist, adds the `key` and `value`; the new entry is last in
720
- # the order (see [Entry Order](#class-Hash-label-Entry+Order)):
661
+ # the order (see [Entry Order](rdoc-ref:Hash@Entry+Order)):
721
662
  # h = {foo: 0, bar: 1}
722
663
  # h[:baz] = 2 # => 2
723
664
  # h.store(:bat, 3) # => 3
@@ -847,7 +788,7 @@ class Hash[unchecked out K, unchecked out V] < Object
847
788
  # -->
848
789
  # Returns the default value for the given `key`. The returned value will be
849
790
  # determined either by the default proc or by the default value. See [Default
850
- # Values](#class-Hash-label-Default+Values).
791
+ # Values](rdoc-ref:Hash@Default+Values).
851
792
  #
852
793
  # With no argument, returns the current default value:
853
794
  # h = {}
@@ -871,7 +812,7 @@ class Hash[unchecked out K, unchecked out V] < Object
871
812
  # h.default = false # => false
872
813
  # h.default # => false
873
814
  #
874
- # See [Default Values](#class-Hash-label-Default+Values).
815
+ # See [Default Values](rdoc-ref:Hash@Default+Values).
875
816
  #
876
817
  def default=: (V arg0) -> V
877
818
 
@@ -880,7 +821,7 @@ class Hash[unchecked out K, unchecked out V] < Object
880
821
  # - hash.default_proc -> proc or nil
881
822
  # -->
882
823
  # Returns the default proc for `self` (see [Default
883
- # Values](#class-Hash-label-Default+Values)):
824
+ # Values](rdoc-ref:Hash@Default+Values)):
884
825
  # h = {}
885
826
  # h.default_proc # => nil
886
827
  # h.default_proc = proc {|hash, key| "Default value for #{key}" }
@@ -893,7 +834,7 @@ class Hash[unchecked out K, unchecked out V] < Object
893
834
  # - hash.default_proc = proc -> proc
894
835
  # -->
895
836
  # Sets the default proc for `self` to `proc`: (see [Default
896
- # Values](#class-Hash-label-Default+Values)):
837
+ # Values](rdoc-ref:Hash@Default+Values)):
897
838
  # h = {}
898
839
  # h.default_proc # => nil
899
840
  # h.default_proc = proc { |hash, key| "Default value for #{key}" }
@@ -970,8 +911,8 @@ class Hash[unchecked out K, unchecked out V] < Object
970
911
  # h = {foo: {bar: [:a, :b, :c]}}
971
912
  # h.dig(:foo, :bar, 2) # => :c
972
913
  #
973
- # This method will use the [default values](#class-Hash-label-Default+Values)
974
- # for keys that are not present:
914
+ # This method will use the [default values](rdoc-ref:Hash@Default+Values) for
915
+ # keys that are not present:
975
916
  # h = {foo: {bar: [:a, :b, :c]}}
976
917
  # h.dig(:hello) # => nil
977
918
  # h.default_proc = -> (hash, _key) { hash }
@@ -1321,7 +1262,7 @@ class Hash[unchecked out K, unchecked out V] < Object
1321
1262
  # h1 # => {0=>:foo, 1=>:bar, 2=>:baz}
1322
1263
  #
1323
1264
  # Overwrites any repeated new keys: (see [Entry
1324
- # Order](#class-Hash-label-Entry+Order)):
1265
+ # Order](rdoc-ref:Hash@Entry+Order)):
1325
1266
  # h = {foo: 0, bar: 0, baz: 0}
1326
1267
  # h.invert # => {0=>:baz}
1327
1268
  #
@@ -1350,7 +1291,7 @@ class Hash[unchecked out K, unchecked out V] < Object
1350
1291
  # - hash.key(value) -> key or nil
1351
1292
  # -->
1352
1293
  # Returns the key for the first-found entry with the given `value` (see [Entry
1353
- # Order](#class-Hash-label-Entry+Order)):
1294
+ # Order](rdoc-ref:Hash@Entry+Order)):
1354
1295
  # h = {foo: 0, bar: 2, baz: 2}
1355
1296
  # h.key(0) # => :foo
1356
1297
  # h.key(2) # => :bar
@@ -1505,7 +1446,7 @@ class Hash[unchecked out K, unchecked out V] < Object
1505
1446
  # -->
1506
1447
  # Returns a new 2-element Array consisting of the key and value of the
1507
1448
  # first-found entry whose value is `==` to value (see [Entry
1508
- # Order](#class-Hash-label-Entry+Order)):
1449
+ # Order](rdoc-ref:Hash@Entry+Order)):
1509
1450
  # h = {foo: 0, bar: 1, baz: 1}
1510
1451
  # h.rassoc(1) # => [:bar, 1]
1511
1452
  #
@@ -1522,7 +1463,7 @@ class Hash[unchecked out K, unchecked out V] < Object
1522
1463
  #
1523
1464
  # The hash table becomes invalid if the hash value of a key has changed after
1524
1465
  # the entry was created. See [Modifying an Active Hash
1525
- # Key](#class-Hash-label-Modifying+an+Active+Hash+Key).
1466
+ # Key](rdoc-ref:Hash@Modifying+an+Active+Hash+Key).
1526
1467
  #
1527
1468
  def rehash: () -> self
1528
1469
 
@@ -1616,17 +1557,15 @@ class Hash[unchecked out K, unchecked out V] < Object
1616
1557
 
1617
1558
  # <!--
1618
1559
  # rdoc-file=hash.c
1619
- # - hash.shift -> [key, value] or default_value
1560
+ # - hash.shift -> [key, value] or nil
1620
1561
  # -->
1621
- # Removes the first hash entry (see [Entry
1622
- # Order](#class-Hash-label-Entry+Order)); returns a 2-element Array containing
1623
- # the removed key and value:
1562
+ # Removes the first hash entry (see [Entry Order](rdoc-ref:Hash@Entry+Order));
1563
+ # returns a 2-element Array containing the removed key and value:
1624
1564
  # h = {foo: 0, bar: 1, baz: 2}
1625
1565
  # h.shift # => [:foo, 0]
1626
1566
  # h # => {:bar=>1, :baz=>2}
1627
1567
  #
1628
- # Returns the default value if the hash is empty (see [Default
1629
- # Values](#class-Hash-label-Default+Values)).
1568
+ # Returns nil if the hash is empty.
1630
1569
  #
1631
1570
  def shift: () -> [ K, V ]?
1632
1571
 
@@ -1660,14 +1599,14 @@ class Hash[unchecked out K, unchecked out V] < Object
1660
1599
  # Associates the given `value` with the given `key`; returns `value`.
1661
1600
  #
1662
1601
  # If the given `key` exists, replaces its value with the given `value`; the
1663
- # ordering is not affected (see [Entry Order](#class-Hash-label-Entry+Order)):
1602
+ # ordering is not affected (see [Entry Order](rdoc-ref:Hash@Entry+Order)):
1664
1603
  # h = {foo: 0, bar: 1}
1665
1604
  # h[:foo] = 2 # => 2
1666
1605
  # h.store(:bar, 3) # => 3
1667
1606
  # h # => {:foo=>2, :bar=>3}
1668
1607
  #
1669
1608
  # If `key` does not exist, adds the `key` and `value`; the new entry is last in
1670
- # the order (see [Entry Order](#class-Hash-label-Entry+Order)):
1609
+ # the order (see [Entry Order](rdoc-ref:Hash@Entry+Order)):
1671
1610
  # h = {foo: 0, bar: 1}
1672
1611
  # h[:baz] = 2 # => 2
1673
1612
  # h.store(:bat, 3) # => 3
@@ -1913,8 +1852,8 @@ class Hash[unchecked out K, unchecked out V] < Object
1913
1852
  # h = {foo: 0, bar: 1, baz: 2}
1914
1853
  # h.values_at(:baz, :foo) # => [2, 0]
1915
1854
  #
1916
- # The [default values](#class-Hash-label-Default+Values) are returned for any
1917
- # keys that are not found:
1855
+ # The [default values](rdoc-ref:Hash@Default+Values) are returned for any keys
1856
+ # that are not found:
1918
1857
  # h.values_at(:hello, :foo) # => [nil, 0]
1919
1858
  #
1920
1859
  def values_at: (*K arg0) -> ::Array[V?]
@@ -1929,8 +1868,7 @@ class Hash[unchecked out K, unchecked out V] < Object
1929
1868
  # Returns a new empty Hash object.
1930
1869
  #
1931
1870
  # The initial default value and initial default proc for the new hash depend on
1932
- # which form above was used. See [Default
1933
- # Values](#class-Hash-label-Default+Values).
1871
+ # which form above was used. See [Default Values](rdoc-ref:Hash@Default+Values).
1934
1872
  #
1935
1873
  # If neither an argument nor a block given, initializes both the default value
1936
1874
  # and the default proc to `nil`: