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

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