rbs-relaxed 3.9.0.1

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 (484) hide show
  1. checksums.yaml +7 -0
  2. data/.github/dependabot.yml +22 -0
  3. data/.github/workflows/comments.yml +35 -0
  4. data/.github/workflows/dependabot.yml +30 -0
  5. data/.github/workflows/ruby.yml +82 -0
  6. data/.github/workflows/typecheck.yml +38 -0
  7. data/.github/workflows/windows.yml +43 -0
  8. data/.gitignore +23 -0
  9. data/.rubocop.yml +68 -0
  10. data/BSDL +22 -0
  11. data/CHANGELOG.md +1868 -0
  12. data/COPYING +56 -0
  13. data/README.md +203 -0
  14. data/Rakefile +417 -0
  15. data/Steepfile +44 -0
  16. data/config.yml +313 -0
  17. data/core/array.rbs +4062 -0
  18. data/core/basic_object.rbs +375 -0
  19. data/core/binding.rbs +150 -0
  20. data/core/builtin.rbs +277 -0
  21. data/core/class.rbs +220 -0
  22. data/core/comparable.rbs +171 -0
  23. data/core/complex.rbs +786 -0
  24. data/core/constants.rbs +96 -0
  25. data/core/data.rbs +415 -0
  26. data/core/dir.rbs +981 -0
  27. data/core/encoding.rbs +1371 -0
  28. data/core/enumerable.rbs +2405 -0
  29. data/core/enumerator/product.rbs +92 -0
  30. data/core/enumerator.rbs +630 -0
  31. data/core/env.rbs +6 -0
  32. data/core/errno.rbs +673 -0
  33. data/core/errors.rbs +760 -0
  34. data/core/exception.rbs +485 -0
  35. data/core/false_class.rbs +82 -0
  36. data/core/fiber.rbs +550 -0
  37. data/core/fiber_error.rbs +11 -0
  38. data/core/file.rbs +2936 -0
  39. data/core/file_test.rbs +331 -0
  40. data/core/float.rbs +1151 -0
  41. data/core/gc.rbs +644 -0
  42. data/core/global_variables.rbs +184 -0
  43. data/core/hash.rbs +1861 -0
  44. data/core/integer.rbs +1413 -0
  45. data/core/io/buffer.rbs +984 -0
  46. data/core/io/wait.rbs +70 -0
  47. data/core/io.rbs +3406 -0
  48. data/core/kernel.rbs +3096 -0
  49. data/core/marshal.rbs +207 -0
  50. data/core/match_data.rbs +635 -0
  51. data/core/math.rbs +729 -0
  52. data/core/method.rbs +386 -0
  53. data/core/module.rbs +1704 -0
  54. data/core/nil_class.rbs +209 -0
  55. data/core/numeric.rbs +818 -0
  56. data/core/object.rbs +110 -0
  57. data/core/object_space/weak_key_map.rbs +166 -0
  58. data/core/object_space.rbs +190 -0
  59. data/core/proc.rbs +868 -0
  60. data/core/process.rbs +2296 -0
  61. data/core/ractor.rbs +1068 -0
  62. data/core/random.rbs +237 -0
  63. data/core/range.rbs +1107 -0
  64. data/core/rational.rbs +531 -0
  65. data/core/rb_config.rbs +88 -0
  66. data/core/rbs/unnamed/argf.rbs +1229 -0
  67. data/core/rbs/unnamed/env_class.rbs +1209 -0
  68. data/core/rbs/unnamed/random.rbs +293 -0
  69. data/core/refinement.rbs +59 -0
  70. data/core/regexp.rbs +1930 -0
  71. data/core/ruby_vm.rbs +765 -0
  72. data/core/rubygems/basic_specification.rbs +6 -0
  73. data/core/rubygems/config_file.rbs +38 -0
  74. data/core/rubygems/dependency_installer.rbs +6 -0
  75. data/core/rubygems/errors.rbs +176 -0
  76. data/core/rubygems/installer.rbs +15 -0
  77. data/core/rubygems/path_support.rbs +6 -0
  78. data/core/rubygems/platform.rbs +7 -0
  79. data/core/rubygems/request_set.rbs +49 -0
  80. data/core/rubygems/requirement.rbs +148 -0
  81. data/core/rubygems/rubygems.rbs +1171 -0
  82. data/core/rubygems/source_list.rbs +15 -0
  83. data/core/rubygems/specification.rbs +23 -0
  84. data/core/rubygems/stream_ui.rbs +5 -0
  85. data/core/rubygems/uninstaller.rbs +10 -0
  86. data/core/rubygems/version.rbs +294 -0
  87. data/core/set.rbs +621 -0
  88. data/core/signal.rbs +100 -0
  89. data/core/string.rbs +3583 -0
  90. data/core/struct.rbs +667 -0
  91. data/core/symbol.rbs +475 -0
  92. data/core/thread.rbs +1765 -0
  93. data/core/thread_group.rbs +79 -0
  94. data/core/time.rbs +1762 -0
  95. data/core/trace_point.rbs +477 -0
  96. data/core/true_class.rbs +98 -0
  97. data/core/unbound_method.rbs +329 -0
  98. data/core/warning.rbs +87 -0
  99. data/docs/CONTRIBUTING.md +106 -0
  100. data/docs/architecture.md +110 -0
  101. data/docs/collection.md +192 -0
  102. data/docs/data_and_struct.md +86 -0
  103. data/docs/gem.md +57 -0
  104. data/docs/rbs_by_example.md +309 -0
  105. data/docs/repo.md +125 -0
  106. data/docs/sigs.md +167 -0
  107. data/docs/stdlib.md +147 -0
  108. data/docs/syntax.md +910 -0
  109. data/docs/tools.md +17 -0
  110. data/exe/rbs +7 -0
  111. data/ext/rbs_extension/extconf.rb +15 -0
  112. data/ext/rbs_extension/lexer.c +2728 -0
  113. data/ext/rbs_extension/lexer.h +179 -0
  114. data/ext/rbs_extension/lexer.re +147 -0
  115. data/ext/rbs_extension/lexstate.c +175 -0
  116. data/ext/rbs_extension/location.c +325 -0
  117. data/ext/rbs_extension/location.h +85 -0
  118. data/ext/rbs_extension/main.c +33 -0
  119. data/ext/rbs_extension/parser.c +2973 -0
  120. data/ext/rbs_extension/parser.h +18 -0
  121. data/ext/rbs_extension/parserstate.c +397 -0
  122. data/ext/rbs_extension/parserstate.h +163 -0
  123. data/ext/rbs_extension/rbs_extension.h +31 -0
  124. data/ext/rbs_extension/unescape.c +32 -0
  125. data/goodcheck.yml +91 -0
  126. data/include/rbs/constants.h +82 -0
  127. data/include/rbs/ruby_objs.h +72 -0
  128. data/include/rbs/util/rbs_constant_pool.h +219 -0
  129. data/include/rbs.h +7 -0
  130. data/lib/rbs/ancestor_graph.rb +92 -0
  131. data/lib/rbs/annotate/annotations.rb +199 -0
  132. data/lib/rbs/annotate/formatter.rb +92 -0
  133. data/lib/rbs/annotate/rdoc_annotator.rb +400 -0
  134. data/lib/rbs/annotate/rdoc_source.rb +131 -0
  135. data/lib/rbs/annotate.rb +8 -0
  136. data/lib/rbs/ast/annotation.rb +29 -0
  137. data/lib/rbs/ast/comment.rb +29 -0
  138. data/lib/rbs/ast/declarations.rb +467 -0
  139. data/lib/rbs/ast/directives.rb +49 -0
  140. data/lib/rbs/ast/members.rb +451 -0
  141. data/lib/rbs/ast/type_param.rb +225 -0
  142. data/lib/rbs/ast/visitor.rb +137 -0
  143. data/lib/rbs/buffer.rb +67 -0
  144. data/lib/rbs/builtin_names.rb +58 -0
  145. data/lib/rbs/cli/colored_io.rb +48 -0
  146. data/lib/rbs/cli/diff.rb +83 -0
  147. data/lib/rbs/cli/validate.rb +357 -0
  148. data/lib/rbs/cli.rb +1223 -0
  149. data/lib/rbs/collection/cleaner.rb +38 -0
  150. data/lib/rbs/collection/config/lockfile.rb +92 -0
  151. data/lib/rbs/collection/config/lockfile_generator.rb +218 -0
  152. data/lib/rbs/collection/config.rb +81 -0
  153. data/lib/rbs/collection/installer.rb +32 -0
  154. data/lib/rbs/collection/sources/base.rb +14 -0
  155. data/lib/rbs/collection/sources/git.rb +258 -0
  156. data/lib/rbs/collection/sources/local.rb +81 -0
  157. data/lib/rbs/collection/sources/rubygems.rb +48 -0
  158. data/lib/rbs/collection/sources/stdlib.rb +50 -0
  159. data/lib/rbs/collection/sources.rb +38 -0
  160. data/lib/rbs/collection.rb +16 -0
  161. data/lib/rbs/constant.rb +28 -0
  162. data/lib/rbs/definition.rb +401 -0
  163. data/lib/rbs/definition_builder/ancestor_builder.rb +620 -0
  164. data/lib/rbs/definition_builder/method_builder.rb +254 -0
  165. data/lib/rbs/definition_builder.rb +845 -0
  166. data/lib/rbs/diff.rb +125 -0
  167. data/lib/rbs/environment/use_map.rb +77 -0
  168. data/lib/rbs/environment.rb +829 -0
  169. data/lib/rbs/environment_loader.rb +173 -0
  170. data/lib/rbs/environment_walker.rb +155 -0
  171. data/lib/rbs/errors.rb +645 -0
  172. data/lib/rbs/factory.rb +18 -0
  173. data/lib/rbs/file_finder.rb +28 -0
  174. data/lib/rbs/location_aux.rb +138 -0
  175. data/lib/rbs/locator.rb +243 -0
  176. data/lib/rbs/method_type.rb +143 -0
  177. data/lib/rbs/namespace.rb +125 -0
  178. data/lib/rbs/parser/lex_result.rb +15 -0
  179. data/lib/rbs/parser/token.rb +23 -0
  180. data/lib/rbs/parser_aux.rb +114 -0
  181. data/lib/rbs/prototype/helpers.rb +140 -0
  182. data/lib/rbs/prototype/node_usage.rb +99 -0
  183. data/lib/rbs/prototype/rb.rb +840 -0
  184. data/lib/rbs/prototype/rbi.rb +641 -0
  185. data/lib/rbs/prototype/runtime/helpers.rb +59 -0
  186. data/lib/rbs/prototype/runtime/reflection.rb +19 -0
  187. data/lib/rbs/prototype/runtime/value_object_generator.rb +279 -0
  188. data/lib/rbs/prototype/runtime.rb +667 -0
  189. data/lib/rbs/repository.rb +127 -0
  190. data/lib/rbs/resolver/constant_resolver.rb +219 -0
  191. data/lib/rbs/resolver/type_name_resolver.rb +91 -0
  192. data/lib/rbs/sorter.rb +198 -0
  193. data/lib/rbs/substitution.rb +83 -0
  194. data/lib/rbs/subtractor.rb +201 -0
  195. data/lib/rbs/test/errors.rb +80 -0
  196. data/lib/rbs/test/guaranteed.rb +30 -0
  197. data/lib/rbs/test/hook.rb +212 -0
  198. data/lib/rbs/test/observer.rb +19 -0
  199. data/lib/rbs/test/setup.rb +84 -0
  200. data/lib/rbs/test/setup_helper.rb +50 -0
  201. data/lib/rbs/test/tester.rb +167 -0
  202. data/lib/rbs/test/type_check.rb +435 -0
  203. data/lib/rbs/test.rb +112 -0
  204. data/lib/rbs/type_alias_dependency.rb +100 -0
  205. data/lib/rbs/type_alias_regularity.rb +126 -0
  206. data/lib/rbs/type_name.rb +109 -0
  207. data/lib/rbs/types.rb +1596 -0
  208. data/lib/rbs/unit_test/convertibles.rb +176 -0
  209. data/lib/rbs/unit_test/spy.rb +138 -0
  210. data/lib/rbs/unit_test/type_assertions.rb +347 -0
  211. data/lib/rbs/unit_test/with_aliases.rb +143 -0
  212. data/lib/rbs/unit_test.rb +6 -0
  213. data/lib/rbs/validator.rb +186 -0
  214. data/lib/rbs/variance_calculator.rb +189 -0
  215. data/lib/rbs/vendorer.rb +71 -0
  216. data/lib/rbs/version.rb +5 -0
  217. data/lib/rbs/writer.rb +424 -0
  218. data/lib/rbs.rb +94 -0
  219. data/lib/rdoc/discover.rb +20 -0
  220. data/lib/rdoc_plugin/parser.rb +163 -0
  221. data/rbs-relaxed.gemspec +48 -0
  222. data/schema/annotation.json +14 -0
  223. data/schema/comment.json +26 -0
  224. data/schema/decls.json +326 -0
  225. data/schema/function.json +87 -0
  226. data/schema/location.json +56 -0
  227. data/schema/members.json +266 -0
  228. data/schema/methodType.json +50 -0
  229. data/schema/typeParam.json +36 -0
  230. data/schema/types.json +317 -0
  231. data/sig/ancestor_builder.rbs +163 -0
  232. data/sig/ancestor_graph.rbs +60 -0
  233. data/sig/annotate/annotations.rbs +102 -0
  234. data/sig/annotate/formatter.rbs +24 -0
  235. data/sig/annotate/rdoc_annotater.rbs +82 -0
  236. data/sig/annotate/rdoc_source.rbs +30 -0
  237. data/sig/annotation.rbs +27 -0
  238. data/sig/buffer.rbs +32 -0
  239. data/sig/builtin_names.rbs +44 -0
  240. data/sig/cli/colored_io.rbs +15 -0
  241. data/sig/cli/diff.rbs +21 -0
  242. data/sig/cli/validate.rbs +43 -0
  243. data/sig/cli.rbs +87 -0
  244. data/sig/collection/cleaner.rbs +13 -0
  245. data/sig/collection/config/lockfile.rbs +74 -0
  246. data/sig/collection/config/lockfile_generator.rbs +66 -0
  247. data/sig/collection/config.rbs +46 -0
  248. data/sig/collection/installer.rbs +17 -0
  249. data/sig/collection/sources.rbs +214 -0
  250. data/sig/collection.rbs +4 -0
  251. data/sig/comment.rbs +26 -0
  252. data/sig/constant.rbs +21 -0
  253. data/sig/declarations.rbs +267 -0
  254. data/sig/definition.rbs +173 -0
  255. data/sig/definition_builder.rbs +165 -0
  256. data/sig/diff.rbs +28 -0
  257. data/sig/directives.rbs +77 -0
  258. data/sig/environment.rbs +279 -0
  259. data/sig/environment_loader.rbs +111 -0
  260. data/sig/environment_walker.rbs +65 -0
  261. data/sig/errors.rbs +405 -0
  262. data/sig/factory.rbs +5 -0
  263. data/sig/file_finder.rbs +28 -0
  264. data/sig/location.rbs +110 -0
  265. data/sig/locator.rbs +58 -0
  266. data/sig/manifest.yaml +7 -0
  267. data/sig/members.rbs +258 -0
  268. data/sig/method_builder.rbs +84 -0
  269. data/sig/method_types.rbs +58 -0
  270. data/sig/namespace.rbs +146 -0
  271. data/sig/parser.rbs +100 -0
  272. data/sig/prototype/helpers.rbs +27 -0
  273. data/sig/prototype/node_usage.rbs +20 -0
  274. data/sig/prototype/rb.rbs +96 -0
  275. data/sig/prototype/rbi.rbs +75 -0
  276. data/sig/prototype/runtime.rbs +182 -0
  277. data/sig/rbs.rbs +21 -0
  278. data/sig/rdoc/rbs.rbs +67 -0
  279. data/sig/repository.rbs +85 -0
  280. data/sig/resolver/constant_resolver.rbs +92 -0
  281. data/sig/resolver/context.rbs +34 -0
  282. data/sig/resolver/type_name_resolver.rbs +35 -0
  283. data/sig/shims/bundler.rbs +38 -0
  284. data/sig/shims/enumerable.rbs +5 -0
  285. data/sig/shims/rubygems.rbs +19 -0
  286. data/sig/sorter.rbs +41 -0
  287. data/sig/substitution.rbs +48 -0
  288. data/sig/subtractor.rbs +37 -0
  289. data/sig/test/errors.rbs +52 -0
  290. data/sig/test/guranteed.rbs +9 -0
  291. data/sig/test/type_check.rbs +19 -0
  292. data/sig/test.rbs +82 -0
  293. data/sig/type_alias_dependency.rbs +53 -0
  294. data/sig/type_alias_regularity.rbs +98 -0
  295. data/sig/type_param.rbs +110 -0
  296. data/sig/typename.rbs +79 -0
  297. data/sig/types.rbs +579 -0
  298. data/sig/unit_test/convertibles.rbs +154 -0
  299. data/sig/unit_test/spy.rbs +30 -0
  300. data/sig/unit_test/type_assertions.rbs +196 -0
  301. data/sig/unit_test/with_aliases.rbs +136 -0
  302. data/sig/use_map.rbs +35 -0
  303. data/sig/util.rbs +9 -0
  304. data/sig/validator.rbs +63 -0
  305. data/sig/variance_calculator.rbs +87 -0
  306. data/sig/vendorer.rbs +51 -0
  307. data/sig/version.rbs +3 -0
  308. data/sig/visitor.rbs +47 -0
  309. data/sig/writer.rbs +127 -0
  310. data/src/constants.c +153 -0
  311. data/src/ruby_objs.c +795 -0
  312. data/src/util/rbs_constant_pool.c +342 -0
  313. data/stdlib/abbrev/0/abbrev.rbs +66 -0
  314. data/stdlib/abbrev/0/array.rbs +26 -0
  315. data/stdlib/base64/0/base64.rbs +355 -0
  316. data/stdlib/benchmark/0/benchmark.rbs +452 -0
  317. data/stdlib/bigdecimal/0/big_decimal.rbs +1629 -0
  318. data/stdlib/bigdecimal-math/0/big_math.rbs +119 -0
  319. data/stdlib/bigdecimal-math/0/manifest.yaml +2 -0
  320. data/stdlib/cgi/0/core.rbs +1285 -0
  321. data/stdlib/cgi/0/manifest.yaml +3 -0
  322. data/stdlib/coverage/0/coverage.rbs +263 -0
  323. data/stdlib/csv/0/csv.rbs +3776 -0
  324. data/stdlib/csv/0/manifest.yaml +3 -0
  325. data/stdlib/date/0/date.rbs +1585 -0
  326. data/stdlib/date/0/date_time.rbs +616 -0
  327. data/stdlib/date/0/time.rbs +26 -0
  328. data/stdlib/dbm/0/dbm.rbs +421 -0
  329. data/stdlib/delegate/0/delegator.rbs +184 -0
  330. data/stdlib/delegate/0/kernel.rbs +47 -0
  331. data/stdlib/delegate/0/simple_delegator.rbs +96 -0
  332. data/stdlib/did_you_mean/0/did_you_mean.rbs +343 -0
  333. data/stdlib/digest/0/digest.rbs +577 -0
  334. data/stdlib/erb/0/erb.rbs +532 -0
  335. data/stdlib/etc/0/etc.rbs +865 -0
  336. data/stdlib/fileutils/0/fileutils.rbs +1734 -0
  337. data/stdlib/find/0/find.rbs +49 -0
  338. data/stdlib/forwardable/0/forwardable.rbs +268 -0
  339. data/stdlib/io-console/0/io-console.rbs +414 -0
  340. data/stdlib/ipaddr/0/ipaddr.rbs +428 -0
  341. data/stdlib/json/0/json.rbs +1916 -0
  342. data/stdlib/kconv/0/kconv.rbs +166 -0
  343. data/stdlib/logger/0/formatter.rbs +45 -0
  344. data/stdlib/logger/0/log_device.rbs +100 -0
  345. data/stdlib/logger/0/logger.rbs +796 -0
  346. data/stdlib/logger/0/manifest.yaml +2 -0
  347. data/stdlib/logger/0/period.rbs +17 -0
  348. data/stdlib/logger/0/severity.rbs +34 -0
  349. data/stdlib/minitest/0/kernel.rbs +42 -0
  350. data/stdlib/minitest/0/minitest/abstract_reporter.rbs +52 -0
  351. data/stdlib/minitest/0/minitest/assertion.rbs +17 -0
  352. data/stdlib/minitest/0/minitest/assertions.rbs +590 -0
  353. data/stdlib/minitest/0/minitest/backtrace_filter.rbs +23 -0
  354. data/stdlib/minitest/0/minitest/bench_spec.rbs +102 -0
  355. data/stdlib/minitest/0/minitest/benchmark.rbs +259 -0
  356. data/stdlib/minitest/0/minitest/composite_reporter.rbs +25 -0
  357. data/stdlib/minitest/0/minitest/compress.rbs +13 -0
  358. data/stdlib/minitest/0/minitest/error_on_warning.rbs +3 -0
  359. data/stdlib/minitest/0/minitest/expectation.rbs +2 -0
  360. data/stdlib/minitest/0/minitest/expectations.rbs +21 -0
  361. data/stdlib/minitest/0/minitest/guard.rbs +64 -0
  362. data/stdlib/minitest/0/minitest/mock.rbs +64 -0
  363. data/stdlib/minitest/0/minitest/parallel/executor.rbs +46 -0
  364. data/stdlib/minitest/0/minitest/parallel/test/class_methods.rbs +5 -0
  365. data/stdlib/minitest/0/minitest/parallel/test.rbs +3 -0
  366. data/stdlib/minitest/0/minitest/parallel.rbs +2 -0
  367. data/stdlib/minitest/0/minitest/pride_io.rbs +62 -0
  368. data/stdlib/minitest/0/minitest/pride_lol.rbs +19 -0
  369. data/stdlib/minitest/0/minitest/progress_reporter.rbs +11 -0
  370. data/stdlib/minitest/0/minitest/reportable.rbs +53 -0
  371. data/stdlib/minitest/0/minitest/reporter.rbs +5 -0
  372. data/stdlib/minitest/0/minitest/result.rbs +28 -0
  373. data/stdlib/minitest/0/minitest/runnable.rbs +163 -0
  374. data/stdlib/minitest/0/minitest/skip.rbs +6 -0
  375. data/stdlib/minitest/0/minitest/spec/dsl/instance_methods.rbs +48 -0
  376. data/stdlib/minitest/0/minitest/spec/dsl.rbs +129 -0
  377. data/stdlib/minitest/0/minitest/spec.rbs +11 -0
  378. data/stdlib/minitest/0/minitest/statistics_reporter.rbs +81 -0
  379. data/stdlib/minitest/0/minitest/summary_reporter.rbs +18 -0
  380. data/stdlib/minitest/0/minitest/test/lifecycle_hooks.rbs +92 -0
  381. data/stdlib/minitest/0/minitest/test.rbs +69 -0
  382. data/stdlib/minitest/0/minitest/unexpected_error.rbs +12 -0
  383. data/stdlib/minitest/0/minitest/unexpected_warning.rbs +6 -0
  384. data/stdlib/minitest/0/minitest/unit/test_case.rbs +3 -0
  385. data/stdlib/minitest/0/minitest/unit.rbs +4 -0
  386. data/stdlib/minitest/0/minitest.rbs +115 -0
  387. data/stdlib/monitor/0/monitor.rbs +363 -0
  388. data/stdlib/mutex_m/0/mutex_m.rbs +104 -0
  389. data/stdlib/net-http/0/manifest.yaml +3 -0
  390. data/stdlib/net-http/0/net-http.rbs +5552 -0
  391. data/stdlib/net-protocol/0/manifest.yaml +2 -0
  392. data/stdlib/net-protocol/0/net-protocol.rbs +56 -0
  393. data/stdlib/net-smtp/0/manifest.yaml +2 -0
  394. data/stdlib/net-smtp/0/net-smtp.rbs +55 -0
  395. data/stdlib/nkf/0/nkf.rbs +402 -0
  396. data/stdlib/objspace/0/objspace.rbs +487 -0
  397. data/stdlib/observable/0/observable.rbs +217 -0
  398. data/stdlib/open-uri/0/manifest.yaml +4 -0
  399. data/stdlib/open-uri/0/open-uri.rbs +393 -0
  400. data/stdlib/open3/0/open3.rbs +147 -0
  401. data/stdlib/openssl/0/manifest.yaml +3 -0
  402. data/stdlib/openssl/0/openssl.rbs +12113 -0
  403. data/stdlib/optparse/0/optparse.rbs +1725 -0
  404. data/stdlib/pathname/0/pathname.rbs +1406 -0
  405. data/stdlib/pp/0/manifest.yaml +2 -0
  406. data/stdlib/pp/0/pp.rbs +300 -0
  407. data/stdlib/prettyprint/0/prettyprint.rbs +383 -0
  408. data/stdlib/pstore/0/pstore.rbs +603 -0
  409. data/stdlib/psych/0/core_ext.rbs +12 -0
  410. data/stdlib/psych/0/dbm.rbs +237 -0
  411. data/stdlib/psych/0/manifest.yaml +3 -0
  412. data/stdlib/psych/0/psych.rbs +402 -0
  413. data/stdlib/psych/0/store.rbs +59 -0
  414. data/stdlib/pty/0/pty.rbs +237 -0
  415. data/stdlib/rdoc/0/code_object.rbs +51 -0
  416. data/stdlib/rdoc/0/comment.rbs +59 -0
  417. data/stdlib/rdoc/0/context.rbs +153 -0
  418. data/stdlib/rdoc/0/markup.rbs +117 -0
  419. data/stdlib/rdoc/0/parser.rbs +56 -0
  420. data/stdlib/rdoc/0/rdoc.rbs +391 -0
  421. data/stdlib/rdoc/0/ri.rbs +17 -0
  422. data/stdlib/rdoc/0/store.rbs +48 -0
  423. data/stdlib/rdoc/0/top_level.rbs +97 -0
  424. data/stdlib/resolv/0/manifest.yaml +3 -0
  425. data/stdlib/resolv/0/resolv.rbs +1830 -0
  426. data/stdlib/ripper/0/ripper.rbs +1648 -0
  427. data/stdlib/securerandom/0/securerandom.rbs +62 -0
  428. data/stdlib/shellwords/0/shellwords.rbs +229 -0
  429. data/stdlib/singleton/0/singleton.rbs +131 -0
  430. data/stdlib/socket/0/addrinfo.rbs +666 -0
  431. data/stdlib/socket/0/basic_socket.rbs +590 -0
  432. data/stdlib/socket/0/constants.rbs +2295 -0
  433. data/stdlib/socket/0/ip_socket.rbs +92 -0
  434. data/stdlib/socket/0/socket.rbs +4157 -0
  435. data/stdlib/socket/0/socket_error.rbs +5 -0
  436. data/stdlib/socket/0/tcp_server.rbs +192 -0
  437. data/stdlib/socket/0/tcp_socket.rbs +79 -0
  438. data/stdlib/socket/0/udp_socket.rbs +133 -0
  439. data/stdlib/socket/0/unix_server.rbs +169 -0
  440. data/stdlib/socket/0/unix_socket.rbs +172 -0
  441. data/stdlib/stringio/0/stringio.rbs +567 -0
  442. data/stdlib/strscan/0/string_scanner.rbs +1627 -0
  443. data/stdlib/tempfile/0/tempfile.rbs +479 -0
  444. data/stdlib/time/0/time.rbs +432 -0
  445. data/stdlib/timeout/0/timeout.rbs +81 -0
  446. data/stdlib/tmpdir/0/tmpdir.rbs +69 -0
  447. data/stdlib/tsort/0/cyclic.rbs +5 -0
  448. data/stdlib/tsort/0/interfaces.rbs +20 -0
  449. data/stdlib/tsort/0/tsort.rbs +409 -0
  450. data/stdlib/uri/0/common.rbs +582 -0
  451. data/stdlib/uri/0/file.rbs +118 -0
  452. data/stdlib/uri/0/ftp.rbs +13 -0
  453. data/stdlib/uri/0/generic.rbs +1108 -0
  454. data/stdlib/uri/0/http.rbs +104 -0
  455. data/stdlib/uri/0/https.rbs +14 -0
  456. data/stdlib/uri/0/ldap.rbs +230 -0
  457. data/stdlib/uri/0/ldaps.rbs +14 -0
  458. data/stdlib/uri/0/mailto.rbs +92 -0
  459. data/stdlib/uri/0/rfc2396_parser.rbs +189 -0
  460. data/stdlib/uri/0/rfc3986_parser.rbs +2 -0
  461. data/stdlib/uri/0/ws.rbs +13 -0
  462. data/stdlib/uri/0/wss.rbs +9 -0
  463. data/stdlib/yaml/0/manifest.yaml +2 -0
  464. data/stdlib/yaml/0/yaml.rbs +1 -0
  465. data/stdlib/zlib/0/buf_error.rbs +10 -0
  466. data/stdlib/zlib/0/data_error.rbs +10 -0
  467. data/stdlib/zlib/0/deflate.rbs +210 -0
  468. data/stdlib/zlib/0/error.rbs +20 -0
  469. data/stdlib/zlib/0/gzip_file/crc_error.rbs +12 -0
  470. data/stdlib/zlib/0/gzip_file/error.rbs +23 -0
  471. data/stdlib/zlib/0/gzip_file/length_error.rbs +12 -0
  472. data/stdlib/zlib/0/gzip_file/no_footer.rbs +11 -0
  473. data/stdlib/zlib/0/gzip_file.rbs +156 -0
  474. data/stdlib/zlib/0/gzip_reader.rbs +293 -0
  475. data/stdlib/zlib/0/gzip_writer.rbs +166 -0
  476. data/stdlib/zlib/0/inflate.rbs +180 -0
  477. data/stdlib/zlib/0/mem_error.rbs +10 -0
  478. data/stdlib/zlib/0/need_dict.rbs +13 -0
  479. data/stdlib/zlib/0/stream_end.rbs +11 -0
  480. data/stdlib/zlib/0/stream_error.rbs +11 -0
  481. data/stdlib/zlib/0/version_error.rbs +11 -0
  482. data/stdlib/zlib/0/zlib.rbs +449 -0
  483. data/stdlib/zlib/0/zstream.rbs +200 -0
  484. metadata +532 -0
data/core/object.rbs ADDED
@@ -0,0 +1,110 @@
1
+ # <!-- rdoc-file=object.c -->
2
+ # Object is the default root of all Ruby objects. Object inherits from
3
+ # BasicObject which allows creating alternate object hierarchies. Methods on
4
+ # Object are available to all classes unless explicitly overridden.
5
+ #
6
+ # Object mixes in the Kernel module, making the built-in kernel functions
7
+ # globally accessible. Although the instance methods of Object are defined by
8
+ # the Kernel module, we have chosen to document them here for clarity.
9
+ #
10
+ # When referencing constants in classes inheriting from Object you do not need
11
+ # to use the full namespace. For example, referencing `File` inside `YourClass`
12
+ # will find the top-level File class.
13
+ #
14
+ # In the descriptions of Object's methods, the parameter *symbol* refers to a
15
+ # symbol, which is either a quoted string or a Symbol (such as `:name`).
16
+ #
17
+ # ## What's Here
18
+ #
19
+ # First, what's elsewhere. Class Object:
20
+ #
21
+ # * Inherits from [class BasicObject](rdoc-ref:BasicObject@What-27s+Here).
22
+ # * Includes [module Kernel](rdoc-ref:Kernel@What-27s+Here).
23
+ #
24
+ # Here, class Object provides methods for:
25
+ #
26
+ # * [Querying](rdoc-ref:Object@Querying)
27
+ # * [Instance Variables](rdoc-ref:Object@Instance+Variables)
28
+ # * [Other](rdoc-ref:Object@Other)
29
+ #
30
+ # ### Querying
31
+ #
32
+ # * #!~: Returns `true` if `self` does not match the given object, otherwise
33
+ # `false`.
34
+ # * #<=>: Returns 0 if `self` and the given object `object` are the same
35
+ # object, or if `self == object`; otherwise returns `nil`.
36
+ # * #===: Implements case equality, effectively the same as calling #==.
37
+ # * #eql?: Implements hash equality, effectively the same as calling #==.
38
+ # * #kind_of? (aliased as #is_a?): Returns whether given argument is an
39
+ # ancestor of the singleton class of `self`.
40
+ # * #instance_of?: Returns whether `self` is an instance of the given class.
41
+ # * #instance_variable_defined?: Returns whether the given instance variable
42
+ # is defined in `self`.
43
+ # * #method: Returns the Method object for the given method in `self`.
44
+ # * #methods: Returns an array of symbol names of public and protected methods
45
+ # in `self`.
46
+ # * #nil?: Returns `false`. (Only `nil` responds `true` to method `nil?`.)
47
+ # * #object_id: Returns an integer corresponding to `self` that is unique for
48
+ # the current process
49
+ # * #private_methods: Returns an array of the symbol names of the private
50
+ # methods in `self`.
51
+ # * #protected_methods: Returns an array of the symbol names of the protected
52
+ # methods in `self`.
53
+ # * #public_method: Returns the Method object for the given public method in
54
+ # `self`.
55
+ # * #public_methods: Returns an array of the symbol names of the public
56
+ # methods in `self`.
57
+ # * #respond_to?: Returns whether `self` responds to the given method.
58
+ # * #singleton_class: Returns the singleton class of `self`.
59
+ # * #singleton_method: Returns the Method object for the given singleton
60
+ # method in `self`.
61
+ # * #singleton_methods: Returns an array of the symbol names of the singleton
62
+ # methods in `self`.
63
+ #
64
+ # * #define_singleton_method: Defines a singleton method in `self` for the
65
+ # given symbol method-name and block or proc.
66
+ # * #extend: Includes the given modules in the singleton class of `self`.
67
+ # * #public_send: Calls the given public method in `self` with the given
68
+ # argument.
69
+ # * #send: Calls the given method in `self` with the given argument.
70
+ #
71
+ # ### Instance Variables
72
+ #
73
+ # * #instance_variable_get: Returns the value of the given instance variable
74
+ # in `self`, or `nil` if the instance variable is not set.
75
+ # * #instance_variable_set: Sets the value of the given instance variable in
76
+ # `self` to the given object.
77
+ # * #instance_variables: Returns an array of the symbol names of the instance
78
+ # variables in `self`.
79
+ # * #remove_instance_variable: Removes the named instance variable from
80
+ # `self`.
81
+ #
82
+ # ### Other
83
+ #
84
+ # * #clone: Returns a shallow copy of `self`, including singleton class and
85
+ # frozen state.
86
+ # * #define_singleton_method: Defines a singleton method in `self` for the
87
+ # given symbol method-name and block or proc.
88
+ # * #display: Prints `self` to the given IO stream or `$stdout`.
89
+ # * #dup: Returns a shallow unfrozen copy of `self`.
90
+ # * #enum_for (aliased as #to_enum): Returns an Enumerator for `self` using
91
+ # the using the given method, arguments, and block.
92
+ # * #extend: Includes the given modules in the singleton class of `self`.
93
+ # * #freeze: Prevents further modifications to `self`.
94
+ # * #hash: Returns the integer hash value for `self`.
95
+ # * #inspect: Returns a human-readable string representation of `self`.
96
+ # * #itself: Returns `self`.
97
+ # * #method_missing: Method called when an undefined method is called on
98
+ # `self`.
99
+ # * #public_send: Calls the given public method in `self` with the given
100
+ # argument.
101
+ # * #send: Calls the given method in `self` with the given argument.
102
+ # * #to_s: Returns a string representation of `self`.
103
+ #
104
+ class Object < BasicObject
105
+ include Kernel
106
+ end
107
+
108
+ # A previous incarnation of `interned` for backward-compatibility (see #1499)
109
+ %a{steep:deprecated}
110
+ type Object::name = interned
@@ -0,0 +1,166 @@
1
+ %a{annotate:rdoc:skip}
2
+ module ObjectSpace
3
+ # <!-- rdoc-file=weakmap.c -->
4
+ # An ObjectSpace::WeakKeyMap is a key-value map that holds weak references to
5
+ # its keys, so they can be garbage collected when there is no more references.
6
+ #
7
+ # Unlike ObjectSpace::WeakMap:
8
+ #
9
+ # * references to values are *strong*, so they aren't garbage collected while
10
+ # they are in the map;
11
+ # * keys are compared by value (using Object#eql?), not by identity;
12
+ # * only garbage-collectable objects can be used as keys.
13
+ #
14
+ # map = ObjectSpace::WeakKeyMap.new
15
+ # val = Time.new(2023, 12, 7)
16
+ # key = "name"
17
+ # map[key] = val
18
+ #
19
+ # # Value is fetched by equality: the instance of string "name" is
20
+ # # different here, but it is equal to the key
21
+ # map["name"] #=> 2023-12-07 00:00:00 +0200
22
+ #
23
+ # val = nil
24
+ # GC.start
25
+ # # There are no more references to `val`, yet the pair isn't
26
+ # # garbage-collected.
27
+ # map["name"] #=> 2023-12-07 00:00:00 +0200
28
+ #
29
+ # key = nil
30
+ # GC.start
31
+ # # There are no more references to `key`, key and value are
32
+ # # garbage-collected.
33
+ # map["name"] #=> nil
34
+ #
35
+ # (Note that GC.start is used here only for demonstrational purposes and might
36
+ # not always lead to demonstrated results.)
37
+ #
38
+ # The collection is especially useful for implementing caches of lightweight
39
+ # value objects, so that only one copy of each value representation would be
40
+ # stored in memory, but the copies that aren't used would be garbage-collected.
41
+ #
42
+ # CACHE = ObjectSpace::WeakKeyMap
43
+ #
44
+ # def make_value(**)
45
+ # val = ValueObject.new(**)
46
+ # if (existing = @cache.getkey(val))
47
+ # # if the object with this value exists, we return it
48
+ # existing
49
+ # else
50
+ # # otherwise, put it in the cache
51
+ # @cache[val] = true
52
+ # val
53
+ # end
54
+ # end
55
+ #
56
+ # This will result in `make_value` returning the same object for same set of
57
+ # attributes always, but the values that aren't needed anymore wouldn't be
58
+ # sitting in the cache forever.
59
+ #
60
+ class WeakKeyMap[Key, Value]
61
+ # <!--
62
+ # rdoc-file=weakmap.c
63
+ # - map[key] -> value
64
+ # -->
65
+ # Returns the value associated with the given `key` if found.
66
+ #
67
+ # If `key` is not found, returns `nil`.
68
+ #
69
+ def []: (Key) -> Value?
70
+
71
+ # <!--
72
+ # rdoc-file=weakmap.c
73
+ # - map[key] = value -> value
74
+ # -->
75
+ # Associates the given `value` with the given `key`
76
+ #
77
+ # The reference to `key` is weak, so when there is no other reference to `key`
78
+ # it may be garbage collected.
79
+ #
80
+ # If the given `key` exists, replaces its value with the given `value`; the
81
+ # ordering is not affected
82
+ #
83
+ def []=: (Key, Value?) -> Value?
84
+
85
+ # <!--
86
+ # rdoc-file=weakmap.c
87
+ # - map.clear -> self
88
+ # -->
89
+ # Removes all map entries; returns `self`.
90
+ #
91
+ def clear: () -> self
92
+
93
+ # <!--
94
+ # rdoc-file=weakmap.c
95
+ # - map.delete(key) -> value or nil
96
+ # - map.delete(key) {|key| ... } -> object
97
+ # -->
98
+ # Deletes the entry for the given `key` and returns its associated value.
99
+ #
100
+ # If no block is given and `key` is found, deletes the entry and returns the
101
+ # associated value:
102
+ # m = ObjectSpace::WeakKeyMap.new
103
+ # key = "foo" # to hold reference to the key
104
+ # m[key] = 1
105
+ # m.delete("foo") # => 1
106
+ # m["foo"] # => nil
107
+ #
108
+ # If no block given and `key` is not found, returns `nil`.
109
+ #
110
+ # If a block is given and `key` is found, ignores the block, deletes the entry,
111
+ # and returns the associated value:
112
+ # m = ObjectSpace::WeakKeyMap.new
113
+ # key = "foo" # to hold reference to the key
114
+ # m[key] = 2
115
+ # m.delete("foo") { |key| raise 'Will never happen'} # => 2
116
+ #
117
+ # If a block is given and `key` is not found, yields the `key` to the block and
118
+ # returns the block's return value:
119
+ # m = ObjectSpace::WeakKeyMap.new
120
+ # m.delete("nosuch") { |key| "Key #{key} not found" } # => "Key nosuch not found"
121
+ #
122
+ def delete: (Key) -> Value?
123
+ | [T] (Key) { (Key) -> T } -> (Value | T)
124
+
125
+ # <!--
126
+ # rdoc-file=weakmap.c
127
+ # - map.getkey(key) -> existing_key or nil
128
+ # -->
129
+ # Returns the existing equal key if it exists, otherwise returns `nil`.
130
+ #
131
+ # This might be useful for implementing caches, so that only one copy of some
132
+ # object would be used everywhere in the program:
133
+ #
134
+ # value = {amount: 1, currency: 'USD'}
135
+ #
136
+ # # Now if we put this object in a cache:
137
+ # cache = ObjectSpace::WeakKeyMap.new
138
+ # cache[value] = true
139
+ #
140
+ # # ...we can always extract from there and use the same object:
141
+ # copy = cache.getkey({amount: 1, currency: 'USD'})
142
+ # copy.object_id == value.object_id #=> true
143
+ #
144
+ def getkey: (untyped) -> Key?
145
+
146
+ # <!--
147
+ # rdoc-file=weakmap.c
148
+ # - map.inspect -> new_string
149
+ # -->
150
+ # Returns a new String containing informations about the map:
151
+ #
152
+ # m = ObjectSpace::WeakKeyMap.new
153
+ # m[key] = value
154
+ # m.inspect # => "#<ObjectSpace::WeakKeyMap:0x00000001028dcba8 size=1>"
155
+ #
156
+ def inspect: () -> String
157
+
158
+ # <!--
159
+ # rdoc-file=weakmap.c
160
+ # - map.key?(key) -> true or false
161
+ # -->
162
+ # Returns `true` if `key` is a key in `self`, otherwise `false`.
163
+ #
164
+ def key?: (Key) -> bool
165
+ end
166
+ end
@@ -0,0 +1,190 @@
1
+ # <!-- rdoc-file=gc.c -->
2
+ # The ObjectSpace module contains a number of routines that interact with the
3
+ # garbage collection facility and allow you to traverse all living objects with
4
+ # an iterator.
5
+ #
6
+ # ObjectSpace also provides support for object finalizers, procs that will be
7
+ # called after a specific object was destroyed by garbage collection. See the
8
+ # documentation for `ObjectSpace.define_finalizer` for important information on
9
+ # how to use this method correctly.
10
+ #
11
+ # a = "A"
12
+ # b = "B"
13
+ #
14
+ # ObjectSpace.define_finalizer(a, proc {|id| puts "Finalizer one on #{id}" })
15
+ # ObjectSpace.define_finalizer(b, proc {|id| puts "Finalizer two on #{id}" })
16
+ #
17
+ # a = nil
18
+ # b = nil
19
+ #
20
+ # *produces:*
21
+ #
22
+ # Finalizer two on 537763470
23
+ # Finalizer one on 537763480
24
+ #
25
+ %a{annotate:rdoc:source:from=gc.c}
26
+ module ObjectSpace
27
+ # <!--
28
+ # rdoc-file=gc.c
29
+ # - _id2ref(p1)
30
+ # -->
31
+ #
32
+ def self._id2ref: (Integer id) -> untyped
33
+
34
+ # <!--
35
+ # rdoc-file=gc.c
36
+ # - ObjectSpace.count_objects([result_hash]) -> hash
37
+ # -->
38
+ # Counts all objects grouped by type.
39
+ #
40
+ # It returns a hash, such as:
41
+ # {
42
+ # :TOTAL=>10000,
43
+ # :FREE=>3011,
44
+ # :T_OBJECT=>6,
45
+ # :T_CLASS=>404,
46
+ # # ...
47
+ # }
48
+ #
49
+ # The contents of the returned hash are implementation specific. It may be
50
+ # changed in future.
51
+ #
52
+ # The keys starting with `:T_` means live objects. For example, `:T_ARRAY` is
53
+ # the number of arrays. `:FREE` means object slots which is not used now.
54
+ # `:TOTAL` means sum of above.
55
+ #
56
+ # If the optional argument `result_hash` is given, it is overwritten and
57
+ # returned. This is intended to avoid probe effect.
58
+ #
59
+ # h = {}
60
+ # ObjectSpace.count_objects(h)
61
+ # puts h
62
+ # # => { :TOTAL=>10000, :T_CLASS=>158280, :T_MODULE=>20672, :T_STRING=>527249 }
63
+ #
64
+ # This method is only expected to work on C Ruby.
65
+ #
66
+ def self.count_objects: (?Hash[Symbol, Integer] result_hash) -> Hash[Symbol, Integer]
67
+
68
+ # <!--
69
+ # rdoc-file=gc.c
70
+ # - ObjectSpace.define_finalizer(obj, aProc=proc())
71
+ # -->
72
+ # Adds *aProc* as a finalizer, to be called after *obj* was destroyed. The
73
+ # object ID of the *obj* will be passed as an argument to *aProc*. If *aProc* is
74
+ # a lambda or method, make sure it can be called with a single argument.
75
+ #
76
+ # The return value is an array `[0, aProc]`.
77
+ #
78
+ # The two recommended patterns are to either create the finaliser proc in a
79
+ # non-instance method where it can safely capture the needed state, or to use a
80
+ # custom callable object that stores the needed state explicitly as instance
81
+ # variables.
82
+ #
83
+ # class Foo
84
+ # def initialize(data_needed_for_finalization)
85
+ # ObjectSpace.define_finalizer(self, self.class.create_finalizer(data_needed_for_finalization))
86
+ # end
87
+ #
88
+ # def self.create_finalizer(data_needed_for_finalization)
89
+ # proc {
90
+ # puts "finalizing #{data_needed_for_finalization}"
91
+ # }
92
+ # end
93
+ # end
94
+ #
95
+ # class Bar
96
+ # class Remover
97
+ # def initialize(data_needed_for_finalization)
98
+ # @data_needed_for_finalization = data_needed_for_finalization
99
+ # end
100
+ #
101
+ # def call(id)
102
+ # puts "finalizing #{@data_needed_for_finalization}"
103
+ # end
104
+ # end
105
+ #
106
+ # def initialize(data_needed_for_finalization)
107
+ # ObjectSpace.define_finalizer(self, Remover.new(data_needed_for_finalization))
108
+ # end
109
+ # end
110
+ #
111
+ # Note that if your finalizer references the object to be finalized it will
112
+ # never be run on GC, although it will still be run at exit. You will get a
113
+ # warning if you capture the object to be finalized as the receiver of the
114
+ # finalizer.
115
+ #
116
+ # class CapturesSelf
117
+ # def initialize(name)
118
+ # ObjectSpace.define_finalizer(self, proc {
119
+ # # this finalizer will only be run on exit
120
+ # puts "finalizing #{name}"
121
+ # })
122
+ # end
123
+ # end
124
+ #
125
+ # Also note that finalization can be unpredictable and is never guaranteed to be
126
+ # run except on exit.
127
+ #
128
+ def self.define_finalizer: (untyped obj, ^(Integer id) -> void aProc) -> [ Integer, Proc ]
129
+ | (untyped obj) { (Integer id) -> void } -> [ Integer, Proc ]
130
+
131
+ # <!--
132
+ # rdoc-file=gc.c
133
+ # - ObjectSpace.each_object([module]) {|obj| ... } -> integer
134
+ # - ObjectSpace.each_object([module]) -> an_enumerator
135
+ # -->
136
+ # Calls the block once for each living, nonimmediate object in this Ruby
137
+ # process. If *module* is specified, calls the block for only those classes or
138
+ # modules that match (or are a subclass of) *module*. Returns the number of
139
+ # objects found. Immediate objects (`Fixnum`s, `Symbol`s `true`, `false`, and
140
+ # `nil`) are never returned. In the example below, #each_object returns both the
141
+ # numbers we defined and several constants defined in the Math module.
142
+ #
143
+ # If no block is given, an enumerator is returned instead.
144
+ #
145
+ # a = 102.7
146
+ # b = 95 # Won't be returned
147
+ # c = 12345678987654321
148
+ # count = ObjectSpace.each_object(Numeric) {|x| p x }
149
+ # puts "Total count: #{count}"
150
+ #
151
+ # *produces:*
152
+ #
153
+ # 12345678987654321
154
+ # 102.7
155
+ # 2.71828182845905
156
+ # 3.14159265358979
157
+ # 2.22044604925031e-16
158
+ # 1.7976931348623157e+308
159
+ # 2.2250738585072e-308
160
+ # Total count: 7
161
+ #
162
+ def self.each_object: (?Module `module`) -> Enumerator[untyped, Integer]
163
+ | (?Module `module`) { (untyped obj) -> void } -> Integer
164
+
165
+ # <!--
166
+ # rdoc-file=gc.rb
167
+ # - garbage_collect(full_mark: true, immediate_mark: true, immediate_sweep: true)
168
+ # -->
169
+ # Alias of GC.start
170
+ #
171
+ def self.garbage_collect: (?full_mark: bool, ?immediate_mark: bool, ?immediate_sweep: bool) -> void
172
+
173
+ # <!--
174
+ # rdoc-file=gc.c
175
+ # - ObjectSpace.undefine_finalizer(obj)
176
+ # -->
177
+ # Removes all finalizers for *obj*.
178
+ #
179
+ def self.undefine_finalizer: [X] (X obj) -> X
180
+
181
+ private
182
+
183
+ # <!--
184
+ # rdoc-file=gc.rb
185
+ # - garbage_collect(full_mark: true, immediate_mark: true, immediate_sweep: true)
186
+ # -->
187
+ # Alias of GC.start
188
+ #
189
+ def garbage_collect: (?full_mark: bool, ?immediate_mark: bool, ?immediate_sweep: bool) -> void
190
+ end