rbs 3.6.1 → 3.9.5

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 (268) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/comments.yml +2 -2
  3. data/.github/workflows/dependabot.yml +1 -1
  4. data/.github/workflows/ruby.yml +34 -10
  5. data/.github/workflows/windows.yml +20 -3
  6. data/.gitignore +1 -0
  7. data/.rubocop.yml +26 -1
  8. data/CHANGELOG.md +241 -0
  9. data/Rakefile +54 -4
  10. data/config.yml +317 -0
  11. data/core/array.rbs +1756 -1591
  12. data/core/basic_object.rbs +38 -35
  13. data/core/comparable.rbs +1 -1
  14. data/core/complex.rbs +166 -94
  15. data/core/data.rbs +2 -2
  16. data/core/dir.rbs +2 -18
  17. data/core/encoding.rbs +12 -32
  18. data/core/enumerable.rbs +270 -266
  19. data/core/enumerator.rbs +14 -4
  20. data/core/env.rbs +1 -1
  21. data/core/errno.rbs +33 -16
  22. data/core/errors.rbs +6 -2
  23. data/core/exception.rbs +342 -167
  24. data/core/fiber.rbs +3 -2
  25. data/core/file.rbs +26 -75
  26. data/core/float.rbs +125 -72
  27. data/core/gc.rbs +158 -42
  28. data/core/hash.rbs +122 -143
  29. data/core/integer.rbs +79 -50
  30. data/core/io/buffer.rbs +49 -43
  31. data/core/io.rbs +108 -151
  32. data/core/kernel.rbs +341 -209
  33. data/core/match_data.rbs +76 -2
  34. data/core/math.rbs +0 -36
  35. data/core/method.rbs +2 -2
  36. data/core/module.rbs +32 -27
  37. data/core/nil_class.rbs +2 -2
  38. data/core/numeric.rbs +101 -104
  39. data/core/object.rbs +1 -5
  40. data/core/object_space/weak_key_map.rbs +3 -4
  41. data/core/object_space.rbs +3 -3
  42. data/core/proc.rbs +82 -14
  43. data/core/process.rbs +110 -58
  44. data/core/ractor.rbs +57 -4
  45. data/core/range.rbs +114 -87
  46. data/core/rational.rbs +0 -2
  47. data/core/rbs/unnamed/argf.rbs +237 -36
  48. data/core/rbs/unnamed/env_class.rbs +35 -53
  49. data/core/rbs/unnamed/random.rbs +1 -2
  50. data/core/regexp.rbs +10 -56
  51. data/core/ruby_vm.rbs +88 -9
  52. data/core/rubygems/config_file.rbs +3 -0
  53. data/core/rubygems/errors.rbs +3 -6
  54. data/core/rubygems/platform.rbs +0 -9
  55. data/core/rubygems/rubygems.rbs +3 -6
  56. data/core/rubygems/version.rbs +8 -8
  57. data/core/set.rbs +4 -16
  58. data/core/string.rbs +271 -264
  59. data/core/struct.rbs +6 -18
  60. data/core/symbol.rbs +14 -21
  61. data/core/thread.rbs +32 -35
  62. data/core/time.rbs +131 -50
  63. data/core/trace_point.rbs +124 -113
  64. data/core/true_class.rbs +0 -1
  65. data/core/unbound_method.rbs +1 -1
  66. data/core/warning.rbs +9 -2
  67. data/docs/architecture.md +1 -1
  68. data/docs/syntax.md +17 -10
  69. data/ext/rbs_extension/extconf.rb +11 -0
  70. data/ext/rbs_extension/location.c +61 -29
  71. data/ext/rbs_extension/location.h +4 -3
  72. data/ext/rbs_extension/main.c +23 -1
  73. data/ext/rbs_extension/parser.c +506 -517
  74. data/ext/rbs_extension/parserstate.c +109 -30
  75. data/ext/rbs_extension/parserstate.h +6 -4
  76. data/ext/rbs_extension/rbs_extension.h +1 -10
  77. data/{ext/rbs_extension → include/rbs}/constants.h +21 -19
  78. data/include/rbs/ruby_objs.h +72 -0
  79. data/include/rbs/util/rbs_constant_pool.h +219 -0
  80. data/include/rbs.h +7 -0
  81. data/lib/rbs/annotate/annotations.rb +3 -3
  82. data/lib/rbs/annotate/rdoc_source.rb +2 -2
  83. data/lib/rbs/ast/declarations.rb +9 -4
  84. data/lib/rbs/ast/directives.rb +10 -0
  85. data/lib/rbs/ast/members.rb +2 -0
  86. data/lib/rbs/ast/type_param.rb +2 -12
  87. data/lib/rbs/cli/diff.rb +3 -3
  88. data/lib/rbs/cli/validate.rb +2 -1
  89. data/lib/rbs/cli.rb +16 -16
  90. data/lib/rbs/collection/config/lockfile_generator.rb +58 -8
  91. data/lib/rbs/collection/config.rb +5 -3
  92. data/lib/rbs/collection/sources/rubygems.rb +1 -1
  93. data/lib/rbs/collection.rb +1 -0
  94. data/lib/rbs/definition.rb +51 -34
  95. data/lib/rbs/definition_builder/ancestor_builder.rb +5 -3
  96. data/lib/rbs/definition_builder.rb +83 -24
  97. data/lib/rbs/environment.rb +33 -18
  98. data/lib/rbs/environment_loader.rb +6 -1
  99. data/lib/rbs/errors.rb +24 -0
  100. data/lib/rbs/locator.rb +2 -0
  101. data/lib/rbs/method_type.rb +2 -0
  102. data/lib/rbs/namespace.rb +1 -0
  103. data/lib/rbs/parser_aux.rb +40 -3
  104. data/lib/rbs/prototype/rb.rb +20 -12
  105. data/lib/rbs/prototype/rbi.rb +11 -6
  106. data/lib/rbs/prototype/runtime/value_object_generator.rb +7 -5
  107. data/lib/rbs/prototype/runtime.rb +7 -5
  108. data/lib/rbs/subtractor.rb +3 -3
  109. data/lib/rbs/test/hook.rb +47 -42
  110. data/lib/rbs/test/type_check.rb +7 -5
  111. data/lib/rbs/type_name.rb +14 -9
  112. data/lib/rbs/types.rb +63 -14
  113. data/lib/rbs/unit_test/spy.rb +4 -2
  114. data/lib/rbs/unit_test/type_assertions.rb +19 -13
  115. data/lib/rbs/unit_test/with_aliases.rb +3 -1
  116. data/lib/rbs/validator.rb +7 -1
  117. data/lib/rbs/version.rb +1 -1
  118. data/lib/rbs/writer.rb +10 -5
  119. data/lib/rbs.rb +1 -0
  120. data/lib/rdoc_plugin/parser.rb +2 -2
  121. data/rbs.gemspec +6 -2
  122. data/sig/ancestor_graph.rbs +5 -5
  123. data/sig/annotate/rdoc_source.rbs +2 -0
  124. data/sig/cli.rbs +2 -0
  125. data/sig/collection/config/lockfile_generator.rbs +9 -1
  126. data/sig/declarations.rbs +10 -3
  127. data/sig/definition.rbs +80 -12
  128. data/sig/definition_builder.rbs +18 -4
  129. data/sig/directives.rbs +17 -1
  130. data/sig/environment.rbs +3 -1
  131. data/sig/errors.rbs +19 -0
  132. data/sig/namespace.rbs +2 -3
  133. data/sig/parser.rbs +5 -1
  134. data/sig/prototype/rb.rbs +1 -1
  135. data/sig/resolver/constant_resolver.rbs +2 -2
  136. data/sig/resolver/context.rbs +1 -1
  137. data/sig/subtractor.rbs +1 -1
  138. data/sig/test/type_check.rbs +2 -2
  139. data/sig/type_alias_dependency.rbs +2 -2
  140. data/sig/type_alias_regularity.rbs +6 -6
  141. data/sig/type_param.rbs +4 -4
  142. data/sig/typename.rbs +8 -5
  143. data/sig/types.rbs +1 -1
  144. data/sig/unit_test/spy.rbs +2 -0
  145. data/sig/unit_test/type_assertions.rbs +2 -0
  146. data/sig/use_map.rbs +1 -1
  147. data/sig/validator.rbs +6 -2
  148. data/sig/vendorer.rbs +1 -1
  149. data/sig/writer.rbs +1 -1
  150. data/{ext/rbs_extension → src}/constants.c +35 -36
  151. data/src/ruby_objs.c +799 -0
  152. data/src/util/rbs_constant_pool.c +342 -0
  153. data/stdlib/base64/0/base64.rbs +0 -9
  154. data/stdlib/benchmark/0/benchmark.rbs +11 -2
  155. data/stdlib/bigdecimal/0/big_decimal.rbs +26 -182
  156. data/stdlib/cgi/0/core.rbs +60 -3
  157. data/stdlib/cgi/0/manifest.yaml +1 -0
  158. data/stdlib/coverage/0/coverage.rbs +0 -3
  159. data/stdlib/csv/0/csv.rbs +18 -58
  160. data/stdlib/csv/0/manifest.yaml +1 -0
  161. data/stdlib/date/0/date.rbs +27 -42
  162. data/stdlib/did_you_mean/0/did_you_mean.rbs +1 -6
  163. data/stdlib/digest/0/digest.rbs +25 -2
  164. data/stdlib/erb/0/erb.rbs +0 -1
  165. data/stdlib/etc/0/etc.rbs +51 -34
  166. data/stdlib/fileutils/0/fileutils.rbs +3 -44
  167. data/stdlib/io-console/0/io-console.rbs +69 -15
  168. data/stdlib/ipaddr/0/ipaddr.rbs +16 -4
  169. data/stdlib/json/0/json.rbs +107 -120
  170. data/stdlib/logger/0/log_device.rbs +1 -1
  171. data/stdlib/logger/0/logger.rbs +3 -18
  172. data/stdlib/minitest/0/kernel.rbs +2 -2
  173. data/stdlib/minitest/0/minitest/abstract_reporter.rbs +4 -1
  174. data/stdlib/minitest/0/minitest/assertion.rbs +1 -0
  175. data/stdlib/minitest/0/minitest/assertions.rbs +58 -13
  176. data/stdlib/minitest/0/minitest/backtrace_filter.rbs +7 -0
  177. data/stdlib/minitest/0/minitest/bench_spec.rbs +8 -8
  178. data/stdlib/minitest/0/minitest/benchmark.rbs +17 -16
  179. data/stdlib/minitest/0/minitest/compress.rbs +13 -0
  180. data/stdlib/minitest/0/minitest/error_on_warning.rbs +3 -0
  181. data/stdlib/minitest/0/minitest/mock.rbs +9 -5
  182. data/stdlib/minitest/0/minitest/parallel/executor.rbs +4 -0
  183. data/stdlib/minitest/0/minitest/parallel/test/class_methods.rbs +0 -1
  184. data/stdlib/minitest/0/minitest/pride_io.rbs +8 -0
  185. data/stdlib/minitest/0/minitest/pride_lol.rbs +2 -0
  186. data/stdlib/minitest/0/minitest/progress_reporter.rbs +1 -1
  187. data/stdlib/minitest/0/minitest/reportable.rbs +2 -0
  188. data/stdlib/minitest/0/minitest/runnable.rbs +33 -1
  189. data/stdlib/minitest/0/minitest/spec/dsl/instance_methods.rbs +1 -1
  190. data/stdlib/minitest/0/minitest/spec/dsl.rbs +10 -6
  191. data/stdlib/minitest/0/minitest/spec.rbs +1 -1
  192. data/stdlib/minitest/0/minitest/statistics_reporter.rbs +5 -0
  193. data/stdlib/minitest/0/minitest/summary_reporter.rbs +0 -7
  194. data/stdlib/minitest/0/minitest/test/lifecycle_hooks.rbs +1 -1
  195. data/stdlib/minitest/0/minitest/test.rbs +7 -14
  196. data/stdlib/minitest/0/minitest/unexpected_error.rbs +2 -0
  197. data/stdlib/minitest/0/minitest/unexpected_warning.rbs +6 -0
  198. data/stdlib/minitest/0/minitest/unit.rbs +1 -2
  199. data/stdlib/minitest/0/minitest.rbs +41 -892
  200. data/stdlib/monitor/0/monitor.rbs +13 -4
  201. data/stdlib/net-http/0/net-http.rbs +42 -109
  202. data/stdlib/nkf/0/nkf.rbs +30 -0
  203. data/stdlib/objspace/0/objspace.rbs +1 -2
  204. data/stdlib/observable/0/observable.rbs +1 -1
  205. data/stdlib/open-uri/0/manifest.yaml +1 -0
  206. data/stdlib/open-uri/0/open-uri.rbs +52 -0
  207. data/stdlib/open3/0/open3.rbs +0 -8
  208. data/stdlib/openssl/0/manifest.yaml +1 -0
  209. data/stdlib/openssl/0/openssl.rbs +235 -143
  210. data/stdlib/optparse/0/optparse.rbs +58 -18
  211. data/stdlib/pathname/0/pathname.rbs +2 -8
  212. data/stdlib/pp/0/pp.rbs +3 -1
  213. data/stdlib/prettyprint/0/prettyprint.rbs +0 -4
  214. data/stdlib/pstore/0/pstore.rbs +0 -6
  215. data/stdlib/psych/0/core_ext.rbs +12 -0
  216. data/stdlib/psych/0/psych.rbs +15 -4
  217. data/stdlib/pty/0/pty.rbs +46 -4
  218. data/stdlib/rdoc/0/code_object.rbs +0 -4
  219. data/stdlib/rdoc/0/markup.rbs +10 -12
  220. data/stdlib/rdoc/0/rdoc.rbs +13 -8
  221. data/stdlib/resolv/0/resolv.rbs +21 -12
  222. data/stdlib/ripper/0/ripper.rbs +0 -2
  223. data/stdlib/securerandom/0/securerandom.rbs +7 -2
  224. data/stdlib/shellwords/0/shellwords.rbs +11 -12
  225. data/stdlib/singleton/0/singleton.rbs +0 -1
  226. data/stdlib/socket/0/addrinfo.rbs +1 -2
  227. data/stdlib/socket/0/basic_socket.rbs +0 -5
  228. data/stdlib/socket/0/socket.rbs +32 -27
  229. data/stdlib/socket/0/tcp_server.rbs +0 -3
  230. data/stdlib/socket/0/tcp_socket.rbs +36 -3
  231. data/stdlib/socket/0/udp_socket.rbs +0 -1
  232. data/stdlib/socket/0/unix_server.rbs +0 -3
  233. data/stdlib/socket/0/unix_socket.rbs +4 -2
  234. data/{core/string_io.rbs → stdlib/stringio/0/stringio.rbs} +1 -1
  235. data/stdlib/strscan/0/string_scanner.rbs +1265 -422
  236. data/stdlib/tempfile/0/tempfile.rbs +135 -28
  237. data/stdlib/time/0/time.rbs +48 -35
  238. data/stdlib/timeout/0/timeout.rbs +11 -8
  239. data/stdlib/tmpdir/0/tmpdir.rbs +10 -3
  240. data/stdlib/tsort/0/tsort.rbs +0 -4
  241. data/stdlib/uri/0/common.rbs +28 -30
  242. data/stdlib/uri/0/ftp.rbs +1 -1
  243. data/stdlib/uri/0/generic.rbs +22 -18
  244. data/stdlib/uri/0/http.rbs +2 -2
  245. data/stdlib/uri/0/rfc2396_parser.rbs +3 -0
  246. data/stdlib/zlib/0/buf_error.rbs +1 -70
  247. data/stdlib/zlib/0/data_error.rbs +1 -70
  248. data/stdlib/zlib/0/deflate.rbs +8 -72
  249. data/stdlib/zlib/0/error.rbs +1 -70
  250. data/stdlib/zlib/0/gzip_file/crc_error.rbs +2 -105
  251. data/stdlib/zlib/0/gzip_file/error.rbs +2 -105
  252. data/stdlib/zlib/0/gzip_file/length_error.rbs +2 -105
  253. data/stdlib/zlib/0/gzip_file/no_footer.rbs +2 -105
  254. data/stdlib/zlib/0/gzip_file.rbs +1 -71
  255. data/stdlib/zlib/0/gzip_reader.rbs +3 -74
  256. data/stdlib/zlib/0/gzip_writer.rbs +1 -70
  257. data/stdlib/zlib/0/inflate.rbs +4 -71
  258. data/stdlib/zlib/0/mem_error.rbs +1 -70
  259. data/stdlib/zlib/0/need_dict.rbs +1 -70
  260. data/stdlib/zlib/0/stream_end.rbs +1 -70
  261. data/stdlib/zlib/0/stream_error.rbs +1 -70
  262. data/stdlib/zlib/0/version_error.rbs +1 -70
  263. data/stdlib/zlib/0/zlib.rbs +0 -2
  264. data/stdlib/zlib/0/zstream.rbs +4 -72
  265. metadata +17 -13
  266. data/ext/rbs_extension/ruby_objs.c +0 -602
  267. data/ext/rbs_extension/ruby_objs.h +0 -51
  268. data/stdlib/minitest/0/manifest.yaml +0 -2
data/core/struct.rbs CHANGED
@@ -46,7 +46,6 @@
46
46
  # * Includes [module Enumerable](rdoc-ref:Enumerable@What-27s+Here), which
47
47
  # provides dozens of additional methods.
48
48
  #
49
- #
50
49
  # See also Data, which is a somewhat similar, but stricter concept for defining
51
50
  # immutable value objects.
52
51
  #
@@ -61,17 +60,14 @@
61
60
  # * [Iterating](rdoc-ref:Struct@Methods+for+Iterating)
62
61
  # * [Converting](rdoc-ref:Struct@Methods+for+Converting)
63
62
  #
64
- #
65
63
  # ### Methods for Creating a Struct Subclass
66
64
  #
67
65
  # * ::new: Returns a new subclass of Struct.
68
66
  #
69
- #
70
67
  # ### Methods for Querying
71
68
  #
72
69
  # * #hash: Returns the integer hash code.
73
- # * #length, #size: Returns the number of members.
74
- #
70
+ # * #size (aliased as #length): Returns the number of members.
75
71
  #
76
72
  # ### Methods for Comparing
77
73
  #
@@ -80,36 +76,32 @@
80
76
  # * #eql?: Returns whether a given object is equal to `self`, using `eql?` to
81
77
  # compare member values.
82
78
  #
83
- #
84
79
  # ### Methods for Fetching
85
80
  #
86
81
  # * #[]: Returns the value associated with a given member name.
87
- # * #to_a, #values, #deconstruct: Returns the member values in `self` as an
88
- # array.
82
+ # * #to_a (aliased as #values, #deconstruct): Returns the member values in
83
+ # `self` as an array.
89
84
  # * #deconstruct_keys: Returns a hash of the name/value pairs for given member
90
85
  # names.
91
86
  # * #dig: Returns the object in nested objects that is specified by a given
92
87
  # member name and additional arguments.
93
88
  # * #members: Returns an array of the member names.
94
- # * #select, #filter: Returns an array of member values from `self`, as
95
- # selected by the given block.
89
+ # * #select (aliased as #filter): Returns an array of member values from
90
+ # `self`, as selected by the given block.
96
91
  # * #values_at: Returns an array containing values for given member names.
97
92
  #
98
- #
99
93
  # ### Methods for Assigning
100
94
  #
101
95
  # * #[]=: Assigns a given value to a given member name.
102
96
  #
103
- #
104
97
  # ### Methods for Iterating
105
98
  #
106
99
  # * #each: Calls a given block with each member name.
107
100
  # * #each_pair: Calls a given block with each member name/value pair.
108
101
  #
109
- #
110
102
  # ### Methods for Converting
111
103
  #
112
- # * #inspect, #to_s: Returns a string representation of `self`.
104
+ # * #inspect (aliased as #to_s): Returns a string representation of `self`.
113
105
  # * #to_h: Returns a hash of the member name/value pairs in `self`.
114
106
  #
115
107
  class Struct[Elem]
@@ -133,7 +125,6 @@ class Struct[Elem]
133
125
  # * May have members as given by `member_names`.
134
126
  # * May have initialization via ordinary arguments, or via keyword arguments
135
127
  #
136
- #
137
128
  # The new subclass has its own method `::new`; thus:
138
129
  #
139
130
  # Foo = Struct.new('Foo', :foo, :bar) # => Struct::Foo
@@ -215,7 +206,6 @@ class Struct[Elem]
215
206
  #
216
207
  # Foo.members # => [:foo, :bar]
217
208
  #
218
- #
219
209
  # **Keyword Argument**
220
210
  #
221
211
  # By default, the arguments for initializing an instance of the new subclass can
@@ -285,7 +275,6 @@ class Struct[Elem]
285
275
  # * `other.class == self.class`.
286
276
  # * For each member name `name`, `other.name == self.name`.
287
277
  #
288
- #
289
278
  # Examples:
290
279
  #
291
280
  # Customer = Struct.new(:name, :address, :zip)
@@ -315,7 +304,6 @@ class Struct[Elem]
315
304
  # joe_jr[:name] = 'Joe Smith, Jr.'
316
305
  # joe_jr.eql?(joe) # => false
317
306
  #
318
- #
319
307
  # Related: Object#==.
320
308
  #
321
309
  def eql?: (untyped other) -> bool
data/core/symbol.rbs CHANGED
@@ -1,15 +1,14 @@
1
1
  # <!-- rdoc-file=string.c -->
2
- # Symbol objects represent named identifiers inside the Ruby interpreter.
2
+ # A `Symbol` object represents a named identifier inside the Ruby interpreter.
3
3
  #
4
- # You can create a Symbol object explicitly with:
4
+ # You can create a `Symbol` object explicitly with:
5
5
  #
6
6
  # * A [symbol literal](rdoc-ref:syntax/literals.rdoc@Symbol+Literals).
7
7
  #
8
- #
9
- # The same Symbol object will be created for a given name or string for the
8
+ # The same `Symbol` object will be created for a given name or string for the
10
9
  # duration of a program's execution, regardless of the context or meaning of
11
10
  # that name. Thus if `Fred` is a constant in one context, a method in another,
12
- # and a class in a third, the Symbol `:Fred` will be the same object in all
11
+ # and a class in a third, the `Symbol` `:Fred` will be the same object in all
13
12
  # three contexts.
14
13
  #
15
14
  # module One
@@ -52,24 +51,22 @@
52
51
  # local_variables
53
52
  # # => [:seven]
54
53
  #
55
- # Symbol objects are different from String objects in that Symbol objects
56
- # represent identifiers, while String objects represent text or data.
54
+ # A `Symbol` object differs from a String object in that a `Symbol` object
55
+ # represents an identifier, while a String object represents text or data.
57
56
  #
58
57
  # ## What's Here
59
58
  #
60
- # First, what's elsewhere. Class Symbol:
59
+ # First, what's elsewhere. Class `Symbol`:
61
60
  #
62
61
  # * Inherits from [class Object](rdoc-ref:Object@What-27s+Here).
63
62
  # * Includes [module Comparable](rdoc-ref:Comparable@What-27s+Here).
64
63
  #
65
- #
66
- # Here, class Symbol provides methods that are useful for:
64
+ # Here, class `Symbol` provides methods that are useful for:
67
65
  #
68
66
  # * [Querying](rdoc-ref:Symbol@Methods+for+Querying)
69
67
  # * [Comparing](rdoc-ref:Symbol@Methods+for+Comparing)
70
68
  # * [Converting](rdoc-ref:Symbol@Methods+for+Converting)
71
69
  #
72
- #
73
70
  # ### Methods for Querying
74
71
  #
75
72
  # * ::all_symbols: Returns an array of the symbols currently in Ruby's symbol
@@ -90,7 +87,6 @@
90
87
  # * #start_with?: Returns `true` if symbol starts with any of the given
91
88
  # strings.
92
89
  #
93
- #
94
90
  # ### Methods for Comparing
95
91
  #
96
92
  # * #<=>: Returns -1, 0, or 1 as a given symbol is smaller than, equal to, or
@@ -102,7 +98,6 @@
102
98
  # * #casecmp?: Returns `true` if symbol is equal to a given symbol after
103
99
  # Unicode case folding; `false` otherwise.
104
100
  #
105
- #
106
101
  # ### Methods for Converting
107
102
  #
108
103
  # * #capitalize: Returns symbol with the first character upcased and all other
@@ -310,12 +305,10 @@ class Symbol
310
305
  #
311
306
  def end_with?: (*string suffixes) -> bool
312
307
 
313
- # <!-- rdoc-file=string.c -->
314
- # Returns a string representation of `self` (not including the leading colon):
315
- #
316
- # :foo.to_s # => "foo"
317
- #
318
- # Related: Symbol#inspect, Symbol#name.
308
+ # <!--
309
+ # rdoc-file=symbol.rb
310
+ # - id2name()
311
+ # -->
319
312
  #
320
313
  alias id2name to_s
321
314
 
@@ -375,7 +368,7 @@ class Symbol
375
368
  def next: () -> Symbol
376
369
 
377
370
  # <!--
378
- # rdoc-file=string.c
371
+ # rdoc-file=symbol.rb
379
372
  # - name -> string
380
373
  # -->
381
374
  # Returns a frozen string representation of `self` (not including the leading
@@ -446,7 +439,7 @@ class Symbol
446
439
  def to_proc: () -> Proc
447
440
 
448
441
  # <!--
449
- # rdoc-file=string.c
442
+ # rdoc-file=symbol.rb
450
443
  # - to_s -> string
451
444
  # -->
452
445
  # Returns a string representation of `self` (not including the leading colon):
data/core/thread.rbs CHANGED
@@ -485,7 +485,6 @@ class Thread < Object
485
485
  # * On Windows it is the thread identifier returned by GetThreadId().
486
486
  # * On other platforms, it raises NotImplementedError.
487
487
  #
488
- #
489
488
  # NOTE: If the thread is not associated yet or already deassociated with a
490
489
  # native thread, it returns *nil*. If the Ruby implementation uses M:N thread
491
490
  # model, the ID may change depending on the timing.
@@ -614,12 +613,16 @@ class Thread < Object
614
613
  #
615
614
  # `"sleep"`
616
615
  # : Returned if this thread is sleeping or waiting on I/O
616
+ #
617
617
  # `"run"`
618
618
  # : When this thread is executing
619
+ #
619
620
  # `"aborting"`
620
621
  # : If this thread is aborting
622
+ #
621
623
  # `false`
622
624
  # : When this thread is terminated normally
625
+ #
623
626
  # `nil`
624
627
  # : If terminated with an exception.
625
628
  #
@@ -819,7 +822,7 @@ class Thread < Object
819
822
 
820
823
  # <!--
821
824
  # rdoc-file=vm_backtrace.c
822
- # - Thread.each_caller_location{ |loc| ... } -> nil
825
+ # - Thread.each_caller_location(...) { |loc| ... } -> nil
823
826
  # -->
824
827
  # Yields each frame of the current execution stack as a backtrace location
825
828
  # object.
@@ -873,8 +876,10 @@ class Thread < Object
873
876
  #
874
877
  # `:immediate`
875
878
  # : Invoke interrupts immediately.
879
+ #
876
880
  # `:on_blocking`
877
881
  # : Invoke interrupts while *BlockingOperation*.
882
+ #
878
883
  # `:never`
879
884
  # : Never invoke all interrupts.
880
885
  #
@@ -923,30 +928,6 @@ class Thread < Object
923
928
  # resource allocation code. Then, the ensure block is where we can safely
924
929
  # deallocate your resources.
925
930
  #
926
- # #### Guarding from Timeout::Error
927
- #
928
- # In the next example, we will guard from the Timeout::Error exception. This
929
- # will help prevent from leaking resources when Timeout::Error exceptions occur
930
- # during normal ensure clause. For this example we use the help of the standard
931
- # library Timeout, from lib/timeout.rb
932
- #
933
- # require 'timeout'
934
- # Thread.handle_interrupt(Timeout::Error => :never) {
935
- # timeout(10){
936
- # # Timeout::Error doesn't occur here
937
- # Thread.handle_interrupt(Timeout::Error => :on_blocking) {
938
- # # possible to be killed by Timeout::Error
939
- # # while blocking operation
940
- # }
941
- # # Timeout::Error doesn't occur here
942
- # }
943
- # }
944
- #
945
- # In the first part of the `timeout` block, we can rely on Timeout::Error being
946
- # ignored. Then in the `Timeout::Error => :on_blocking` block, any operation
947
- # that will block the calling thread is susceptible to a Timeout::Error
948
- # exception being raised.
949
- #
950
931
  # #### Stack control settings
951
932
  #
952
933
  # It's possible to stack multiple levels of ::handle_interrupt blocks in order
@@ -992,7 +973,7 @@ class Thread < Object
992
973
  # from prog.rb:2
993
974
  #
994
975
  def raise: (?String message) -> nil
995
- | (_Exception, ?_ToS message, ?Array[String] backtrace) -> nil
976
+ | (_Exception, ?_ToS message, ?Array[Thread::Backtrace::Location] | Array[String] | nil backtrace) -> nil
996
977
 
997
978
  # <!--
998
979
  # rdoc-file=thread.c
@@ -1130,7 +1111,6 @@ class Thread < Object
1130
1111
  # However, this might handle the exception much later, or not at all if the
1131
1112
  # Thread is never joined due to the parent thread being blocked, etc.
1132
1113
  #
1133
- #
1134
1114
  # See also ::report_on_exception=.
1135
1115
  #
1136
1116
  # There is also an instance level method to set this for a specific thread, see
@@ -1318,9 +1298,28 @@ class Thread::Backtrace::Location
1318
1298
  # rdoc-file=vm_backtrace.c
1319
1299
  # - base_label()
1320
1300
  # -->
1321
- # Returns the base label of this frame.
1301
+ # Returns the base label of this frame, which is usually equal to the label,
1302
+ # without decoration.
1322
1303
  #
1323
- # Usually same as #label, without decoration.
1304
+ # Consider the following example:
1305
+ #
1306
+ # def foo
1307
+ # puts caller_locations(0).first.base_label
1308
+ #
1309
+ # 1.times do
1310
+ # puts caller_locations(0).first.base_label
1311
+ #
1312
+ # 1.times do
1313
+ # puts caller_locations(0).first.base_label
1314
+ # end
1315
+ # end
1316
+ # end
1317
+ #
1318
+ # The result of calling `foo` is this:
1319
+ #
1320
+ # foo
1321
+ # foo
1322
+ # foo
1324
1323
  #
1325
1324
  def base_label: () -> String?
1326
1325
 
@@ -1343,15 +1342,14 @@ class Thread::Backtrace::Location
1343
1342
  # 1.times do
1344
1343
  # puts caller_locations(0).first.label
1345
1344
  # end
1346
- #
1347
1345
  # end
1348
1346
  # end
1349
1347
  #
1350
1348
  # The result of calling `foo` is this:
1351
1349
  #
1352
- # label: foo
1353
- # label: block in foo
1354
- # label: block (2 levels) in foo
1350
+ # foo
1351
+ # block in foo
1352
+ # block (2 levels) in foo
1355
1353
  #
1356
1354
  def label: () -> String?
1357
1355
 
@@ -1578,7 +1576,6 @@ class Thread::Queue[Elem = untyped] < Object
1578
1576
  # * when `empty?` is true, deq(false) will not suspend the thread and will
1579
1577
  # return nil. deq(true) will raise a `ThreadError`.
1580
1578
  #
1581
- #
1582
1579
  # ClosedQueueError is inherited from StopIteration, so that you can break loop
1583
1580
  # block.
1584
1581
  #