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
@@ -0,0 +1,375 @@
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 (`::String`, not `String`).
21
+ #
22
+ # A variety of strategies can be used to provide useful portions of the Standard
23
+ # Library in subclasses of `BasicObject`:
24
+ #
25
+ # * The immediate subclass could `include Kernel`, which would define methods
26
+ # such as `puts`, `exit`, etc.
27
+ # * A custom Kernel-like module could be created and included.
28
+ # * Delegation can be used via #method_missing:
29
+ #
30
+ # class MyObjectSystem < BasicObject
31
+ # DELEGATE = [:puts, :p]
32
+ #
33
+ # def method_missing(name, *args, &block)
34
+ # return super unless DELEGATE.include? name
35
+ # ::Kernel.send(name, *args, &block)
36
+ # end
37
+ #
38
+ # def respond_to_missing?(name, include_private = false)
39
+ # DELEGATE.include?(name)
40
+ # end
41
+ # end
42
+ #
43
+ # ### What's Here
44
+ #
45
+ # These are the methods defined for BasicObject:
46
+ #
47
+ # * ::new: Returns a new BasicObject instance.
48
+ # * #!: Returns the boolean negation of `self`: `true` or `false`.
49
+ # * #!=: Returns whether `self` and the given object are *not* equal.
50
+ # * #==: Returns whether `self` and the given object are equivalent.
51
+ # * #__id__: Returns the integer object identifier for `self`.
52
+ # * #__send__: Calls the method identified by the given symbol.
53
+ # * #equal?: Returns whether `self` and the given object are the same object.
54
+ # * #instance_eval: Evaluates the given string or block in the context of
55
+ # `self`.
56
+ # * #instance_exec: Executes the given block in the context of `self`, passing
57
+ # the given arguments.
58
+ # * #method_missing: Called when `self` is called with a method it does not
59
+ # define.
60
+ # * #singleton_method_added: Called when a singleton method is added to
61
+ # `self`.
62
+ # * #singleton_method_removed: Called when a singleton method is removed from
63
+ # `self`.
64
+ # * #singleton_method_undefined: Called when a singleton method is undefined
65
+ # in `self`.
66
+ #
67
+ class BasicObject
68
+ # <!--
69
+ # rdoc-file=object.c
70
+ # - !obj -> true or false
71
+ # -->
72
+ # Boolean negate.
73
+ #
74
+ def !: () -> bool
75
+
76
+ # <!--
77
+ # rdoc-file=object.c
78
+ # - obj != other -> true or false
79
+ # -->
80
+ # Returns true if two objects are not-equal, otherwise false.
81
+ #
82
+ def !=: (untyped other) -> bool
83
+
84
+ # <!--
85
+ # rdoc-file=object.c
86
+ # - obj == other -> true or false
87
+ # - obj.equal?(other) -> true or false
88
+ # - obj.eql?(other) -> true or false
89
+ # -->
90
+ # Equality --- At the Object level, #== returns `true` only if `obj` and `other`
91
+ # are the same object. Typically, this method is overridden in descendant
92
+ # classes to provide class-specific meaning.
93
+ #
94
+ # Unlike #==, the #equal? method should never be overridden by subclasses as it
95
+ # is used to determine object identity (that is, `a.equal?(b)` if and only if
96
+ # `a` is the same object as `b`):
97
+ #
98
+ # obj = "a"
99
+ # other = obj.dup
100
+ #
101
+ # obj == other #=> true
102
+ # obj.equal? other #=> false
103
+ # obj.equal? obj #=> true
104
+ #
105
+ # The #eql? method returns `true` if `obj` and `other` refer to the same hash
106
+ # key. This is used by Hash to test members for equality. For any pair of
107
+ # objects where #eql? returns `true`, the #hash value of both objects must be
108
+ # equal. So any subclass that overrides #eql? should also override #hash
109
+ # appropriately.
110
+ #
111
+ # For objects of class Object, #eql? is synonymous with #==. Subclasses
112
+ # normally continue this tradition by aliasing #eql? to their overridden #==
113
+ # method, but there are exceptions. Numeric types, for example, perform type
114
+ # conversion across #==, but not across #eql?, so:
115
+ #
116
+ # 1 == 1.0 #=> true
117
+ # 1.eql? 1.0 #=> false
118
+ #
119
+ def ==: (untyped other) -> bool
120
+
121
+ # <!--
122
+ # rdoc-file=gc.c
123
+ # - obj.__id__ -> integer
124
+ # - obj.object_id -> integer
125
+ # -->
126
+ # Returns an integer identifier for `obj`.
127
+ #
128
+ # The same number will be returned on all calls to `object_id` for a given
129
+ # object, and no two active objects will share an id.
130
+ #
131
+ # Note: that some objects of builtin classes are reused for optimization. This
132
+ # is the case for immediate values and frozen string literals.
133
+ #
134
+ # BasicObject implements `__id__`, Kernel implements `object_id`.
135
+ #
136
+ # Immediate values are not passed by reference but are passed by value: `nil`,
137
+ # `true`, `false`, Fixnums, Symbols, and some Floats.
138
+ #
139
+ # Object.new.object_id == Object.new.object_id # => false
140
+ # (21 * 2).object_id == (21 * 2).object_id # => true
141
+ # "hello".object_id == "hello".object_id # => false
142
+ # "hi".freeze.object_id == "hi".freeze.object_id # => true
143
+ #
144
+ def __id__: () -> Integer
145
+
146
+ # <!--
147
+ # rdoc-file=vm_eval.c
148
+ # - foo.send(symbol [, args...]) -> obj
149
+ # - foo.__send__(symbol [, args...]) -> obj
150
+ # - foo.send(string [, args...]) -> obj
151
+ # - foo.__send__(string [, args...]) -> obj
152
+ # -->
153
+ # Invokes the method identified by *symbol*, passing it any arguments specified.
154
+ # When the method is identified by a string, the string is converted to a
155
+ # symbol.
156
+ #
157
+ # BasicObject implements `__send__`, Kernel implements `send`. `__send__` is
158
+ # safer than `send` when *obj* has the same method name like `Socket`. See also
159
+ # `public_send`.
160
+ #
161
+ # class Klass
162
+ # def hello(*args)
163
+ # "Hello " + args.join(' ')
164
+ # end
165
+ # end
166
+ # k = Klass.new
167
+ # k.send :hello, "gentle", "readers" #=> "Hello gentle readers"
168
+ #
169
+ def __send__: (interned name, *untyped, **untyped) ?{ (?) -> untyped } -> untyped
170
+
171
+ # <!-- rdoc-file=object.c -->
172
+ # Equality --- At the Object level, #== returns `true` only if `obj` and `other`
173
+ # are the same object. Typically, this method is overridden in descendant
174
+ # classes to provide class-specific meaning.
175
+ #
176
+ # Unlike #==, the #equal? method should never be overridden by subclasses as it
177
+ # is used to determine object identity (that is, `a.equal?(b)` if and only if
178
+ # `a` is the same object as `b`):
179
+ #
180
+ # obj = "a"
181
+ # other = obj.dup
182
+ #
183
+ # obj == other #=> true
184
+ # obj.equal? other #=> false
185
+ # obj.equal? obj #=> true
186
+ #
187
+ # The #eql? method returns `true` if `obj` and `other` refer to the same hash
188
+ # key. This is used by Hash to test members for equality. For any pair of
189
+ # objects where #eql? returns `true`, the #hash value of both objects must be
190
+ # equal. So any subclass that overrides #eql? should also override #hash
191
+ # appropriately.
192
+ #
193
+ # For objects of class Object, #eql? is synonymous with #==. Subclasses
194
+ # normally continue this tradition by aliasing #eql? to their overridden #==
195
+ # method, but there are exceptions. Numeric types, for example, perform type
196
+ # conversion across #==, but not across #eql?, so:
197
+ #
198
+ # 1 == 1.0 #=> true
199
+ # 1.eql? 1.0 #=> false
200
+ #
201
+ alias equal? ==
202
+
203
+ # <!--
204
+ # rdoc-file=vm_eval.c
205
+ # - obj.instance_eval(string [, filename [, lineno]] ) -> obj
206
+ # - obj.instance_eval {|obj| block } -> obj
207
+ # -->
208
+ # Evaluates a string containing Ruby source code, or the given block, within the
209
+ # context of the receiver (*obj*). In order to set the context, the variable
210
+ # `self` is set to *obj* while the code is executing, giving the code access to
211
+ # *obj*'s instance variables and private methods.
212
+ #
213
+ # When `instance_eval` is given a block, *obj* is also passed in as the block's
214
+ # only argument.
215
+ #
216
+ # When `instance_eval` is given a `String`, the optional second and third
217
+ # parameters supply a filename and starting line number that are used when
218
+ # reporting compilation errors.
219
+ #
220
+ # class KlassWithSecret
221
+ # def initialize
222
+ # @secret = 99
223
+ # end
224
+ # private
225
+ # def the_secret
226
+ # "Ssssh! The secret is #{@secret}."
227
+ # end
228
+ # end
229
+ # k = KlassWithSecret.new
230
+ # k.instance_eval { @secret } #=> 99
231
+ # k.instance_eval { the_secret } #=> "Ssssh! The secret is 99."
232
+ # k.instance_eval {|obj| obj == self } #=> true
233
+ #
234
+ def instance_eval: (string code, ?string filename, ?int lineno) -> untyped
235
+ | [U] () { (self) [self: self] -> U } -> U
236
+
237
+ # <!--
238
+ # rdoc-file=vm_eval.c
239
+ # - obj.instance_exec(arg...) {|var...| block } -> obj
240
+ # -->
241
+ # Executes the given block within the context of the receiver (*obj*). In order
242
+ # to set the context, the variable `self` is set to *obj* while the code is
243
+ # executing, giving the code access to *obj*'s instance variables. Arguments
244
+ # are passed as block parameters.
245
+ #
246
+ # class KlassWithSecret
247
+ # def initialize
248
+ # @secret = 99
249
+ # end
250
+ # end
251
+ # k = KlassWithSecret.new
252
+ # k.instance_exec(5) {|x| @secret+x } #=> 104
253
+ #
254
+ def instance_exec: [U] (*untyped, **untyped) { (?) [self: self] -> U } -> U
255
+
256
+ # <!--
257
+ # rdoc-file=object.c
258
+ # - BasicObject.new
259
+ # -->
260
+ # Returns a new BasicObject.
261
+ #
262
+ def initialize: () -> void
263
+
264
+ private
265
+
266
+ # <!--
267
+ # rdoc-file=vm_eval.c
268
+ # - obj.method_missing(symbol [, *args] ) -> result
269
+ # -->
270
+ # Invoked by Ruby when *obj* is sent a message it cannot handle. *symbol* is the
271
+ # symbol for the method called, and *args* are any arguments that were passed to
272
+ # it. By default, the interpreter raises an error when this method is called.
273
+ # However, it is possible to override the method to provide more dynamic
274
+ # behavior. If it is decided that a particular method should not be handled,
275
+ # then *super* should be called, so that ancestors can pick up the missing
276
+ # method. The example below creates a class `Roman`, which responds to methods
277
+ # with names consisting of roman numerals, returning the corresponding integer
278
+ # values.
279
+ #
280
+ # class Roman
281
+ # def roman_to_int(str)
282
+ # # ...
283
+ # end
284
+ #
285
+ # def method_missing(symbol, *args)
286
+ # str = symbol.id2name
287
+ # begin
288
+ # roman_to_int(str)
289
+ # rescue
290
+ # super(symbol, *args)
291
+ # end
292
+ # end
293
+ # end
294
+ #
295
+ # r = Roman.new
296
+ # r.iv #=> 4
297
+ # r.xxiii #=> 23
298
+ # r.mm #=> 2000
299
+ # r.foo #=> NoMethodError
300
+ #
301
+ def method_missing: (Symbol, *untyped, **untyped) ?{ (?) -> untyped } -> untyped
302
+
303
+ # <!--
304
+ # rdoc-file=object.c
305
+ # - singleton_method_added(symbol)
306
+ # -->
307
+ # Invoked as a callback whenever a singleton method is added to the receiver.
308
+ #
309
+ # module Chatty
310
+ # def Chatty.singleton_method_added(id)
311
+ # puts "Adding #{id.id2name}"
312
+ # end
313
+ # def self.one() end
314
+ # def two() end
315
+ # def Chatty.three() end
316
+ # end
317
+ #
318
+ # *produces:*
319
+ #
320
+ # Adding singleton_method_added
321
+ # Adding one
322
+ # Adding three
323
+ #
324
+ def singleton_method_added: (Symbol name) -> nil
325
+
326
+ # <!--
327
+ # rdoc-file=object.c
328
+ # - singleton_method_removed(symbol)
329
+ # -->
330
+ # Invoked as a callback whenever a singleton method is removed from the
331
+ # receiver.
332
+ #
333
+ # module Chatty
334
+ # def Chatty.singleton_method_removed(id)
335
+ # puts "Removing #{id.id2name}"
336
+ # end
337
+ # def self.one() end
338
+ # def two() end
339
+ # def Chatty.three() end
340
+ # class << self
341
+ # remove_method :three
342
+ # remove_method :one
343
+ # end
344
+ # end
345
+ #
346
+ # *produces:*
347
+ #
348
+ # Removing three
349
+ # Removing one
350
+ #
351
+ def singleton_method_removed: (Symbol name) -> nil
352
+
353
+ # <!--
354
+ # rdoc-file=object.c
355
+ # - singleton_method_undefined(symbol)
356
+ # -->
357
+ # Invoked as a callback whenever a singleton method is undefined in the
358
+ # receiver.
359
+ #
360
+ # module Chatty
361
+ # def Chatty.singleton_method_undefined(id)
362
+ # puts "Undefining #{id.id2name}"
363
+ # end
364
+ # def Chatty.one() end
365
+ # class << self
366
+ # undef_method(:one)
367
+ # end
368
+ # end
369
+ #
370
+ # *produces:*
371
+ #
372
+ # Undefining one
373
+ #
374
+ def singleton_method_undefined: (Symbol name) -> nil
375
+ end
data/core/binding.rbs ADDED
@@ -0,0 +1,150 @@
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
+ def dup: () -> self
36
+
37
+ # <!--
38
+ # rdoc-file=proc.c
39
+ # - binding.eval(string [, filename [,lineno]]) -> obj
40
+ # -->
41
+ # Evaluates the Ruby expression(s) in *string*, in the *binding*'s context. If
42
+ # the optional *filename* and *lineno* parameters are present, they will be used
43
+ # when reporting syntax errors.
44
+ #
45
+ # def get_binding(param)
46
+ # binding
47
+ # end
48
+ # b = get_binding("hello")
49
+ # b.eval("param") #=> "hello"
50
+ #
51
+ def eval: (string src, ?string filename, ?int lineno) -> untyped
52
+
53
+ # <!--
54
+ # rdoc-file=proc.c
55
+ # - binding.local_variable_defined?(symbol) -> obj
56
+ # -->
57
+ # Returns `true` if a local variable `symbol` exists.
58
+ #
59
+ # def foo
60
+ # a = 1
61
+ # binding.local_variable_defined?(:a) #=> true
62
+ # binding.local_variable_defined?(:b) #=> false
63
+ # end
64
+ #
65
+ # This method is the short version of the following code:
66
+ #
67
+ # binding.eval("defined?(#{symbol}) == 'local-variable'")
68
+ #
69
+ def local_variable_defined?: (interned varname) -> bool
70
+
71
+ # <!--
72
+ # rdoc-file=proc.c
73
+ # - binding.local_variable_get(symbol) -> obj
74
+ # -->
75
+ # Returns the value of the local variable `symbol`.
76
+ #
77
+ # def foo
78
+ # a = 1
79
+ # binding.local_variable_get(:a) #=> 1
80
+ # binding.local_variable_get(:b) #=> NameError
81
+ # end
82
+ #
83
+ # This method is the short version of the following code:
84
+ #
85
+ # binding.eval("#{symbol}")
86
+ #
87
+ def local_variable_get: (interned varname) -> untyped
88
+
89
+ # <!--
90
+ # rdoc-file=proc.c
91
+ # - binding.local_variable_set(symbol, obj) -> obj
92
+ # -->
93
+ # Set local variable named `symbol` as `obj`.
94
+ #
95
+ # def foo
96
+ # a = 1
97
+ # bind = binding
98
+ # bind.local_variable_set(:a, 2) # set existing local variable `a'
99
+ # bind.local_variable_set(:b, 3) # create new local variable `b'
100
+ # # `b' exists only in binding
101
+ #
102
+ # p bind.local_variable_get(:a) #=> 2
103
+ # p bind.local_variable_get(:b) #=> 3
104
+ # p a #=> 2
105
+ # p b #=> NameError
106
+ # end
107
+ #
108
+ # This method behaves similarly to the following code:
109
+ #
110
+ # binding.eval("#{symbol} = #{obj}")
111
+ #
112
+ # if `obj` can be dumped in Ruby code.
113
+ #
114
+ def local_variable_set: [U] (interned varname, U obj) -> U
115
+
116
+ # <!--
117
+ # rdoc-file=proc.c
118
+ # - binding.local_variables -> Array
119
+ # -->
120
+ # Returns the names of the binding's local variables as symbols.
121
+ #
122
+ # def foo
123
+ # a = 1
124
+ # 2.times do |n|
125
+ # binding.local_variables #=> [:a, :n]
126
+ # end
127
+ # end
128
+ #
129
+ # This method is the short version of the following code:
130
+ #
131
+ # binding.eval("local_variables")
132
+ #
133
+ def local_variables: () -> Array[Symbol]
134
+
135
+ # <!--
136
+ # rdoc-file=proc.c
137
+ # - binding.receiver -> object
138
+ # -->
139
+ # Returns the bound receiver of the binding object.
140
+ #
141
+ def receiver: () -> untyped
142
+
143
+ # <!--
144
+ # rdoc-file=proc.c
145
+ # - binding.source_location -> [String, Integer]
146
+ # -->
147
+ # Returns the Ruby source filename and line number of the binding object.
148
+ #
149
+ def source_location: () -> [String, Integer]
150
+ end