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/stdlib/nkf/0/nkf.rbs CHANGED
@@ -66,7 +66,7 @@
66
66
  #
67
67
  # {de/en}crypt ROT13/47
68
68
  #
69
- # ### -[h](123) --hiragana --katakana --katakana-hiragana
69
+ # ### -h[123] --hiragana --katakana --katakana-hiragana
70
70
  #
71
71
  # -h1 --hiragana
72
72
  # : Katakana to Hiragana conversion.
@@ -95,7 +95,7 @@
95
95
  #
96
96
  # New line preserving line folding.
97
97
  #
98
- # ### -[Z](0-3)
98
+ # ### -Z[0-3]
99
99
  #
100
100
  # Convert X0208 alphabet (Fullwidth Alphabets) to ASCII.
101
101
  #
@@ -120,7 +120,7 @@
120
120
  # convert X0201 kana to X0208. In JIS output, ESC-(-I is used. In EUC output,
121
121
  # SSO is used.
122
122
  #
123
- # ### -[B](0-2)
123
+ # ### -B[0-2]
124
124
  #
125
125
  # Assume broken JIS-Kanji input, which lost ESC. Useful when your site is using
126
126
  # old B-News Nihongo patch.
@@ -141,7 +141,7 @@
141
141
  #
142
142
  # Delete r in line feed, Add r in line feed.
143
143
  #
144
- # ### -[m](BQN0)
144
+ # ### -m[BQN0]
145
145
  #
146
146
  # MIME ISO-2022-JP/ISO8859-1 decode. (DEFAULT) To see ISO8859-1 (Latin-1) -l is
147
147
  # necessary.
@@ -181,7 +181,7 @@
181
181
  # Input and output code is ISO8859-1 (Latin-1) and ISO-2022-JP. **-s**, **-e**
182
182
  # and **-x** are not compatible with this option.
183
183
  #
184
- # ### -[L](uwm)
184
+ # ### -L[uwm]
185
185
  #
186
186
  # new line mode Without this option, nkf doesn't convert line breaks.
187
187
  #
@@ -233,9 +233,9 @@ module ObjectSpace
233
233
 
234
234
  # <!--
235
235
  # rdoc-file=ext/objspace/lib/objspace.rb
236
- # - ObjectSpace.dump(obj[, output: :string]) # => "{ ... }"
237
- # - ObjectSpace.dump(obj, output: :file) # => #<File:/tmp/rubyobj20131125-88733-1xkfmpv.json>
238
- # - ObjectSpace.dump(obj, output: :stdout) # => nil
236
+ # - ObjectSpace.dump(obj[, output: :string]) -> "{ ... }"
237
+ # - ObjectSpace.dump(obj, output: :file) -> #<File:/tmp/rubyobj20131125-88733-1xkfmpv.json>
238
+ # - ObjectSpace.dump(obj, output: :stdout) -> nil
239
239
  # -->
240
240
  # Dump the contents of a ruby object as JSON.
241
241
  #
@@ -247,27 +247,44 @@ module ObjectSpace
247
247
 
248
248
  # <!--
249
249
  # rdoc-file=ext/objspace/lib/objspace.rb
250
- # - ObjectSpace.dump_all([output: :file]) # => #<File:/tmp/rubyheap20131125-88469-laoj3v.json>
251
- # - ObjectSpace.dump_all(output: :stdout) # => nil
252
- # - ObjectSpace.dump_all(output: :string) # => "{...}\n{...}\n..."
253
- # - ObjectSpace.dump_all(output:
254
- # - File.open('heap.json','w')) # => #<File:heap.json>
255
- # - ObjectSpace.dump_all(output: :string,
256
- # - since: 42) # => "{...}\n{...}\n..."
250
+ # - ObjectSpace.dump_all([output: :file]) -> #<File:/tmp/rubyheap20131125-88469-laoj3v.json>
251
+ # - ObjectSpace.dump_all(output: :stdout) -> nil
252
+ # - ObjectSpace.dump_all(output: :string) -> "{...}\n{...}\n..."
253
+ # - ObjectSpace.dump_all(output: File.open('heap.json','w')) -> #<File:heap.json>
254
+ # - ObjectSpace.dump_all(output: :string, since: 42) -> "{...}\n{...}\n..."
257
255
  # -->
258
256
  # Dump the contents of the ruby heap as JSON.
259
257
  #
258
+ # *full* must be a boolean. If true all heap slots are dumped including the
259
+ # empty ones (T_NONE).
260
+ #
260
261
  # *since* must be a non-negative integer or `nil`.
261
262
  #
262
263
  # If *since* is a positive integer, only objects of that generation and newer
263
264
  # generations are dumped. The current generation can be accessed using
264
- # GC::count.
265
- #
266
- # Objects that were allocated without object allocation tracing enabled are
267
- # ignored. See ::trace_object_allocations for more information and examples.
265
+ # GC::count. Objects that were allocated without object allocation tracing
266
+ # enabled are ignored. See ::trace_object_allocations for more information and
267
+ # examples.
268
268
  #
269
269
  # If *since* is omitted or is `nil`, all objects are dumped.
270
270
  #
271
+ # *shapes* must be a boolean or a non-negative integer.
272
+ #
273
+ # If *shapes* is a positive integer, only shapes newer than the provided shape
274
+ # id are dumped. The current shape_id can be accessed using
275
+ # `RubyVM.stat(:next_shape_id)`.
276
+ #
277
+ # If *shapes* is `false`, no shapes are dumped.
278
+ #
279
+ # To only dump objects allocated past a certain point you can combine *since*
280
+ # and *shapes*:
281
+ # ObjectSpace.trace_object_allocations
282
+ # GC.start
283
+ # gc_generation = GC.count
284
+ # shape_generation = RubyVM.stat(:next_shape_id)
285
+ # call_method_to_instrument
286
+ # ObjectSpace.dump_all(since: gc_generation, shapes: shape_generation)
287
+ #
271
288
  # This method is only expected to work with C Ruby. This is an experimental
272
289
  # method and is subject to change. In particular, the function signature and
273
290
  # output format are not guaranteed to be compatible in future versions of ruby.
@@ -689,7 +689,7 @@ module OpenSSL
689
689
  #
690
690
  # An Array that stores the name of a given tag number. These names are the same
691
691
  # as the name of the tag constant that is additionally defined, e.g.
692
- # +[UNIVERSAL_TAG_NAME](2) = "INTEGER"+ and +OpenSSL::ASN1::INTEGER = 2+.
692
+ # `UNIVERSAL_TAG_NAME[2] = "INTEGER"` and `OpenSSL::ASN1::INTEGER = 2`.
693
693
  #
694
694
  # ## Example usage
695
695
  #
@@ -6953,7 +6953,8 @@ module OpenSSL
6953
6953
  # - rsa.private_decrypt(string, padding) -> String
6954
6954
  # -->
6955
6955
  # Decrypt `string`, which has been encrypted with the public key, with the
6956
- # private key. `padding` defaults to PKCS1_PADDING.
6956
+ # private key. `padding` defaults to PKCS1_PADDING, which is known to be
6957
+ # insecure but is kept for backwards compatibility.
6957
6958
  #
6958
6959
  # **Deprecated in version 3.0**. Consider using PKey::PKey#encrypt and
6959
6960
  # PKey::PKey#decrypt instead.
@@ -6965,8 +6966,9 @@ module OpenSSL
6965
6966
  # - rsa.private_encrypt(string) -> String
6966
6967
  # - rsa.private_encrypt(string, padding) -> String
6967
6968
  # -->
6968
- # Encrypt `string` with the private key. `padding` defaults to PKCS1_PADDING.
6969
- # The encrypted string output can be decrypted using #public_decrypt.
6969
+ # Encrypt `string` with the private key. `padding` defaults to PKCS1_PADDING,
6970
+ # which is known to be insecure but is kept for backwards compatibility. The
6971
+ # encrypted string output can be decrypted using #public_decrypt.
6970
6972
  #
6971
6973
  # **Deprecated in version 3.0**. Consider using PKey::PKey#sign_raw and
6972
6974
  # PKey::PKey#verify_raw, and PKey::PKey#verify_recover instead.
@@ -6988,7 +6990,8 @@ module OpenSSL
6988
6990
  # - rsa.public_decrypt(string, padding) -> String
6989
6991
  # -->
6990
6992
  # Decrypt `string`, which has been encrypted with the private key, with the
6991
- # public key. `padding` defaults to PKCS1_PADDING.
6993
+ # public key. `padding` defaults to PKCS1_PADDING which is known to be insecure
6994
+ # but is kept for backwards compatibility.
6992
6995
  #
6993
6996
  # **Deprecated in version 3.0**. Consider using PKey::PKey#sign_raw and
6994
6997
  # PKey::PKey#verify_raw, and PKey::PKey#verify_recover instead.
@@ -7000,8 +7003,9 @@ module OpenSSL
7000
7003
  # - rsa.public_encrypt(string) -> String
7001
7004
  # - rsa.public_encrypt(string, padding) -> String
7002
7005
  # -->
7003
- # Encrypt `string` with the public key. `padding` defaults to PKCS1_PADDING.
7004
- # The encrypted string output can be decrypted using #private_decrypt.
7006
+ # Encrypt `string` with the public key. `padding` defaults to PKCS1_PADDING,
7007
+ # which is known to be insecure but is kept for backwards compatibility. The
7008
+ # encrypted string output can be decrypted using #private_decrypt.
7005
7009
  #
7006
7010
  # **Deprecated in version 3.0**. Consider using PKey::PKey#encrypt and
7007
7011
  # PKey::PKey#decrypt instead.
@@ -539,12 +539,12 @@ class OptionParser
539
539
  # - define(*params, &block)
540
540
  # -->
541
541
  # Creates an option from the given parameters `params`. See [Parameters for New
542
- # Options](./option_params.rdoc).
542
+ # Options](optparse/option_params.rdoc).
543
543
  #
544
544
  # The block, if given, is the handler for the created option. When the option is
545
545
  # encountered during command-line parsing, the block is called with the argument
546
546
  # given for the option, if any. See [Option
547
- # Handlers](./option_params.rdoc#label-Option+Handlers).
547
+ # Handlers](optparse/option_params.rdoc#label-Option+Handlers).
548
548
  #
549
549
  def define: (*String params) ?{ (*untyped) -> untyped } -> untyped
550
550
  | (String params, Class | Array[String] | Hash[Symbol, untyped] | Regexp obj, ?String desc) ?{ (*untyped) -> untyped } -> untyped
@@ -556,12 +556,12 @@ class OptionParser
556
556
  # - define_head(*params, &block)
557
557
  # -->
558
558
  # Creates an option from the given parameters `params`. See [Parameters for New
559
- # Options](./option_params.rdoc).
559
+ # Options](optparse/option_params.rdoc).
560
560
  #
561
561
  # The block, if given, is the handler for the created option. When the option is
562
562
  # encountered during command-line parsing, the block is called with the argument
563
563
  # given for the option, if any. See [Option
564
- # Handlers](./option_params.rdoc#label-Option+Handlers).
564
+ # Handlers](optparse/option_params.rdoc#label-Option+Handlers).
565
565
  #
566
566
  def define_head: (*String params) ?{ (*untyped) -> untyped } -> untyped
567
567
  | (String params, Class | Array[String] | Hash[Symbol, untyped] | Regexp obj, ?String desc) ?{ (*untyped) -> untyped } -> untyped
@@ -573,12 +573,12 @@ class OptionParser
573
573
  # - define_tail(*params, &block)
574
574
  # -->
575
575
  # Creates an option from the given parameters `params`. See [Parameters for New
576
- # Options](./option_params.rdoc).
576
+ # Options](optparse/option_params.rdoc).
577
577
  #
578
578
  # The block, if given, is the handler for the created option. When the option is
579
579
  # encountered during command-line parsing, the block is called with the argument
580
580
  # given for the option, if any. See [Option
581
- # Handlers](./option_params.rdoc#label-Option+Handlers).
581
+ # Handlers](optparse/option_params.rdoc#label-Option+Handlers).
582
582
  #
583
583
  def define_tail: (*String params) ?{ (*untyped) -> untyped } -> untyped
584
584
  | (String params, Class | Array[String] | Hash[Symbol, untyped] | Regexp obj, ?String desc) ?{ (*untyped) -> untyped } -> untyped
@@ -629,7 +629,7 @@ class OptionParser
629
629
 
630
630
  # <!--
631
631
  # rdoc-file=lib/optparse.rb
632
- # - load(filename = nil)
632
+ # - load(filename = nil, into: nil)
633
633
  # -->
634
634
  # Loads options from file names as `filename`. Does nothing when the file is not
635
635
  # present. Returns whether successfully loaded.
@@ -638,6 +638,9 @@ class OptionParser
638
638
  # ~/.options, then the basename with '.options' suffix under XDG and Haiku
639
639
  # standard places.
640
640
  #
641
+ # The optional `into` keyword argument works exactly like that accepted in
642
+ # method #parse.
643
+ #
641
644
  def load: (?String filename) -> bool
642
645
 
643
646
  # <!--
@@ -645,12 +648,12 @@ class OptionParser
645
648
  # - make_switch(params, block = nil)
646
649
  # -->
647
650
  # Creates an option from the given parameters `params`. See [Parameters for New
648
- # Options](./option_params.rdoc).
651
+ # Options](optparse/option_params.rdoc).
649
652
  #
650
653
  # The block, if given, is the handler for the created option. When the option is
651
654
  # encountered during command-line parsing, the block is called with the argument
652
655
  # given for the option, if any. See [Option
653
- # Handlers](./option_params.rdoc#label-Option+Handlers).
656
+ # Handlers](optparse/option_params.rdoc#label-Option+Handlers).
654
657
  #
655
658
  def make_switch: (Array[untyped] opts, ?Proc block) -> [ untyped, untyped, untyped, untyped, untyped ]
656
659
 
@@ -668,12 +671,12 @@ class OptionParser
668
671
  # - on(*params, &block)
669
672
  # -->
670
673
  # Creates an option from the given parameters `params`. See [Parameters for New
671
- # Options](./option_params.rdoc).
674
+ # Options](optparse/option_params.rdoc).
672
675
  #
673
676
  # The block, if given, is the handler for the created option. When the option is
674
677
  # encountered during command-line parsing, the block is called with the argument
675
678
  # given for the option, if any. See [Option
676
- # Handlers](./option_params.rdoc#label-Option+Handlers).
679
+ # Handlers](optparse/option_params.rdoc#label-Option+Handlers).
677
680
  #
678
681
  def on: (*String params) ?{ (*untyped) -> untyped } -> self
679
682
  | (String params, Class | Array[String] | Hash[Symbol, untyped] | Regexp obj, ?String desc) ?{ (*untyped) -> untyped } -> self
@@ -687,12 +690,12 @@ class OptionParser
687
690
  # - on_head(*params, &block)
688
691
  # -->
689
692
  # Creates an option from the given parameters `params`. See [Parameters for New
690
- # Options](./option_params.rdoc).
693
+ # Options](optparse/option_params.rdoc).
691
694
  #
692
695
  # The block, if given, is the handler for the created option. When the option is
693
696
  # encountered during command-line parsing, the block is called with the argument
694
697
  # given for the option, if any. See [Option
695
- # Handlers](./option_params.rdoc#label-Option+Handlers).
698
+ # Handlers](optparse/option_params.rdoc#label-Option+Handlers).
696
699
  #
697
700
  # The new option is added at the head of the summary.
698
701
  #
@@ -708,12 +711,12 @@ class OptionParser
708
711
  # - on_tail(*params, &block)
709
712
  # -->
710
713
  # Creates an option from the given parameters `params`. See [Parameters for New
711
- # Options](./option_params.rdoc).
714
+ # Options](optparse/option_params.rdoc).
712
715
  #
713
716
  # The block, if given, is the handler for the created option. When the option is
714
717
  # encountered during command-line parsing, the block is called with the argument
715
718
  # given for the option, if any. See [Option
716
- # Handlers](./option_params.rdoc#label-Option+Handlers).
719
+ # Handlers](optparse/option_params.rdoc#label-Option+Handlers).
717
720
  #
718
721
  # The new option is added at the tail of the summary.
719
722
  #
@@ -1660,7 +1663,7 @@ class OptionParser::Switch::OptionalArgument < OptionParser::Switch
1660
1663
  end
1661
1664
 
1662
1665
  # <!-- rdoc-file=lib/optparse.rb -->
1663
- # Switch that takes an argument, which does not begin with '-'.
1666
+ # Switch that takes an argument, which does not begin with '-' or is '-'.
1664
1667
  #
1665
1668
  class OptionParser::Switch::PlacedArgument < OptionParser::Switch
1666
1669
  public
@@ -1669,7 +1672,7 @@ class OptionParser::Switch::PlacedArgument < OptionParser::Switch
1669
1672
  # rdoc-file=lib/optparse.rb
1670
1673
  # - parse(arg, argv, &error)
1671
1674
  # -->
1672
- # Returns nil if argument is not present or begins with '-'.
1675
+ # Returns nil if argument is not present or begins with '-' and is not '-'.
1673
1676
  #
1674
1677
  def parse: (untyped arg, untyped argv) { (*untyped) -> untyped } -> untyped
1675
1678
  end
@@ -135,6 +135,7 @@
135
135
  # * #make_symlink(old)
136
136
  # * #truncate(length)
137
137
  # * #utime(atime, mtime)
138
+ # * #lutime(atime, mtime)
138
139
  # * #basename(*args)
139
140
  # * #dirname
140
141
  # * #extname
@@ -230,7 +231,9 @@ class Pathname
230
231
  # rdoc-file=ext/pathname/lib/pathname.rb
231
232
  # - +(other)
232
233
  # -->
233
- # Appends a pathname fragment to `self` to produce a new Pathname object.
234
+ # Appends a pathname fragment to `self` to produce a new Pathname object. Since
235
+ # `other` is considered as a path relative to `self`, if `other` is an absolute
236
+ # path, the new Pathname object is created from just `other`.
234
237
  #
235
238
  # p1 = Pathname.new("/usr") # Pathname:/usr
236
239
  # p2 = p1 + "bin/ruby" # Pathname:/usr/bin/ruby
@@ -808,7 +811,9 @@ class Pathname
808
811
  # rdoc-file=ext/pathname/lib/pathname.rb
809
812
  # - join(*args)
810
813
  # -->
811
- # Joins the given pathnames onto `self` to create a new Pathname object.
814
+ # Joins the given pathnames onto `self` to create a new Pathname object. This is
815
+ # effectively the same as using Pathname#+ to append `self` and all arguments
816
+ # sequentially.
812
817
  #
813
818
  # path0 = Pathname.new("/usr") # Pathname:/usr
814
819
  # path0 = path0.join("bin/ruby") # Pathname:/usr/bin/ruby
@@ -847,6 +852,18 @@ class Pathname
847
852
  #
848
853
  def lstat: () -> ::File::Stat
849
854
 
855
+ # <!--
856
+ # rdoc-file=ext/pathname/pathname.c
857
+ # - lutime(p1, p2)
858
+ # -->
859
+ # Update the access and modification times of the file.
860
+ #
861
+ # Same as Pathname#utime, but does not follow symbolic links.
862
+ #
863
+ # See File.lutime.
864
+ #
865
+ def lutime: (Time | Numeric atime, Time | Numeric mtime) -> Integer
866
+
850
867
  # <!--
851
868
  # rdoc-file=ext/pathname/pathname.c
852
869
  # - pathname.make_link(old)
@@ -1091,11 +1108,11 @@ class Pathname
1091
1108
 
1092
1109
  # <!--
1093
1110
  # rdoc-file=ext/pathname/lib/pathname.rb
1094
- # - rmtree()
1111
+ # - rmtree(noop: nil, verbose: nil, secure: nil)
1095
1112
  # -->
1096
1113
  # Recursively deletes a directory, including all directories beneath it.
1097
1114
  #
1098
- # See FileUtils.rm_r
1115
+ # See FileUtils.rm_rf
1099
1116
  #
1100
1117
  def rmtree: () -> void
1101
1118