rbs 4.1.0.pre.2-java

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 (574) hide show
  1. checksums.yaml +7 -0
  2. data/.clang-format +75 -0
  3. data/.clangd +2 -0
  4. data/.github/dependabot.yml +24 -0
  5. data/.github/workflows/bundle-update.yml +63 -0
  6. data/.github/workflows/c-check.yml +61 -0
  7. data/.github/workflows/comments.yml +37 -0
  8. data/.github/workflows/dependabot.yml +30 -0
  9. data/.github/workflows/jruby.yml +67 -0
  10. data/.github/workflows/milestone.yml +83 -0
  11. data/.github/workflows/ruby.yml +158 -0
  12. data/.github/workflows/rust.yml +184 -0
  13. data/.github/workflows/truffleruby.yml +54 -0
  14. data/.github/workflows/typecheck.yml +39 -0
  15. data/.github/workflows/wasm.yml +53 -0
  16. data/.github/workflows/windows.yml +49 -0
  17. data/.gitignore +38 -0
  18. data/.rubocop.yml +72 -0
  19. data/BSDL +22 -0
  20. data/CHANGELOG.md +2292 -0
  21. data/COPYING +56 -0
  22. data/README.md +240 -0
  23. data/Rakefile +869 -0
  24. data/Steepfile +53 -0
  25. data/config.yml +913 -0
  26. data/core/array.rbs +4142 -0
  27. data/core/basic_object.rbs +376 -0
  28. data/core/binding.rbs +148 -0
  29. data/core/builtin.rbs +278 -0
  30. data/core/class.rbs +223 -0
  31. data/core/comparable.rbs +192 -0
  32. data/core/complex.rbs +812 -0
  33. data/core/constants.rbs +96 -0
  34. data/core/data.rbs +415 -0
  35. data/core/dir.rbs +993 -0
  36. data/core/encoding.rbs +1368 -0
  37. data/core/enumerable.rbs +2506 -0
  38. data/core/enumerator/arithmetic_sequence.rbs +70 -0
  39. data/core/enumerator/product.rbs +92 -0
  40. data/core/enumerator.rbs +705 -0
  41. data/core/env.rbs +6 -0
  42. data/core/errno.rbs +682 -0
  43. data/core/errors.rbs +789 -0
  44. data/core/exception.rbs +485 -0
  45. data/core/false_class.rbs +82 -0
  46. data/core/fiber.rbs +570 -0
  47. data/core/fiber_error.rbs +11 -0
  48. data/core/file.rbs +2045 -0
  49. data/core/file_constants.rbs +463 -0
  50. data/core/file_stat.rbs +534 -0
  51. data/core/file_test.rbs +331 -0
  52. data/core/float.rbs +1316 -0
  53. data/core/gc.rbs +788 -0
  54. data/core/global_variables.rbs +184 -0
  55. data/core/hash.rbs +2183 -0
  56. data/core/integer.rbs +1374 -0
  57. data/core/io/buffer.rbs +995 -0
  58. data/core/io/wait.rbs +48 -0
  59. data/core/io.rbs +3472 -0
  60. data/core/kernel.rbs +3172 -0
  61. data/core/marshal.rbs +207 -0
  62. data/core/match_data.rbs +637 -0
  63. data/core/math.rbs +770 -0
  64. data/core/method.rbs +422 -0
  65. data/core/module.rbs +1856 -0
  66. data/core/nil_class.rbs +210 -0
  67. data/core/numeric.rbs +832 -0
  68. data/core/object.rbs +108 -0
  69. data/core/object_space/weak_key_map.rbs +166 -0
  70. data/core/object_space.rbs +197 -0
  71. data/core/pathname.rbs +1322 -0
  72. data/core/proc.rbs +905 -0
  73. data/core/process.rbs +2316 -0
  74. data/core/ractor.rbs +924 -0
  75. data/core/random.rbs +255 -0
  76. data/core/range.rbs +1209 -0
  77. data/core/rational.rbs +502 -0
  78. data/core/rb_config.rbs +88 -0
  79. data/core/rbs/ops.rbs +154 -0
  80. data/core/rbs/unnamed/argf.rbs +1236 -0
  81. data/core/rbs/unnamed/env_class.rbs +1214 -0
  82. data/core/rbs/unnamed/main_class.rbs +123 -0
  83. data/core/rbs/unnamed/random.rbs +186 -0
  84. data/core/refinement.rbs +59 -0
  85. data/core/regexp.rbs +1974 -0
  86. data/core/ruby.rbs +53 -0
  87. data/core/ruby_vm.rbs +809 -0
  88. data/core/rubygems/basic_specification.rbs +6 -0
  89. data/core/rubygems/config_file.rbs +38 -0
  90. data/core/rubygems/dependency_installer.rbs +6 -0
  91. data/core/rubygems/errors.rbs +109 -0
  92. data/core/rubygems/installer.rbs +15 -0
  93. data/core/rubygems/path_support.rbs +6 -0
  94. data/core/rubygems/platform.rbs +7 -0
  95. data/core/rubygems/request_set.rbs +49 -0
  96. data/core/rubygems/requirement.rbs +148 -0
  97. data/core/rubygems/rubygems.rbs +1105 -0
  98. data/core/rubygems/source_list.rbs +15 -0
  99. data/core/rubygems/specification.rbs +23 -0
  100. data/core/rubygems/stream_ui.rbs +5 -0
  101. data/core/rubygems/uninstaller.rbs +10 -0
  102. data/core/rubygems/version.rbs +293 -0
  103. data/core/set.rbs +751 -0
  104. data/core/signal.rbs +110 -0
  105. data/core/string.rbs +5532 -0
  106. data/core/struct.rbs +668 -0
  107. data/core/symbol.rbs +482 -0
  108. data/core/thread.rbs +1826 -0
  109. data/core/thread_group.rbs +79 -0
  110. data/core/time.rbs +1793 -0
  111. data/core/trace_point.rbs +483 -0
  112. data/core/true_class.rbs +98 -0
  113. data/core/unbound_method.rbs +337 -0
  114. data/core/warning.rbs +87 -0
  115. data/docs/CONTRIBUTING.md +107 -0
  116. data/docs/aliases.md +79 -0
  117. data/docs/architecture.md +110 -0
  118. data/docs/collection.md +192 -0
  119. data/docs/config.md +171 -0
  120. data/docs/data_and_struct.md +86 -0
  121. data/docs/encoding.md +56 -0
  122. data/docs/gem.md +56 -0
  123. data/docs/inline.md +634 -0
  124. data/docs/rbs_by_example.md +309 -0
  125. data/docs/repo.md +125 -0
  126. data/docs/rust.md +96 -0
  127. data/docs/sigs.md +167 -0
  128. data/docs/stdlib.md +147 -0
  129. data/docs/syntax.md +940 -0
  130. data/docs/tools.md +17 -0
  131. data/docs/type_fingerprint.md +21 -0
  132. data/docs/wasm_serialization.md +80 -0
  133. data/exe/rbs +7 -0
  134. data/ext/rbs_extension/ast_translation.c +1855 -0
  135. data/ext/rbs_extension/ast_translation.h +41 -0
  136. data/ext/rbs_extension/class_constants.c +187 -0
  137. data/ext/rbs_extension/class_constants.h +104 -0
  138. data/ext/rbs_extension/compat.h +10 -0
  139. data/ext/rbs_extension/extconf.rb +40 -0
  140. data/ext/rbs_extension/legacy_location.c +294 -0
  141. data/ext/rbs_extension/legacy_location.h +82 -0
  142. data/ext/rbs_extension/main.c +613 -0
  143. data/ext/rbs_extension/rbs_extension.h +16 -0
  144. data/ext/rbs_extension/rbs_string_bridging.c +9 -0
  145. data/ext/rbs_extension/rbs_string_bridging.h +24 -0
  146. data/goodcheck.yml +91 -0
  147. data/include/rbs/ast.h +1047 -0
  148. data/include/rbs/defines.h +99 -0
  149. data/include/rbs/lexer.h +207 -0
  150. data/include/rbs/location.h +40 -0
  151. data/include/rbs/parser.h +153 -0
  152. data/include/rbs/serialize.h +39 -0
  153. data/include/rbs/string.h +47 -0
  154. data/include/rbs/util/rbs_allocator.h +59 -0
  155. data/include/rbs/util/rbs_assert.h +20 -0
  156. data/include/rbs/util/rbs_buffer.h +83 -0
  157. data/include/rbs/util/rbs_constant_pool.h +155 -0
  158. data/include/rbs/util/rbs_encoding.h +282 -0
  159. data/include/rbs/util/rbs_unescape.h +24 -0
  160. data/include/rbs.h +14 -0
  161. data/lib/rbs/ancestor_graph.rb +92 -0
  162. data/lib/rbs/annotate/annotations.rb +199 -0
  163. data/lib/rbs/annotate/formatter.rb +82 -0
  164. data/lib/rbs/annotate/rdoc_annotator.rb +398 -0
  165. data/lib/rbs/annotate/rdoc_source.rb +131 -0
  166. data/lib/rbs/annotate.rb +8 -0
  167. data/lib/rbs/ast/annotation.rb +29 -0
  168. data/lib/rbs/ast/comment.rb +29 -0
  169. data/lib/rbs/ast/declarations.rb +472 -0
  170. data/lib/rbs/ast/directives.rb +49 -0
  171. data/lib/rbs/ast/members.rb +451 -0
  172. data/lib/rbs/ast/ruby/annotations.rb +451 -0
  173. data/lib/rbs/ast/ruby/comment_block.rb +247 -0
  174. data/lib/rbs/ast/ruby/declarations.rb +291 -0
  175. data/lib/rbs/ast/ruby/helpers/constant_helper.rb +28 -0
  176. data/lib/rbs/ast/ruby/helpers/location_helper.rb +15 -0
  177. data/lib/rbs/ast/ruby/members.rb +762 -0
  178. data/lib/rbs/ast/type_param.rb +235 -0
  179. data/lib/rbs/ast/visitor.rb +137 -0
  180. data/lib/rbs/buffer.rb +189 -0
  181. data/lib/rbs/builtin_names.rb +58 -0
  182. data/lib/rbs/cli/colored_io.rb +48 -0
  183. data/lib/rbs/cli/diff.rb +84 -0
  184. data/lib/rbs/cli/validate.rb +294 -0
  185. data/lib/rbs/cli.rb +1253 -0
  186. data/lib/rbs/collection/cleaner.rb +38 -0
  187. data/lib/rbs/collection/config/lockfile.rb +92 -0
  188. data/lib/rbs/collection/config/lockfile_generator.rb +269 -0
  189. data/lib/rbs/collection/config.rb +81 -0
  190. data/lib/rbs/collection/installer.rb +32 -0
  191. data/lib/rbs/collection/sources/base.rb +14 -0
  192. data/lib/rbs/collection/sources/git.rb +265 -0
  193. data/lib/rbs/collection/sources/local.rb +81 -0
  194. data/lib/rbs/collection/sources/rubygems.rb +48 -0
  195. data/lib/rbs/collection/sources/stdlib.rb +50 -0
  196. data/lib/rbs/collection/sources.rb +38 -0
  197. data/lib/rbs/collection.rb +16 -0
  198. data/lib/rbs/constant.rb +28 -0
  199. data/lib/rbs/definition.rb +415 -0
  200. data/lib/rbs/definition_builder/ancestor_builder.rb +678 -0
  201. data/lib/rbs/definition_builder/method_builder.rb +295 -0
  202. data/lib/rbs/definition_builder.rb +1054 -0
  203. data/lib/rbs/diff.rb +131 -0
  204. data/lib/rbs/environment/class_entry.rb +69 -0
  205. data/lib/rbs/environment/module_entry.rb +66 -0
  206. data/lib/rbs/environment/use_map.rb +77 -0
  207. data/lib/rbs/environment.rb +1028 -0
  208. data/lib/rbs/environment_loader.rb +167 -0
  209. data/lib/rbs/environment_walker.rb +155 -0
  210. data/lib/rbs/errors.rb +634 -0
  211. data/lib/rbs/factory.rb +18 -0
  212. data/lib/rbs/file_finder.rb +28 -0
  213. data/lib/rbs/inline_parser/comment_association.rb +117 -0
  214. data/lib/rbs/inline_parser.rb +568 -0
  215. data/lib/rbs/location_aux.rb +170 -0
  216. data/lib/rbs/locator.rb +247 -0
  217. data/lib/rbs/method_type.rb +145 -0
  218. data/lib/rbs/namespace.rb +154 -0
  219. data/lib/rbs/parser/lex_result.rb +15 -0
  220. data/lib/rbs/parser/token.rb +23 -0
  221. data/lib/rbs/parser_aux.rb +142 -0
  222. data/lib/rbs/prototype/helpers.rb +197 -0
  223. data/lib/rbs/prototype/node_usage.rb +99 -0
  224. data/lib/rbs/prototype/rb.rb +816 -0
  225. data/lib/rbs/prototype/rbi.rb +625 -0
  226. data/lib/rbs/prototype/runtime/helpers.rb +59 -0
  227. data/lib/rbs/prototype/runtime/reflection.rb +19 -0
  228. data/lib/rbs/prototype/runtime/value_object_generator.rb +279 -0
  229. data/lib/rbs/prototype/runtime.rb +680 -0
  230. data/lib/rbs/repository.rb +127 -0
  231. data/lib/rbs/resolver/constant_resolver.rb +219 -0
  232. data/lib/rbs/resolver/type_name_resolver.rb +167 -0
  233. data/lib/rbs/rewriter.rb +70 -0
  234. data/lib/rbs/sorter.rb +198 -0
  235. data/lib/rbs/source.rb +99 -0
  236. data/lib/rbs/substitution.rb +83 -0
  237. data/lib/rbs/subtractor.rb +204 -0
  238. data/lib/rbs/test/errors.rb +80 -0
  239. data/lib/rbs/test/guaranteed.rb +30 -0
  240. data/lib/rbs/test/hook.rb +212 -0
  241. data/lib/rbs/test/observer.rb +19 -0
  242. data/lib/rbs/test/setup.rb +84 -0
  243. data/lib/rbs/test/setup_helper.rb +50 -0
  244. data/lib/rbs/test/tester.rb +167 -0
  245. data/lib/rbs/test/type_check.rb +457 -0
  246. data/lib/rbs/test.rb +112 -0
  247. data/lib/rbs/type_alias_dependency.rb +100 -0
  248. data/lib/rbs/type_alias_regularity.rb +126 -0
  249. data/lib/rbs/type_name.rb +122 -0
  250. data/lib/rbs/types.rb +1604 -0
  251. data/lib/rbs/unit_test/convertibles.rb +177 -0
  252. data/lib/rbs/unit_test/spy.rb +138 -0
  253. data/lib/rbs/unit_test/type_assertions.rb +383 -0
  254. data/lib/rbs/unit_test/with_aliases.rb +145 -0
  255. data/lib/rbs/unit_test.rb +6 -0
  256. data/lib/rbs/validator.rb +186 -0
  257. data/lib/rbs/variance_calculator.rb +189 -0
  258. data/lib/rbs/vendorer.rb +71 -0
  259. data/lib/rbs/version.rb +5 -0
  260. data/lib/rbs/wasm/deserializer.rb +213 -0
  261. data/lib/rbs/wasm/jars/asm-analysis.jar +0 -0
  262. data/lib/rbs/wasm/jars/asm-commons.jar +0 -0
  263. data/lib/rbs/wasm/jars/asm-tree.jar +0 -0
  264. data/lib/rbs/wasm/jars/asm-util.jar +0 -0
  265. data/lib/rbs/wasm/jars/asm.jar +0 -0
  266. data/lib/rbs/wasm/jars/compiler.jar +0 -0
  267. data/lib/rbs/wasm/jars/log.jar +0 -0
  268. data/lib/rbs/wasm/jars/runtime.jar +0 -0
  269. data/lib/rbs/wasm/jars/wasi.jar +0 -0
  270. data/lib/rbs/wasm/jars/wasm.jar +0 -0
  271. data/lib/rbs/wasm/location.rb +61 -0
  272. data/lib/rbs/wasm/parser.rb +137 -0
  273. data/lib/rbs/wasm/rbs_parser.wasm +0 -0
  274. data/lib/rbs/wasm/runtime.rb +217 -0
  275. data/lib/rbs/wasm/serialization_schema.rb +110 -0
  276. data/lib/rbs/writer.rb +424 -0
  277. data/lib/rbs.rb +117 -0
  278. data/lib/rdoc/discover.rb +20 -0
  279. data/lib/rdoc_plugin/parser.rb +163 -0
  280. data/rbs.gemspec +68 -0
  281. data/schema/annotation.json +14 -0
  282. data/schema/comment.json +26 -0
  283. data/schema/decls.json +326 -0
  284. data/schema/function.json +87 -0
  285. data/schema/location.json +56 -0
  286. data/schema/members.json +266 -0
  287. data/schema/methodType.json +50 -0
  288. data/schema/typeParam.json +52 -0
  289. data/schema/types.json +317 -0
  290. data/sig/ancestor_builder.rbs +163 -0
  291. data/sig/ancestor_graph.rbs +60 -0
  292. data/sig/annotate/annotations.rbs +102 -0
  293. data/sig/annotate/formatter.rbs +24 -0
  294. data/sig/annotate/rdoc_annotater.rbs +85 -0
  295. data/sig/annotate/rdoc_source.rbs +32 -0
  296. data/sig/annotation.rbs +27 -0
  297. data/sig/ast/ruby/annotations.rbs +470 -0
  298. data/sig/ast/ruby/comment_block.rbs +127 -0
  299. data/sig/ast/ruby/declarations.rbs +158 -0
  300. data/sig/ast/ruby/helpers/constant_helper.rbs +11 -0
  301. data/sig/ast/ruby/helpers/location_helper.rbs +15 -0
  302. data/sig/ast/ruby/members.rbs +198 -0
  303. data/sig/buffer.rbs +108 -0
  304. data/sig/builtin_names.rbs +44 -0
  305. data/sig/cli/colored_io.rbs +15 -0
  306. data/sig/cli/diff.rbs +15 -0
  307. data/sig/cli/validate.rbs +47 -0
  308. data/sig/cli.rbs +89 -0
  309. data/sig/collection/cleaner.rbs +13 -0
  310. data/sig/collection/config/lockfile.rbs +74 -0
  311. data/sig/collection/config/lockfile_generator.rbs +68 -0
  312. data/sig/collection/config.rbs +46 -0
  313. data/sig/collection/installer.rbs +17 -0
  314. data/sig/collection/sources.rbs +214 -0
  315. data/sig/collection.rbs +4 -0
  316. data/sig/comment.rbs +26 -0
  317. data/sig/constant.rbs +21 -0
  318. data/sig/declarations.rbs +274 -0
  319. data/sig/definition.rbs +232 -0
  320. data/sig/definition_builder.rbs +181 -0
  321. data/sig/diff.rbs +28 -0
  322. data/sig/directives.rbs +77 -0
  323. data/sig/environment/class_entry.rbs +50 -0
  324. data/sig/environment/module_entry.rbs +50 -0
  325. data/sig/environment.rbs +286 -0
  326. data/sig/environment_loader.rbs +111 -0
  327. data/sig/environment_walker.rbs +65 -0
  328. data/sig/errors.rbs +408 -0
  329. data/sig/factory.rbs +5 -0
  330. data/sig/file_finder.rbs +28 -0
  331. data/sig/inline_parser/comment_association.rbs +71 -0
  332. data/sig/inline_parser.rbs +126 -0
  333. data/sig/location.rbs +135 -0
  334. data/sig/locator.rbs +56 -0
  335. data/sig/manifest.yaml +5 -0
  336. data/sig/members.rbs +258 -0
  337. data/sig/method_builder.rbs +89 -0
  338. data/sig/method_types.rbs +58 -0
  339. data/sig/namespace.rbs +161 -0
  340. data/sig/parser.rbs +164 -0
  341. data/sig/prototype/helpers.rbs +29 -0
  342. data/sig/prototype/node_usage.rbs +20 -0
  343. data/sig/prototype/rb.rbs +96 -0
  344. data/sig/prototype/rbi.rbs +75 -0
  345. data/sig/prototype/runtime.rbs +182 -0
  346. data/sig/rbs.rbs +21 -0
  347. data/sig/rdoc/rbs.rbs +67 -0
  348. data/sig/repository.rbs +85 -0
  349. data/sig/resolver/constant_resolver.rbs +92 -0
  350. data/sig/resolver/context.rbs +34 -0
  351. data/sig/resolver/type_name_resolver.rbs +61 -0
  352. data/sig/rewriter.rbs +45 -0
  353. data/sig/shims/bundler.rbs +38 -0
  354. data/sig/shims/enumerable.rbs +5 -0
  355. data/sig/shims/rubygems.rbs +19 -0
  356. data/sig/sorter.rbs +41 -0
  357. data/sig/source.rbs +48 -0
  358. data/sig/substitution.rbs +48 -0
  359. data/sig/subtractor.rbs +37 -0
  360. data/sig/test/errors.rbs +52 -0
  361. data/sig/test/guranteed.rbs +9 -0
  362. data/sig/test/type_check.rbs +19 -0
  363. data/sig/test.rbs +82 -0
  364. data/sig/type_alias_dependency.rbs +53 -0
  365. data/sig/type_alias_regularity.rbs +98 -0
  366. data/sig/type_param.rbs +115 -0
  367. data/sig/typename.rbs +89 -0
  368. data/sig/types.rbs +578 -0
  369. data/sig/unit_test/convertibles.rbs +154 -0
  370. data/sig/unit_test/spy.rbs +22 -0
  371. data/sig/unit_test/type_assertions.rbs +211 -0
  372. data/sig/unit_test/with_aliases.rbs +136 -0
  373. data/sig/use_map.rbs +35 -0
  374. data/sig/util.rbs +9 -0
  375. data/sig/validator.rbs +63 -0
  376. data/sig/variance_calculator.rbs +87 -0
  377. data/sig/vendorer.rbs +51 -0
  378. data/sig/version.rbs +3 -0
  379. data/sig/visitor.rbs +47 -0
  380. data/sig/wasm/deserializer.rbs +66 -0
  381. data/sig/wasm/serialization_schema.rbs +13 -0
  382. data/sig/writer.rbs +127 -0
  383. data/src/ast.c +1628 -0
  384. data/src/lexer.c +3217 -0
  385. data/src/lexer.re +155 -0
  386. data/src/lexstate.c +217 -0
  387. data/src/location.c +31 -0
  388. data/src/parser.c +4255 -0
  389. data/src/serialize.c +958 -0
  390. data/src/string.c +41 -0
  391. data/src/util/rbs_allocator.c +162 -0
  392. data/src/util/rbs_assert.c +19 -0
  393. data/src/util/rbs_buffer.c +54 -0
  394. data/src/util/rbs_constant_pool.c +268 -0
  395. data/src/util/rbs_encoding.c +21308 -0
  396. data/src/util/rbs_unescape.c +167 -0
  397. data/stdlib/abbrev/0/abbrev.rbs +66 -0
  398. data/stdlib/abbrev/0/array.rbs +26 -0
  399. data/stdlib/base64/0/base64.rbs +355 -0
  400. data/stdlib/benchmark/0/benchmark.rbs +452 -0
  401. data/stdlib/bigdecimal/0/big_decimal.rbs +1647 -0
  402. data/stdlib/bigdecimal-math/0/big_math.rbs +280 -0
  403. data/stdlib/bigdecimal-math/0/manifest.yaml +2 -0
  404. data/stdlib/cgi/0/core.rbs +911 -0
  405. data/stdlib/cgi/0/manifest.yaml +4 -0
  406. data/stdlib/cgi-escape/0/escape.rbs +171 -0
  407. data/stdlib/coverage/0/coverage.rbs +266 -0
  408. data/stdlib/csv/0/csv.rbs +3776 -0
  409. data/stdlib/csv/0/manifest.yaml +3 -0
  410. data/stdlib/date/0/date.rbs +1598 -0
  411. data/stdlib/date/0/date_time.rbs +617 -0
  412. data/stdlib/date/0/time.rbs +26 -0
  413. data/stdlib/dbm/0/dbm.rbs +421 -0
  414. data/stdlib/delegate/0/delegator.rbs +187 -0
  415. data/stdlib/delegate/0/kernel.rbs +47 -0
  416. data/stdlib/delegate/0/simple_delegator.rbs +96 -0
  417. data/stdlib/did_you_mean/0/did_you_mean.rbs +344 -0
  418. data/stdlib/digest/0/digest.rbs +687 -0
  419. data/stdlib/erb/0/erb.rbs +933 -0
  420. data/stdlib/etc/0/etc.rbs +884 -0
  421. data/stdlib/fileutils/0/fileutils.rbs +1753 -0
  422. data/stdlib/find/0/find.rbs +49 -0
  423. data/stdlib/forwardable/0/forwardable.rbs +271 -0
  424. data/stdlib/io-console/0/io-console.rbs +414 -0
  425. data/stdlib/ipaddr/0/ipaddr.rbs +436 -0
  426. data/stdlib/json/0/json.rbs +1963 -0
  427. data/stdlib/kconv/0/kconv.rbs +166 -0
  428. data/stdlib/logger/0/formatter.rbs +45 -0
  429. data/stdlib/logger/0/log_device.rbs +100 -0
  430. data/stdlib/logger/0/logger.rbs +796 -0
  431. data/stdlib/logger/0/manifest.yaml +2 -0
  432. data/stdlib/logger/0/period.rbs +17 -0
  433. data/stdlib/logger/0/severity.rbs +34 -0
  434. data/stdlib/minitest/0/kernel.rbs +42 -0
  435. data/stdlib/minitest/0/minitest/abstract_reporter.rbs +52 -0
  436. data/stdlib/minitest/0/minitest/assertion.rbs +17 -0
  437. data/stdlib/minitest/0/minitest/assertions.rbs +590 -0
  438. data/stdlib/minitest/0/minitest/backtrace_filter.rbs +23 -0
  439. data/stdlib/minitest/0/minitest/bench_spec.rbs +102 -0
  440. data/stdlib/minitest/0/minitest/benchmark.rbs +259 -0
  441. data/stdlib/minitest/0/minitest/composite_reporter.rbs +25 -0
  442. data/stdlib/minitest/0/minitest/compress.rbs +13 -0
  443. data/stdlib/minitest/0/minitest/error_on_warning.rbs +3 -0
  444. data/stdlib/minitest/0/minitest/expectation.rbs +2 -0
  445. data/stdlib/minitest/0/minitest/expectations.rbs +21 -0
  446. data/stdlib/minitest/0/minitest/guard.rbs +64 -0
  447. data/stdlib/minitest/0/minitest/mock.rbs +64 -0
  448. data/stdlib/minitest/0/minitest/parallel/executor.rbs +46 -0
  449. data/stdlib/minitest/0/minitest/parallel/test/class_methods.rbs +5 -0
  450. data/stdlib/minitest/0/minitest/parallel/test.rbs +3 -0
  451. data/stdlib/minitest/0/minitest/parallel.rbs +2 -0
  452. data/stdlib/minitest/0/minitest/pride_io.rbs +62 -0
  453. data/stdlib/minitest/0/minitest/pride_lol.rbs +19 -0
  454. data/stdlib/minitest/0/minitest/progress_reporter.rbs +11 -0
  455. data/stdlib/minitest/0/minitest/reportable.rbs +53 -0
  456. data/stdlib/minitest/0/minitest/reporter.rbs +5 -0
  457. data/stdlib/minitest/0/minitest/result.rbs +28 -0
  458. data/stdlib/minitest/0/minitest/runnable.rbs +163 -0
  459. data/stdlib/minitest/0/minitest/skip.rbs +6 -0
  460. data/stdlib/minitest/0/minitest/spec/dsl/instance_methods.rbs +48 -0
  461. data/stdlib/minitest/0/minitest/spec/dsl.rbs +129 -0
  462. data/stdlib/minitest/0/minitest/spec.rbs +11 -0
  463. data/stdlib/minitest/0/minitest/statistics_reporter.rbs +81 -0
  464. data/stdlib/minitest/0/minitest/summary_reporter.rbs +18 -0
  465. data/stdlib/minitest/0/minitest/test/lifecycle_hooks.rbs +92 -0
  466. data/stdlib/minitest/0/minitest/test.rbs +69 -0
  467. data/stdlib/minitest/0/minitest/unexpected_error.rbs +12 -0
  468. data/stdlib/minitest/0/minitest/unexpected_warning.rbs +6 -0
  469. data/stdlib/minitest/0/minitest/unit/test_case.rbs +3 -0
  470. data/stdlib/minitest/0/minitest/unit.rbs +4 -0
  471. data/stdlib/minitest/0/minitest.rbs +115 -0
  472. data/stdlib/monitor/0/monitor.rbs +363 -0
  473. data/stdlib/mutex_m/0/mutex_m.rbs +104 -0
  474. data/stdlib/net-http/0/manifest.yaml +3 -0
  475. data/stdlib/net-http/0/net-http.rbs +5580 -0
  476. data/stdlib/net-protocol/0/manifest.yaml +2 -0
  477. data/stdlib/net-protocol/0/net-protocol.rbs +56 -0
  478. data/stdlib/net-smtp/0/manifest.yaml +2 -0
  479. data/stdlib/net-smtp/0/net-smtp.rbs +55 -0
  480. data/stdlib/nkf/0/nkf.rbs +402 -0
  481. data/stdlib/objspace/0/objspace.rbs +470 -0
  482. data/stdlib/observable/0/observable.rbs +217 -0
  483. data/stdlib/open-uri/0/manifest.yaml +4 -0
  484. data/stdlib/open-uri/0/open-uri.rbs +433 -0
  485. data/stdlib/open3/0/open3.rbs +606 -0
  486. data/stdlib/openssl/0/manifest.yaml +3 -0
  487. data/stdlib/openssl/0/openssl.rbs +12231 -0
  488. data/stdlib/optparse/0/optparse.rbs +1734 -0
  489. data/stdlib/pathname/0/pathname.rbs +36 -0
  490. data/stdlib/pp/0/manifest.yaml +2 -0
  491. data/stdlib/pp/0/pp.rbs +301 -0
  492. data/stdlib/prettyprint/0/prettyprint.rbs +383 -0
  493. data/stdlib/pstore/0/pstore.rbs +608 -0
  494. data/stdlib/psych/0/core_ext.rbs +12 -0
  495. data/stdlib/psych/0/dbm.rbs +237 -0
  496. data/stdlib/psych/0/manifest.yaml +3 -0
  497. data/stdlib/psych/0/psych.rbs +455 -0
  498. data/stdlib/psych/0/store.rbs +57 -0
  499. data/stdlib/pty/0/pty.rbs +240 -0
  500. data/stdlib/random-formatter/0/random-formatter.rbs +277 -0
  501. data/stdlib/rdoc/0/code_object.rbs +52 -0
  502. data/stdlib/rdoc/0/comment.rbs +61 -0
  503. data/stdlib/rdoc/0/context.rbs +153 -0
  504. data/stdlib/rdoc/0/markup.rbs +117 -0
  505. data/stdlib/rdoc/0/options.rbs +76 -0
  506. data/stdlib/rdoc/0/parser.rbs +56 -0
  507. data/stdlib/rdoc/0/rdoc.rbs +393 -0
  508. data/stdlib/rdoc/0/ri.rbs +17 -0
  509. data/stdlib/rdoc/0/store.rbs +48 -0
  510. data/stdlib/rdoc/0/top_level.rbs +97 -0
  511. data/stdlib/resolv/0/manifest.yaml +3 -0
  512. data/stdlib/resolv/0/resolv.rbs +1787 -0
  513. data/stdlib/ripper/0/ripper.rbs +1654 -0
  514. data/stdlib/securerandom/0/manifest.yaml +2 -0
  515. data/stdlib/securerandom/0/securerandom.rbs +49 -0
  516. data/stdlib/shellwords/0/shellwords.rbs +229 -0
  517. data/stdlib/singleton/0/singleton.rbs +134 -0
  518. data/stdlib/socket/0/addrinfo.rbs +666 -0
  519. data/stdlib/socket/0/basic_socket.rbs +590 -0
  520. data/stdlib/socket/0/constants.rbs +2295 -0
  521. data/stdlib/socket/0/ip_socket.rbs +94 -0
  522. data/stdlib/socket/0/socket.rbs +4170 -0
  523. data/stdlib/socket/0/socket_error.rbs +5 -0
  524. data/stdlib/socket/0/tcp_server.rbs +192 -0
  525. data/stdlib/socket/0/tcp_socket.rbs +87 -0
  526. data/stdlib/socket/0/udp_socket.rbs +133 -0
  527. data/stdlib/socket/0/unix_server.rbs +169 -0
  528. data/stdlib/socket/0/unix_socket.rbs +172 -0
  529. data/stdlib/stringio/0/stringio.rbs +1681 -0
  530. data/stdlib/strscan/0/string_scanner.rbs +1648 -0
  531. data/stdlib/tempfile/0/tempfile.rbs +483 -0
  532. data/stdlib/time/0/time.rbs +434 -0
  533. data/stdlib/timeout/0/timeout.rbs +137 -0
  534. data/stdlib/tmpdir/0/tmpdir.rbs +69 -0
  535. data/stdlib/tsort/0/cyclic.rbs +8 -0
  536. data/stdlib/tsort/0/interfaces.rbs +20 -0
  537. data/stdlib/tsort/0/tsort.rbs +410 -0
  538. data/stdlib/uri/0/common.rbs +621 -0
  539. data/stdlib/uri/0/file.rbs +118 -0
  540. data/stdlib/uri/0/ftp.rbs +13 -0
  541. data/stdlib/uri/0/generic.rbs +1116 -0
  542. data/stdlib/uri/0/http.rbs +104 -0
  543. data/stdlib/uri/0/https.rbs +14 -0
  544. data/stdlib/uri/0/ldap.rbs +230 -0
  545. data/stdlib/uri/0/ldaps.rbs +14 -0
  546. data/stdlib/uri/0/mailto.rbs +92 -0
  547. data/stdlib/uri/0/rfc2396_parser.rbs +189 -0
  548. data/stdlib/uri/0/rfc3986_parser.rbs +2 -0
  549. data/stdlib/uri/0/ws.rbs +13 -0
  550. data/stdlib/uri/0/wss.rbs +9 -0
  551. data/stdlib/yaml/0/manifest.yaml +2 -0
  552. data/stdlib/yaml/0/yaml.rbs +1 -0
  553. data/stdlib/zlib/0/buf_error.rbs +10 -0
  554. data/stdlib/zlib/0/data_error.rbs +10 -0
  555. data/stdlib/zlib/0/deflate.rbs +211 -0
  556. data/stdlib/zlib/0/error.rbs +20 -0
  557. data/stdlib/zlib/0/gzip_file/crc_error.rbs +12 -0
  558. data/stdlib/zlib/0/gzip_file/error.rbs +23 -0
  559. data/stdlib/zlib/0/gzip_file/length_error.rbs +12 -0
  560. data/stdlib/zlib/0/gzip_file/no_footer.rbs +11 -0
  561. data/stdlib/zlib/0/gzip_file.rbs +156 -0
  562. data/stdlib/zlib/0/gzip_reader.rbs +293 -0
  563. data/stdlib/zlib/0/gzip_writer.rbs +168 -0
  564. data/stdlib/zlib/0/inflate.rbs +180 -0
  565. data/stdlib/zlib/0/mem_error.rbs +10 -0
  566. data/stdlib/zlib/0/need_dict.rbs +13 -0
  567. data/stdlib/zlib/0/stream_end.rbs +11 -0
  568. data/stdlib/zlib/0/stream_error.rbs +11 -0
  569. data/stdlib/zlib/0/version_error.rbs +11 -0
  570. data/stdlib/zlib/0/zlib.rbs +449 -0
  571. data/stdlib/zlib/0/zstream.rbs +201 -0
  572. data/wasm/README.md +59 -0
  573. data/wasm/rbs_wasm.c +411 -0
  574. metadata +660 -0
@@ -0,0 +1,376 @@
1
+ # <!-- rdoc-file=object.c -->
2
+ # `BasicObject` is the parent class of all classes in Ruby. In particular,
3
+ # `BasicObject` is the parent class of class Object, which is itself the default
4
+ # parent class of every Ruby class:
5
+ #
6
+ # class Foo; end
7
+ # Foo.superclass # => Object
8
+ # Object.superclass # => BasicObject
9
+ #
10
+ # `BasicObject` is the only class that has no parent:
11
+ #
12
+ # BasicObject.superclass # => nil
13
+ #
14
+ # Class `BasicObject` can be used to create an object hierarchy (e.g., class
15
+ # Delegator) that is independent of Ruby's object hierarchy. Such objects:
16
+ #
17
+ # * Do not have namespace "pollution" from the many methods provided in class
18
+ # Object and its included module Kernel.
19
+ # * Do not have definitions of common classes, and so references to such
20
+ # common classes must be fully qualified (<code>::String</code>, not
21
+ # `String`).
22
+ #
23
+ # A variety of strategies can be used to provide useful portions of the Standard
24
+ # Library in subclasses of `BasicObject`:
25
+ #
26
+ # * The immediate subclass could `include Kernel`, which would define methods
27
+ # such as `puts`, `exit`, etc.
28
+ # * A custom Kernel-like module could be created and included.
29
+ # * Delegation can be used via #method_missing:
30
+ #
31
+ # class MyObjectSystem < BasicObject
32
+ # DELEGATE = [:puts, :p]
33
+ #
34
+ # def method_missing(name, *args, &block)
35
+ # return super unless DELEGATE.include? name
36
+ # ::Kernel.send(name, *args, &block)
37
+ # end
38
+ #
39
+ # def respond_to_missing?(name, include_private = false)
40
+ # DELEGATE.include?(name)
41
+ # end
42
+ # end
43
+ #
44
+ # ### What's Here
45
+ #
46
+ # These are the methods defined for BasicObject:
47
+ #
48
+ # * ::new: Returns a new BasicObject instance.
49
+ # * #!: Returns the boolean negation of `self`: `true` or `false`.
50
+ # * #!=: Returns whether `self` and the given object are *not* equal.
51
+ # * #==: Returns whether `self` and the given object are equivalent.
52
+ # * #__id__: Returns the integer object identifier for `self`.
53
+ # * #__send__: Calls the method identified by the given symbol.
54
+ # * #equal?: Returns whether `self` and the given object are the same object.
55
+ # * #instance_eval: Evaluates the given string or block in the context of
56
+ # `self`.
57
+ # * #instance_exec: Executes the given block in the context of `self`, passing
58
+ # the given arguments.
59
+ # * #method_missing: Called when `self` is called with a method it does not
60
+ # define.
61
+ # * #singleton_method_added: Called when a singleton method is added to
62
+ # `self`.
63
+ # * #singleton_method_removed: Called when a singleton method is removed from
64
+ # `self`.
65
+ # * #singleton_method_undefined: Called when a singleton method is undefined
66
+ # in `self`.
67
+ #
68
+ class BasicObject
69
+ # <!--
70
+ # rdoc-file=object.c
71
+ # - !obj -> true or false
72
+ # -->
73
+ # Boolean negate.
74
+ #
75
+ def !: () -> bool
76
+
77
+ # <!--
78
+ # rdoc-file=object.c
79
+ # - obj != other -> true or false
80
+ # -->
81
+ # Returns true if two objects are not-equal, otherwise false.
82
+ #
83
+ def !=: (untyped other) -> bool
84
+
85
+ # <!--
86
+ # rdoc-file=object.c
87
+ # - obj == other -> true or false
88
+ # - obj.equal?(other) -> true or false
89
+ # - obj.eql?(other) -> true or false
90
+ # -->
91
+ # Equality --- At the Object level, #== returns `true` only if `obj` and `other`
92
+ # are the same object. Typically, this method is overridden in descendant
93
+ # classes to provide class-specific meaning.
94
+ #
95
+ # Unlike #==, the #equal? method should never be overridden by subclasses as it
96
+ # is used to determine object identity (that is, <code>a.equal?(b)</code> if and
97
+ # only if `a` is the same object as `b`):
98
+ #
99
+ # obj = "a"
100
+ # other = obj.dup
101
+ #
102
+ # obj == other #=> true
103
+ # obj.equal? other #=> false
104
+ # obj.equal? obj #=> true
105
+ #
106
+ # The #eql? method returns `true` if `obj` and `other` refer to the same hash
107
+ # key. This is used by Hash to test members for equality. For any pair of
108
+ # objects where #eql? returns `true`, the #hash value of both objects must be
109
+ # equal. So any subclass that overrides #eql? should also override #hash
110
+ # appropriately.
111
+ #
112
+ # For objects of class Object, #eql? is synonymous with #==. Subclasses
113
+ # normally continue this tradition by aliasing #eql? to their overridden #==
114
+ # method, but there are exceptions. Numeric types, for example, perform type
115
+ # conversion across #==, but not across #eql?, so:
116
+ #
117
+ # 1 == 1.0 #=> true
118
+ # 1.eql? 1.0 #=> false
119
+ #
120
+ def ==: (untyped other) -> bool
121
+
122
+ # <!--
123
+ # rdoc-file=gc.c
124
+ # - obj.__id__ -> integer
125
+ # - obj.object_id -> integer
126
+ # -->
127
+ # Returns an integer identifier for `obj`.
128
+ #
129
+ # The same number will be returned on all calls to `object_id` for a given
130
+ # object, and no two active objects will share an id.
131
+ #
132
+ # Note: that some objects of builtin classes are reused for optimization. This
133
+ # is the case for immediate values and frozen string literals.
134
+ #
135
+ # BasicObject implements `__id__`, Kernel implements `object_id`.
136
+ #
137
+ # Immediate values are not passed by reference but are passed by value: `nil`,
138
+ # `true`, `false`, Fixnums, Symbols, and some Floats.
139
+ #
140
+ # Object.new.object_id == Object.new.object_id # => false
141
+ # (21 * 2).object_id == (21 * 2).object_id # => true
142
+ # "hello".object_id == "hello".object_id # => false
143
+ # "hi".freeze.object_id == "hi".freeze.object_id # => true
144
+ #
145
+ def __id__: () -> Integer
146
+
147
+ # <!--
148
+ # rdoc-file=vm_eval.c
149
+ # - foo.send(symbol [, args...]) -> obj
150
+ # - foo.__send__(symbol [, args...]) -> obj
151
+ # - foo.send(string [, args...]) -> obj
152
+ # - foo.__send__(string [, args...]) -> obj
153
+ # -->
154
+ # Invokes the method identified by *symbol*, passing it any arguments specified.
155
+ # When the method is identified by a string, the string is converted to a
156
+ # symbol.
157
+ #
158
+ # BasicObject implements `__send__`, Kernel implements `send`. `__send__` is
159
+ # safer than `send` when *obj* has the same method name like `Socket`. See also
160
+ # `public_send`.
161
+ #
162
+ # class Klass
163
+ # def hello(*args)
164
+ # "Hello " + args.join(' ')
165
+ # end
166
+ # end
167
+ # k = Klass.new
168
+ # k.send :hello, "gentle", "readers" #=> "Hello gentle readers"
169
+ #
170
+ def __send__: (interned name, *untyped, **untyped) ?{ (?) -> untyped } -> untyped
171
+
172
+ # <!-- rdoc-file=object.c -->
173
+ # Equality --- At the Object level, #== returns `true` only if `obj` and `other`
174
+ # are the same object. Typically, this method is overridden in descendant
175
+ # classes to provide class-specific meaning.
176
+ #
177
+ # Unlike #==, the #equal? method should never be overridden by subclasses as it
178
+ # is used to determine object identity (that is, <code>a.equal?(b)</code> if and
179
+ # only if `a` is the same object as `b`):
180
+ #
181
+ # obj = "a"
182
+ # other = obj.dup
183
+ #
184
+ # obj == other #=> true
185
+ # obj.equal? other #=> false
186
+ # obj.equal? obj #=> true
187
+ #
188
+ # The #eql? method returns `true` if `obj` and `other` refer to the same hash
189
+ # key. This is used by Hash to test members for equality. For any pair of
190
+ # objects where #eql? returns `true`, the #hash value of both objects must be
191
+ # equal. So any subclass that overrides #eql? should also override #hash
192
+ # appropriately.
193
+ #
194
+ # For objects of class Object, #eql? is synonymous with #==. Subclasses
195
+ # normally continue this tradition by aliasing #eql? to their overridden #==
196
+ # method, but there are exceptions. Numeric types, for example, perform type
197
+ # conversion across #==, but not across #eql?, so:
198
+ #
199
+ # 1 == 1.0 #=> true
200
+ # 1.eql? 1.0 #=> false
201
+ #
202
+ alias equal? ==
203
+
204
+ # <!--
205
+ # rdoc-file=vm_eval.c
206
+ # - obj.instance_eval(string [, filename [, lineno]] ) -> obj
207
+ # - obj.instance_eval {|obj| block } -> obj
208
+ # -->
209
+ # Evaluates a string containing Ruby source code, or the given block, within the
210
+ # context of the receiver (*obj*). In order to set the context, the variable
211
+ # `self` is set to *obj* while the code is executing, giving the code access to
212
+ # *obj*'s instance variables and private methods.
213
+ #
214
+ # When `instance_eval` is given a block, *obj* is also passed in as the block's
215
+ # only argument.
216
+ #
217
+ # When `instance_eval` is given a `String`, the optional second and third
218
+ # parameters supply a filename and starting line number that are used when
219
+ # reporting compilation errors.
220
+ #
221
+ # class KlassWithSecret
222
+ # def initialize
223
+ # @secret = 99
224
+ # end
225
+ # private
226
+ # def the_secret
227
+ # "Ssssh! The secret is #{@secret}."
228
+ # end
229
+ # end
230
+ # k = KlassWithSecret.new
231
+ # k.instance_eval { @secret } #=> 99
232
+ # k.instance_eval { the_secret } #=> "Ssssh! The secret is 99."
233
+ # k.instance_eval {|obj| obj == self } #=> true
234
+ #
235
+ def instance_eval: (string code, ?string filename, ?int lineno) -> untyped
236
+ | [U] () { (self) [self: self] -> U } -> U
237
+
238
+ # <!--
239
+ # rdoc-file=vm_eval.c
240
+ # - obj.instance_exec(arg...) {|var...| block } -> obj
241
+ # -->
242
+ # Executes the given block within the context of the receiver (*obj*). In order
243
+ # to set the context, the variable `self` is set to *obj* while the code is
244
+ # executing, giving the code access to *obj*'s instance variables. Arguments
245
+ # are passed as block parameters.
246
+ #
247
+ # class KlassWithSecret
248
+ # def initialize
249
+ # @secret = 99
250
+ # end
251
+ # end
252
+ # k = KlassWithSecret.new
253
+ # k.instance_exec(5) {|x| @secret+x } #=> 104
254
+ #
255
+ def instance_exec: [U] (*untyped, **untyped) { (?) [self: self] -> U } -> U
256
+
257
+ # <!--
258
+ # rdoc-file=object.c
259
+ # - BasicObject.new
260
+ # -->
261
+ # Returns a new BasicObject.
262
+ #
263
+ def initialize: () -> void
264
+
265
+ private
266
+
267
+ # <!--
268
+ # rdoc-file=vm_eval.c
269
+ # - obj.method_missing(symbol [, *args] ) -> result
270
+ # -->
271
+ # Invoked by Ruby when *obj* is sent a message it cannot handle. *symbol* is the
272
+ # symbol for the method called, and *args* are any arguments that were passed to
273
+ # it. By default, the interpreter raises an error when this method is called.
274
+ # However, it is possible to override the method to provide more dynamic
275
+ # behavior. If it is decided that a particular method should not be handled,
276
+ # then *super* should be called, so that ancestors can pick up the missing
277
+ # method. The example below creates a class `Roman`, which responds to methods
278
+ # with names consisting of roman numerals, returning the corresponding integer
279
+ # values.
280
+ #
281
+ # class Roman
282
+ # def roman_to_int(str)
283
+ # # ...
284
+ # end
285
+ #
286
+ # def method_missing(symbol, *args)
287
+ # str = symbol.id2name
288
+ # begin
289
+ # roman_to_int(str)
290
+ # rescue
291
+ # super(symbol, *args)
292
+ # end
293
+ # end
294
+ # end
295
+ #
296
+ # r = Roman.new
297
+ # r.iv #=> 4
298
+ # r.xxiii #=> 23
299
+ # r.mm #=> 2000
300
+ # r.foo #=> NoMethodError
301
+ #
302
+ def method_missing: (Symbol, *untyped, **untyped) ?{ (?) -> untyped } -> untyped
303
+
304
+ # <!--
305
+ # rdoc-file=object.c
306
+ # - singleton_method_added(symbol)
307
+ # -->
308
+ # Invoked as a callback whenever a singleton method is added to the receiver.
309
+ #
310
+ # module Chatty
311
+ # def Chatty.singleton_method_added(id)
312
+ # puts "Adding #{id.id2name}"
313
+ # end
314
+ # def self.one() end
315
+ # def two() end
316
+ # def Chatty.three() end
317
+ # end
318
+ #
319
+ # <em>produces:</em>
320
+ #
321
+ # Adding singleton_method_added
322
+ # Adding one
323
+ # Adding three
324
+ #
325
+ def singleton_method_added: (Symbol name) -> nil
326
+
327
+ # <!--
328
+ # rdoc-file=object.c
329
+ # - singleton_method_removed(symbol)
330
+ # -->
331
+ # Invoked as a callback whenever a singleton method is removed from the
332
+ # receiver.
333
+ #
334
+ # module Chatty
335
+ # def Chatty.singleton_method_removed(id)
336
+ # puts "Removing #{id.id2name}"
337
+ # end
338
+ # def self.one() end
339
+ # def two() end
340
+ # def Chatty.three() end
341
+ # class << self
342
+ # remove_method :three
343
+ # remove_method :one
344
+ # end
345
+ # end
346
+ #
347
+ # <em>produces:</em>
348
+ #
349
+ # Removing three
350
+ # Removing one
351
+ #
352
+ def singleton_method_removed: (Symbol name) -> nil
353
+
354
+ # <!--
355
+ # rdoc-file=object.c
356
+ # - singleton_method_undefined(symbol)
357
+ # -->
358
+ # Invoked as a callback whenever a singleton method is undefined in the
359
+ # receiver.
360
+ #
361
+ # module Chatty
362
+ # def Chatty.singleton_method_undefined(id)
363
+ # puts "Undefining #{id.id2name}"
364
+ # end
365
+ # def Chatty.one() end
366
+ # class << self
367
+ # undef_method(:one)
368
+ # end
369
+ # end
370
+ #
371
+ # <em>produces:</em>
372
+ #
373
+ # Undefining one
374
+ #
375
+ def singleton_method_undefined: (Symbol name) -> nil
376
+ end
data/core/binding.rbs ADDED
@@ -0,0 +1,148 @@
1
+ # <!-- rdoc-file=proc.c -->
2
+ # Objects of class Binding encapsulate the execution context at some particular
3
+ # place in the code and retain this context for future use. The variables,
4
+ # methods, value of `self`, and possibly an iterator block that can be accessed
5
+ # in this context are all retained. Binding objects can be created using
6
+ # Kernel#binding, and are made available to the callback of
7
+ # Kernel#set_trace_func and instances of TracePoint.
8
+ #
9
+ # These binding objects can be passed as the second argument of the Kernel#eval
10
+ # method, establishing an environment for the evaluation.
11
+ #
12
+ # class Demo
13
+ # def initialize(n)
14
+ # @secret = n
15
+ # end
16
+ # def get_binding
17
+ # binding
18
+ # end
19
+ # end
20
+ #
21
+ # k1 = Demo.new(99)
22
+ # b1 = k1.get_binding
23
+ # k2 = Demo.new(-3)
24
+ # b2 = k2.get_binding
25
+ #
26
+ # eval("@secret", b1) #=> 99
27
+ # eval("@secret", b2) #=> -3
28
+ # eval("@secret") #=> nil
29
+ #
30
+ # Binding objects have no class-specific methods.
31
+ #
32
+ class Binding
33
+ def clone: () -> self
34
+
35
+ # <!--
36
+ # rdoc-file=proc.c
37
+ # - binding.eval(string [, filename [,lineno]]) -> obj
38
+ # -->
39
+ # Evaluates the Ruby expression(s) in *string*, in the *binding*'s context. If
40
+ # the optional *filename* and *lineno* parameters are present, they will be used
41
+ # when reporting syntax errors.
42
+ #
43
+ # def get_binding(param)
44
+ # binding
45
+ # end
46
+ # b = get_binding("hello")
47
+ # b.eval("param") #=> "hello"
48
+ #
49
+ def eval: (string src, ?string filename, ?int lineno) -> untyped
50
+
51
+ # <!--
52
+ # rdoc-file=proc.c
53
+ # - binding.local_variable_defined?(symbol) -> obj
54
+ # -->
55
+ # Returns `true` if a local variable `symbol` exists.
56
+ #
57
+ # def foo
58
+ # a = 1
59
+ # binding.local_variable_defined?(:a) #=> true
60
+ # binding.local_variable_defined?(:b) #=> false
61
+ # end
62
+ #
63
+ # This method is the short version of the following code:
64
+ #
65
+ # binding.eval("defined?(#{symbol}) == 'local-variable'")
66
+ #
67
+ def local_variable_defined?: (interned varname) -> bool
68
+
69
+ # <!--
70
+ # rdoc-file=proc.c
71
+ # - binding.local_variable_get(symbol) -> obj
72
+ # -->
73
+ # Returns the value of the local variable `symbol`.
74
+ #
75
+ # def foo
76
+ # a = 1
77
+ # binding.local_variable_get(:a) #=> 1
78
+ # binding.local_variable_get(:b) #=> NameError
79
+ # end
80
+ #
81
+ # This method is the short version of the following code:
82
+ #
83
+ # binding.eval("#{symbol}")
84
+ #
85
+ def local_variable_get: (interned varname) -> untyped
86
+
87
+ # <!--
88
+ # rdoc-file=proc.c
89
+ # - binding.local_variable_set(symbol, obj) -> obj
90
+ # -->
91
+ # Set local variable named `symbol` as `obj`.
92
+ #
93
+ # def foo
94
+ # a = 1
95
+ # bind = binding
96
+ # bind.local_variable_set(:a, 2) # set existing local variable `a'
97
+ # bind.local_variable_set(:b, 3) # create new local variable `b'
98
+ # # `b' exists only in binding
99
+ #
100
+ # p bind.local_variable_get(:a) #=> 2
101
+ # p bind.local_variable_get(:b) #=> 3
102
+ # p a #=> 2
103
+ # p b #=> NameError
104
+ # end
105
+ #
106
+ # This method behaves similarly to the following code:
107
+ #
108
+ # binding.eval("#{symbol} = #{obj}")
109
+ #
110
+ # if `obj` can be dumped in Ruby code.
111
+ #
112
+ def local_variable_set: [U] (interned varname, U obj) -> U
113
+
114
+ # <!--
115
+ # rdoc-file=proc.c
116
+ # - binding.local_variables -> Array
117
+ # -->
118
+ # Returns the names of the binding's local variables as symbols.
119
+ #
120
+ # def foo
121
+ # a = 1
122
+ # 2.times do |n|
123
+ # binding.local_variables #=> [:a, :n]
124
+ # end
125
+ # end
126
+ #
127
+ # This method is the short version of the following code:
128
+ #
129
+ # binding.eval("local_variables")
130
+ #
131
+ def local_variables: () -> Array[Symbol]
132
+
133
+ # <!--
134
+ # rdoc-file=proc.c
135
+ # - binding.receiver -> object
136
+ # -->
137
+ # Returns the bound receiver of the binding object.
138
+ #
139
+ def receiver: () -> untyped
140
+
141
+ # <!--
142
+ # rdoc-file=proc.c
143
+ # - binding.source_location -> [String, Integer]
144
+ # -->
145
+ # Returns the Ruby source filename and line number of the binding object.
146
+ #
147
+ def source_location: () -> [String, Integer]
148
+ end