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
data/core/complex.rbs ADDED
@@ -0,0 +1,812 @@
1
+ # <!-- rdoc-file=complex.c -->
2
+ # A Complex object houses a pair of values, given when the object is created as
3
+ # either *rectangular coordinates* or *polar coordinates*.
4
+ #
5
+ # ## Rectangular Coordinates
6
+ #
7
+ # The rectangular coordinates of a complex number are called the *real* and
8
+ # *imaginary* parts; see [Complex number
9
+ # definition](https://en.wikipedia.org/wiki/Complex_number#Definition_and_basic_
10
+ # operations).
11
+ #
12
+ # You can create a Complex object from rectangular coordinates with:
13
+ #
14
+ # * A [complex literal](rdoc-ref:syntax/literals.rdoc@Complex+Literals).
15
+ # * Method Complex.rect.
16
+ # * Method Kernel#Complex, either with numeric arguments or with certain
17
+ # string arguments.
18
+ # * Method String#to_c, for certain strings.
19
+ #
20
+ # Note that each of the stored parts may be a an instance one of the classes
21
+ # Complex, Float, Integer, or Rational; they may be retrieved:
22
+ #
23
+ # * Separately, with methods Complex#real and Complex#imaginary.
24
+ # * Together, with method Complex#rect.
25
+ #
26
+ # The corresponding (computed) polar values may be retrieved:
27
+ #
28
+ # * Separately, with methods Complex#abs and Complex#arg.
29
+ # * Together, with method Complex#polar.
30
+ #
31
+ # ## Polar Coordinates
32
+ #
33
+ # The polar coordinates of a complex number are called the *absolute* and
34
+ # *argument* parts; see [Complex polar
35
+ # plane](https://en.wikipedia.org/wiki/Complex_number#Polar_form).
36
+ #
37
+ # In this class, the argument part in expressed
38
+ # [radians](https://en.wikipedia.org/wiki/Radian) (not
39
+ # [degrees](https://en.wikipedia.org/wiki/Degree_(angle))).
40
+ #
41
+ # You can create a Complex object from polar coordinates with:
42
+ #
43
+ # * Method Complex.polar.
44
+ # * Method Kernel#Complex, with certain string arguments.
45
+ # * Method String#to_c, for certain strings.
46
+ #
47
+ # Note that each of the stored parts may be a an instance one of the classes
48
+ # Complex, Float, Integer, or Rational; they may be retrieved:
49
+ #
50
+ # * Separately, with methods Complex#abs and Complex#arg.
51
+ # * Together, with method Complex#polar.
52
+ #
53
+ # The corresponding (computed) rectangular values may be retrieved:
54
+ #
55
+ # * Separately, with methods Complex#real and Complex#imag.
56
+ # * Together, with method Complex#rect.
57
+ #
58
+ # ## What's Here
59
+ #
60
+ # First, what's elsewhere:
61
+ #
62
+ # * Class Complex inherits (directly or indirectly) from classes
63
+ # [Numeric](rdoc-ref:Numeric@What-27s+Here) and
64
+ # [Object](rdoc-ref:Object@What-27s+Here).
65
+ # * Includes (indirectly) module
66
+ # [Comparable](rdoc-ref:Comparable@What-27s+Here).
67
+ #
68
+ # Here, class Complex has methods for:
69
+ #
70
+ # ### Creating Complex Objects
71
+ #
72
+ # * ::polar: Returns a new Complex object based on given polar coordinates.
73
+ # * ::rect (and its alias ::rectangular): Returns a new Complex object based
74
+ # on given rectangular coordinates.
75
+ #
76
+ # ### Querying
77
+ #
78
+ # * #abs (and its alias #magnitude): Returns the absolute value for `self`.
79
+ # * #arg (and its aliases #angle and #phase): Returns the argument (angle) for
80
+ # `self` in radians.
81
+ # * #denominator: Returns the denominator of `self`.
82
+ # * #finite?: Returns whether both <code>self.real</code> and
83
+ # <code>self.image</code> are finite.
84
+ # * #hash: Returns the integer hash value for `self`.
85
+ # * #imag (and its alias #imaginary): Returns the imaginary value for `self`.
86
+ # * #infinite?: Returns whether <code>self.real</code> or
87
+ # <code>self.image</code> is infinite.
88
+ # * #numerator: Returns the numerator of `self`.
89
+ # * #polar: Returns the array <code>[self.abs, self.arg]</code>.
90
+ # * #inspect: Returns a string representation of `self`.
91
+ # * #real: Returns the real value for `self`.
92
+ # * #real?: Returns `false`; for compatibility with Numeric#real?.
93
+ # * #rect (and its alias #rectangular): Returns the array <code>[self.real,
94
+ # self.imag]</code>.
95
+ #
96
+ # ### Comparing
97
+ #
98
+ # * #<=>: Returns whether `self` is less than, equal to, or greater than the
99
+ # given argument.
100
+ # * #==: Returns whether `self` is equal to the given argument.
101
+ #
102
+ # ### Converting
103
+ #
104
+ # * #rationalize: Returns a Rational object whose value is exactly or
105
+ # approximately equivalent to that of <code>self.real</code>.
106
+ # * #to_c: Returns `self`.
107
+ # * #to_d: Returns the value as a BigDecimal object.
108
+ # * #to_f: Returns the value of <code>self.real</code> as a Float, if
109
+ # possible.
110
+ # * #to_i: Returns the value of <code>self.real</code> as an Integer, if
111
+ # possible.
112
+ # * #to_r: Returns the value of <code>self.real</code> as a Rational, if
113
+ # possible.
114
+ # * #to_s: Returns a string representation of `self`.
115
+ #
116
+ # ### Performing Complex Arithmetic
117
+ #
118
+ # * #*: Returns the product of `self` and the given numeric.
119
+ # * #**: Returns `self` raised to power of the given numeric.
120
+ # * #+: Returns the sum of `self` and the given numeric.
121
+ # * #-: Returns the difference of `self` and the given numeric.
122
+ # * #-@: Returns the negation of `self`.
123
+ # * #/: Returns the quotient of `self` and the given numeric.
124
+ # * #abs2: Returns square of the absolute value (magnitude) for `self`.
125
+ # * #conj (and its alias #conjugate): Returns the conjugate of `self`.
126
+ # * #fdiv: Returns <code>Complex.rect(self.real/numeric,
127
+ # self.imag/numeric)</code>.
128
+ #
129
+ # ### Working with JSON
130
+ #
131
+ # * ::json_create: Returns a new Complex object, deserialized from the given
132
+ # serialized hash.
133
+ # * #as_json: Returns a serialized hash constructed from `self`.
134
+ # * #to_json: Returns a JSON string representing `self`.
135
+ #
136
+ # These methods are provided by the [JSON gem](https://github.com/ruby/json). To
137
+ # make these methods available:
138
+ #
139
+ # require 'json/add/complex'
140
+ #
141
+ class Complex < Numeric
142
+ # <!--
143
+ # rdoc-file=complex.c
144
+ # - Complex.polar(abs, arg = 0) -> complex
145
+ # -->
146
+ # Returns a new Complex object formed from the arguments, each of which must be
147
+ # an instance of Numeric, or an instance of one of its subclasses: Complex,
148
+ # Float, Integer, Rational. Argument `arg` is given in radians; see [Polar
149
+ # Coordinates](rdoc-ref:Complex@Polar+Coordinates):
150
+ #
151
+ # Complex.polar(3) # => (3+0i)
152
+ # Complex.polar(3, 2.0) # => (-1.2484405096414273+2.727892280477045i)
153
+ # Complex.polar(-3, -2.0) # => (1.2484405096414273+2.727892280477045i)
154
+ #
155
+ def self.polar: (Numeric, ?Numeric) -> Complex
156
+
157
+ # <!--
158
+ # rdoc-file=complex.c
159
+ # - Complex.rect(real, imag = 0) -> complex
160
+ # -->
161
+ # Returns a new Complex object formed from the arguments, each of which must be
162
+ # an instance of Numeric, or an instance of one of its subclasses: Complex,
163
+ # Float, Integer, Rational; see [Rectangular
164
+ # Coordinates](rdoc-ref:Complex@Rectangular+Coordinates):
165
+ #
166
+ # Complex.rect(3) # => (3+0i)
167
+ # Complex.rect(3, Math::PI) # => (3+3.141592653589793i)
168
+ # Complex.rect(-3, -Math::PI) # => (-3-3.141592653589793i)
169
+ #
170
+ # Complex.rectangular is an alias for Complex.rect.
171
+ #
172
+ def self.rect: (Numeric, ?Numeric) -> Complex
173
+
174
+ # <!--
175
+ # rdoc-file=complex.c
176
+ # - Complex.rect(real, imag = 0) -> complex
177
+ # -->
178
+ # Returns a new Complex object formed from the arguments, each of which must be
179
+ # an instance of Numeric, or an instance of one of its subclasses: Complex,
180
+ # Float, Integer, Rational; see [Rectangular
181
+ # Coordinates](rdoc-ref:Complex@Rectangular+Coordinates):
182
+ #
183
+ # Complex.rect(3) # => (3+0i)
184
+ # Complex.rect(3, Math::PI) # => (3+3.141592653589793i)
185
+ # Complex.rect(-3, -Math::PI) # => (-3-3.141592653589793i)
186
+ #
187
+ # Complex.rectangular is an alias for Complex.rect.
188
+ #
189
+ alias self.rectangular self.rect
190
+
191
+ # <!--
192
+ # rdoc-file=complex.c
193
+ # - self * other -> numeric
194
+ # -->
195
+ # Returns the numeric product of `self` and `other`:
196
+ #
197
+ # Complex.rect(9, 8) * 4 # => (36+32i)
198
+ # Complex.rect(20, 9) * 9.8 # => (196.0+88.2i)
199
+ # Complex.rect(2, 3) * Complex.rect(2, 3) # => (-5+12i)
200
+ # Complex.rect(900) * Complex.rect(1) # => (900+0i)
201
+ # Complex.rect(-2, 9) * Complex.rect(-9, 2) # => (0-85i)
202
+ # Complex.rect(9, 8) * Rational(2, 3) # => ((6/1)+(16/3)*i)
203
+ #
204
+ def *: (Numeric) -> Complex
205
+
206
+ # <!--
207
+ # rdoc-file=complex.c
208
+ # - self ** exponent -> complex
209
+ # -->
210
+ # Returns `self` raised to the power `exponent`:
211
+ #
212
+ # Complex.rect(0, 1) ** 2 # => (-1+0i)
213
+ # Complex.rect(-8) ** Rational(1, 3) # => (1.0000000000000002+1.7320508075688772i)
214
+ #
215
+ def **: (Numeric) -> Complex
216
+
217
+ # <!--
218
+ # rdoc-file=complex.c
219
+ # - self + other -> numeric
220
+ # -->
221
+ # Returns the sum of `self` and `other`:
222
+ #
223
+ # Complex(1, 2) + 0 # => (1+2i)
224
+ # Complex(1, 2) + 1 # => (2+2i)
225
+ # Complex(1, 2) + -1 # => (0+2i)
226
+ #
227
+ # Complex(1, 2) + 1.0 # => (2.0+2i)
228
+ #
229
+ # Complex(1, 2) + Complex(2, 1) # => (3+3i)
230
+ # Complex(1, 2) + Complex(2.0, 1.0) # => (3.0+3.0i)
231
+ #
232
+ # Complex(1, 2) + Rational(1, 1) # => ((2/1)+2i)
233
+ # Complex(1, 2) + Rational(1, 2) # => ((3/2)+2i)
234
+ #
235
+ # For a computation involving Floats, the result may be inexact (see Float#+):
236
+ #
237
+ # Complex(1, 2) + 3.14 # => (4.140000000000001+2i)
238
+ #
239
+ def +: (Numeric) -> Complex
240
+
241
+ # <!--
242
+ # rdoc-file=complex.c
243
+ # - self - other -> complex
244
+ # -->
245
+ # Returns the difference of `self` and `other`:
246
+ #
247
+ # Complex.rect(2, 3) - Complex.rect(2, 3) # => (0+0i)
248
+ # Complex.rect(900) - Complex.rect(1) # => (899+0i)
249
+ # Complex.rect(-2, 9) - Complex.rect(-9, 2) # => (7+7i)
250
+ # Complex.rect(9, 8) - 4 # => (5+8i)
251
+ # Complex.rect(20, 9) - 9.8 # => (10.2+9i)
252
+ #
253
+ def -: (Numeric) -> Complex
254
+
255
+ # <!--
256
+ # rdoc-file=complex.c
257
+ # - -self -> complex
258
+ # -->
259
+ # Returns `self`, negated, which is the negation of each of its parts:
260
+ #
261
+ # -Complex.rect(1, 2) # => (-1-2i)
262
+ # -Complex.rect(-1, -2) # => (1+2i)
263
+ #
264
+ def -@: () -> Complex
265
+
266
+ # <!--
267
+ # rdoc-file=complex.c
268
+ # - self / other -> complex
269
+ # -->
270
+ # Returns the quotient of `self` and `other`:
271
+ #
272
+ # Complex.rect(2, 3) / Complex.rect(2, 3) # => (1+0i)
273
+ # Complex.rect(900) / Complex.rect(1) # => (900+0i)
274
+ # Complex.rect(-2, 9) / Complex.rect(-9, 2) # => ((36/85)-(77/85)*i)
275
+ # Complex.rect(9, 8) / 4 # => ((9/4)+2i)
276
+ # Complex.rect(20, 9) / 9.8 # => (2.0408163265306123+0.9183673469387754i)
277
+ #
278
+ def /: (Numeric) -> Complex
279
+
280
+ def <: (Numeric) -> bot
281
+
282
+ def <=: (Numeric) -> bot
283
+
284
+ # <!--
285
+ # rdoc-file=complex.c
286
+ # - self <=> other -> -1, 0, 1, or nil
287
+ # -->
288
+ # Compares `self` and `other`.
289
+ #
290
+ # Returns:
291
+ #
292
+ # * <code>self.real <=> other.real</code> if both of the following are true:
293
+ #
294
+ # * <code>self.imag == 0</code>.
295
+ # * <code>other.imag == 0</code> (always true if `other` is numeric but
296
+ # not complex).
297
+ #
298
+ # * `nil` otherwise.
299
+ #
300
+ # Examples:
301
+ #
302
+ # Complex.rect(2) <=> 3 # => -1
303
+ # Complex.rect(2) <=> 2 # => 0
304
+ # Complex.rect(2) <=> 1 # => 1
305
+ # Complex.rect(2, 1) <=> 1 # => nil # self.imag not zero.
306
+ # Complex.rect(1) <=> Complex.rect(1, 1) # => nil # object.imag not zero.
307
+ # Complex.rect(1) <=> 'Foo' # => nil # object.imag not defined.
308
+ #
309
+ # Class Complex includes module Comparable, each of whose methods uses
310
+ # Complex#<=> for comparison.
311
+ #
312
+ def <=>: (untyped) -> Integer?
313
+
314
+ # <!--
315
+ # rdoc-file=complex.c
316
+ # - complex == object -> true or false
317
+ # -->
318
+ # Returns `true` if <code>self.real == object.real</code> and <code>self.imag ==
319
+ # object.imag</code>:
320
+ #
321
+ # Complex.rect(2, 3) == Complex.rect(2.0, 3.0) # => true
322
+ #
323
+ def ==: (untyped) -> bool
324
+
325
+ def >: (Numeric) -> bot
326
+
327
+ def >=: (Numeric) -> bot
328
+
329
+ # <!--
330
+ # rdoc-file=complex.c
331
+ # - abs -> float
332
+ # -->
333
+ # Returns the absolute value (magnitude) for `self`; see [polar
334
+ # coordinates](rdoc-ref:Complex@Polar+Coordinates):
335
+ #
336
+ # Complex.polar(-1, 0).abs # => 1.0
337
+ #
338
+ # If `self` was created with [rectangular
339
+ # coordinates](rdoc-ref:Complex@Rectangular+Coordinates), the returned value is
340
+ # computed, and may be inexact:
341
+ #
342
+ # Complex.rectangular(1, 1).abs # => 1.4142135623730951 # The square root of 2.
343
+ #
344
+ def abs: () -> Numeric
345
+
346
+ # <!--
347
+ # rdoc-file=complex.c
348
+ # - abs2 -> float
349
+ # -->
350
+ # Returns square of the absolute value (magnitude) for `self`; see [polar
351
+ # coordinates](rdoc-ref:Complex@Polar+Coordinates):
352
+ #
353
+ # Complex.polar(2, 2).abs2 # => 4.0
354
+ #
355
+ # If `self` was created with [rectangular
356
+ # coordinates](rdoc-ref:Complex@Rectangular+Coordinates), the returned value is
357
+ # computed, and may be inexact:
358
+ #
359
+ # Complex.rectangular(1.0/3, 1.0/3).abs2 # => 0.2222222222222222
360
+ #
361
+ def abs2: () -> Numeric
362
+
363
+ # <!-- rdoc-file=complex.c -->
364
+ # Returns the argument (angle) for `self` in radians; see [polar
365
+ # coordinates](rdoc-ref:Complex@Polar+Coordinates):
366
+ #
367
+ # Complex.polar(3, Math::PI/2).arg # => 1.57079632679489660
368
+ #
369
+ # If `self` was created with [rectangular
370
+ # coordinates](rdoc-ref:Complex@Rectangular+Coordinates), the returned value is
371
+ # computed, and may be inexact:
372
+ #
373
+ # Complex.polar(1, 1.0/3).arg # => 0.33333333333333326
374
+ #
375
+ def angle: () -> Float
376
+
377
+ # <!--
378
+ # rdoc-file=complex.c
379
+ # - arg -> float
380
+ # -->
381
+ # Returns the argument (angle) for `self` in radians; see [polar
382
+ # coordinates](rdoc-ref:Complex@Polar+Coordinates):
383
+ #
384
+ # Complex.polar(3, Math::PI/2).arg # => 1.57079632679489660
385
+ #
386
+ # If `self` was created with [rectangular
387
+ # coordinates](rdoc-ref:Complex@Rectangular+Coordinates), the returned value is
388
+ # computed, and may be inexact:
389
+ #
390
+ # Complex.polar(1, 1.0/3).arg # => 0.33333333333333326
391
+ #
392
+ alias arg angle
393
+
394
+ def ceil: (*untyped) -> bot
395
+
396
+ def coerce: (Numeric) -> [ Complex, Complex ]
397
+
398
+ # <!-- rdoc-file=complex.c -->
399
+ # Returns the conjugate of `self`, <code>Complex.rect(self.imag,
400
+ # self.real)</code>:
401
+ #
402
+ # Complex.rect(1, 2).conj # => (1-2i)
403
+ #
404
+ def conj: () -> self
405
+
406
+ # <!--
407
+ # rdoc-file=complex.c
408
+ # - conj -> complex
409
+ # -->
410
+ # Returns the conjugate of `self`, <code>Complex.rect(self.imag,
411
+ # self.real)</code>:
412
+ #
413
+ # Complex.rect(1, 2).conj # => (1-2i)
414
+ #
415
+ def conjugate: () -> self
416
+
417
+ # <!--
418
+ # rdoc-file=complex.c
419
+ # - denominator -> integer
420
+ # -->
421
+ # Returns the denominator of `self`, which is the [least common
422
+ # multiple](https://en.wikipedia.org/wiki/Least_common_multiple) of
423
+ # <code>self.real.denominator</code> and <code>self.imag.denominator</code>:
424
+ #
425
+ # Complex.rect(Rational(1, 2), Rational(2, 3)).denominator # => 6
426
+ #
427
+ # Note that <code>n.denominator</code> of a non-rational numeric is `1`.
428
+ #
429
+ # Related: Complex#numerator.
430
+ #
431
+ def denominator: () -> Integer
432
+
433
+ def div: (Numeric) -> bot
434
+
435
+ def divmod: (Numeric) -> bot
436
+
437
+ # <!--
438
+ # rdoc-file=complex.c
439
+ # - fdiv(numeric) -> new_complex
440
+ # -->
441
+ # Returns <code>Complex.rect(self.real/numeric, self.imag/numeric)</code>:
442
+ #
443
+ # Complex.rect(11, 22).fdiv(3) # => (3.6666666666666665+7.333333333333333i)
444
+ #
445
+ def fdiv: (Numeric) -> Complex
446
+
447
+ # <!--
448
+ # rdoc-file=complex.c
449
+ # - finite? -> true or false
450
+ # -->
451
+ # Returns `true` if both <code>self.real.finite?</code> and
452
+ # <code>self.imag.finite?</code> are true, `false` otherwise:
453
+ #
454
+ # Complex.rect(1, 1).finite? # => true
455
+ # Complex.rect(Float::INFINITY, 0).finite? # => false
456
+ #
457
+ # Related: Numeric#finite?, Float#finite?.
458
+ #
459
+ def finite?: () -> bool
460
+
461
+ def floor: (?Integer) -> bot
462
+
463
+ # <!--
464
+ # rdoc-file=complex.c
465
+ # - hash -> integer
466
+ # -->
467
+ # Returns the integer hash value for `self`.
468
+ #
469
+ # Two Complex objects created from the same values will have the same hash value
470
+ # (and will compare using #eql?):
471
+ #
472
+ # Complex.rect(1, 2).hash == Complex.rect(1, 2).hash # => true
473
+ #
474
+ def hash: () -> Integer
475
+
476
+ # <!--
477
+ # rdoc-file=numeric.c
478
+ # - i -> complex
479
+ # -->
480
+ # Returns <code>Complex(0, self)</code>:
481
+ #
482
+ # 2.i # => (0+2i)
483
+ # -2.i # => (0-2i)
484
+ # 2.0.i # => (0+2.0i)
485
+ # Rational(1, 2).i # => (0+(1/2)*i)
486
+ # Complex(3, 4).i # Raises NoMethodError.
487
+ #
488
+ %a{annotate:rdoc:copy:Numeric#i}
489
+ def i: () -> bot
490
+
491
+ # <!-- rdoc-file=complex.c -->
492
+ # Returns the imaginary value for `self`:
493
+ #
494
+ # Complex.rect(7).imag # => 0
495
+ # Complex.rect(9, -4).imag # => -4
496
+ #
497
+ # If `self` was created with [polar
498
+ # coordinates](rdoc-ref:Complex@Polar+Coordinates), the returned value is
499
+ # computed, and may be inexact:
500
+ #
501
+ # Complex.polar(1, Math::PI/4).imag # => 0.7071067811865476 # Square root of 2.
502
+ #
503
+ def imag: () -> Numeric
504
+
505
+ # <!--
506
+ # rdoc-file=complex.c
507
+ # - imag -> numeric
508
+ # -->
509
+ # Returns the imaginary value for `self`:
510
+ #
511
+ # Complex.rect(7).imag # => 0
512
+ # Complex.rect(9, -4).imag # => -4
513
+ #
514
+ # If `self` was created with [polar
515
+ # coordinates](rdoc-ref:Complex@Polar+Coordinates), the returned value is
516
+ # computed, and may be inexact:
517
+ #
518
+ # Complex.polar(1, Math::PI/4).imag # => 0.7071067811865476 # Square root of 2.
519
+ #
520
+ def imaginary: () -> Numeric
521
+
522
+ # <!--
523
+ # rdoc-file=complex.c
524
+ # - infinite? -> 1 or nil
525
+ # -->
526
+ # Returns `1` if either <code>self.real.infinite?</code> or
527
+ # <code>self.imag.infinite?</code> is true, `nil` otherwise:
528
+ #
529
+ # Complex.rect(Float::INFINITY, 0).infinite? # => 1
530
+ # Complex.rect(1, 1).infinite? # => nil
531
+ #
532
+ # Related: Numeric#infinite?, Float#infinite?.
533
+ #
534
+ def infinite?: () -> Integer?
535
+
536
+ # <!--
537
+ # rdoc-file=complex.c
538
+ # - inspect -> string
539
+ # -->
540
+ # Returns a string representation of `self`:
541
+ #
542
+ # Complex.rect(2).inspect # => "(2+0i)"
543
+ # Complex.rect(-8, 6).inspect # => "(-8+6i)"
544
+ # Complex.rect(0, Rational(1, 2)).inspect # => "(0+(1/2)*i)"
545
+ # Complex.rect(0, Float::INFINITY).inspect # => "(0+Infinity*i)"
546
+ # Complex.rect(Float::NAN, Float::NAN).inspect # => "(NaN+NaN*i)"
547
+ #
548
+ def inspect: () -> String
549
+
550
+ # <!-- rdoc-file=complex.c -->
551
+ # Returns the absolute value (magnitude) for `self`; see [polar
552
+ # coordinates](rdoc-ref:Complex@Polar+Coordinates):
553
+ #
554
+ # Complex.polar(-1, 0).abs # => 1.0
555
+ #
556
+ # If `self` was created with [rectangular
557
+ # coordinates](rdoc-ref:Complex@Rectangular+Coordinates), the returned value is
558
+ # computed, and may be inexact:
559
+ #
560
+ # Complex.rectangular(1, 1).abs # => 1.4142135623730951 # The square root of 2.
561
+ #
562
+ alias magnitude abs
563
+
564
+ def modulo: (Numeric) -> bot
565
+
566
+ def negative?: () -> bot
567
+
568
+ # <!--
569
+ # rdoc-file=complex.c
570
+ # - numerator -> new_complex
571
+ # -->
572
+ # Returns the Complex object created from the numerators of the real and
573
+ # imaginary parts of `self`, after converting each part to the [lowest common
574
+ # denominator](https://en.wikipedia.org/wiki/Lowest_common_denominator) of the
575
+ # two:
576
+ #
577
+ # c = Complex.rect(Rational(2, 3), Rational(3, 4)) # => ((2/3)+(3/4)*i)
578
+ # c.numerator # => (8+9i)
579
+ #
580
+ # In this example, the lowest common denominator of the two parts is 12; the two
581
+ # converted parts may be thought of as Rational(8, 12) and Rational(9, 12),
582
+ # whose numerators, respectively, are 8 and 9; so the returned value of
583
+ # <code>c.numerator</code> is <code>Complex.rect(8, 9)</code>.
584
+ #
585
+ # Related: Complex#denominator.
586
+ #
587
+ def numerator: () -> Complex
588
+
589
+ # <!-- rdoc-file=complex.c -->
590
+ # Returns the argument (angle) for `self` in radians; see [polar
591
+ # coordinates](rdoc-ref:Complex@Polar+Coordinates):
592
+ #
593
+ # Complex.polar(3, Math::PI/2).arg # => 1.57079632679489660
594
+ #
595
+ # If `self` was created with [rectangular
596
+ # coordinates](rdoc-ref:Complex@Rectangular+Coordinates), the returned value is
597
+ # computed, and may be inexact:
598
+ #
599
+ # Complex.polar(1, 1.0/3).arg # => 0.33333333333333326
600
+ #
601
+ alias phase angle
602
+
603
+ # <!--
604
+ # rdoc-file=complex.c
605
+ # - polar -> array
606
+ # -->
607
+ # Returns the array <code>[self.abs, self.arg]</code>:
608
+ #
609
+ # Complex.polar(1, 2).polar # => [1.0, 2.0]
610
+ #
611
+ # See [Polar Coordinates](rdoc-ref:Complex@Polar+Coordinates).
612
+ #
613
+ # If `self` was created with [rectangular
614
+ # coordinates](rdoc-ref:Complex@Rectangular+Coordinates), the returned value is
615
+ # computed, and may be inexact:
616
+ #
617
+ # Complex.rect(1, 1).polar # => [1.4142135623730951, 0.7853981633974483]
618
+ #
619
+ def polar: () -> [ Numeric, Float ]
620
+
621
+ def positive?: () -> bot
622
+
623
+ # <!--
624
+ # rdoc-file=complex.c
625
+ # - self / other -> complex
626
+ # -->
627
+ # Returns the quotient of `self` and `other`:
628
+ #
629
+ # Complex.rect(2, 3) / Complex.rect(2, 3) # => (1+0i)
630
+ # Complex.rect(900) / Complex.rect(1) # => (900+0i)
631
+ # Complex.rect(-2, 9) / Complex.rect(-9, 2) # => ((36/85)-(77/85)*i)
632
+ # Complex.rect(9, 8) / 4 # => ((9/4)+2i)
633
+ # Complex.rect(20, 9) / 9.8 # => (2.0408163265306123+0.9183673469387754i)
634
+ #
635
+ def quo: (Numeric) -> Complex
636
+
637
+ # <!--
638
+ # rdoc-file=complex.c
639
+ # - rationalize(epsilon = nil) -> rational
640
+ # -->
641
+ # Returns a Rational object whose value is exactly or approximately equivalent
642
+ # to that of <code>self.real</code>.
643
+ #
644
+ # With no argument `epsilon` given, returns a Rational object whose value is
645
+ # exactly equal to that of <code>self.real.rationalize</code>:
646
+ #
647
+ # Complex.rect(1, 0).rationalize # => (1/1)
648
+ # Complex.rect(1, Rational(0, 1)).rationalize # => (1/1)
649
+ # Complex.rect(3.14159, 0).rationalize # => (314159/100000)
650
+ #
651
+ # With argument `epsilon` given, returns a Rational object whose value is
652
+ # exactly or approximately equal to that of <code>self.real</code> to the given
653
+ # precision:
654
+ #
655
+ # Complex.rect(3.14159, 0).rationalize(0.1) # => (16/5)
656
+ # Complex.rect(3.14159, 0).rationalize(0.01) # => (22/7)
657
+ # Complex.rect(3.14159, 0).rationalize(0.001) # => (201/64)
658
+ # Complex.rect(3.14159, 0).rationalize(0.0001) # => (333/106)
659
+ # Complex.rect(3.14159, 0).rationalize(0.00001) # => (355/113)
660
+ # Complex.rect(3.14159, 0).rationalize(0.000001) # => (7433/2366)
661
+ # Complex.rect(3.14159, 0).rationalize(0.0000001) # => (9208/2931)
662
+ # Complex.rect(3.14159, 0).rationalize(0.00000001) # => (47460/15107)
663
+ # Complex.rect(3.14159, 0).rationalize(0.000000001) # => (76149/24239)
664
+ # Complex.rect(3.14159, 0).rationalize(0.0000000001) # => (314159/100000)
665
+ # Complex.rect(3.14159, 0).rationalize(0.0) # => (3537115888337719/1125899906842624)
666
+ #
667
+ # Related: Complex#to_r.
668
+ #
669
+ def rationalize: (?Numeric eps) -> Rational
670
+
671
+ # <!--
672
+ # rdoc-file=complex.c
673
+ # - real -> numeric
674
+ # -->
675
+ # Returns the real value for `self`:
676
+ #
677
+ # Complex.rect(7).real # => 7
678
+ # Complex.rect(9, -4).real # => 9
679
+ #
680
+ # If `self` was created with [polar
681
+ # coordinates](rdoc-ref:Complex@Polar+Coordinates), the returned value is
682
+ # computed, and may be inexact:
683
+ #
684
+ # Complex.polar(1, Math::PI/4).real # => 0.7071067811865476 # Square root of 2.
685
+ #
686
+ def real: () -> Numeric
687
+
688
+ # <!--
689
+ # rdoc-file=complex.c
690
+ # - real? -> false
691
+ # -->
692
+ # Returns `false`; for compatibility with Numeric#real?.
693
+ #
694
+ def real?: () -> false
695
+
696
+ # <!-- rdoc-file=complex.c -->
697
+ # Returns a new Complex object formed from the arguments, each of which must be
698
+ # an instance of Numeric, or an instance of one of its subclasses: Complex,
699
+ # Float, Integer, Rational; see [Rectangular
700
+ # Coordinates](rdoc-ref:Complex@Rectangular+Coordinates):
701
+ #
702
+ # Complex.rect(3) # => (3+0i)
703
+ # Complex.rect(3, Math::PI) # => (3+3.141592653589793i)
704
+ # Complex.rect(-3, -Math::PI) # => (-3-3.141592653589793i)
705
+ #
706
+ # Complex.rectangular is an alias for Complex.rect.
707
+ #
708
+ def rect: () -> [ Numeric, Numeric ]
709
+
710
+ # <!--
711
+ # rdoc-file=complex.c
712
+ # - rect -> array
713
+ # -->
714
+ # Returns the array <code>[self.real, self.imag]</code>:
715
+ #
716
+ # Complex.rect(1, 2).rect # => [1, 2]
717
+ #
718
+ # See [Rectangular Coordinates](rdoc-ref:Complex@Rectangular+Coordinates).
719
+ #
720
+ # If `self` was created with [polar
721
+ # coordinates](rdoc-ref:Complex@Polar+Coordinates), the returned value is
722
+ # computed, and may be inexact:
723
+ #
724
+ # Complex.polar(1.0, 1.0).rect # => [0.5403023058681398, 0.8414709848078965]
725
+ #
726
+ # Complex#rectangular is an alias for Complex#rect.
727
+ #
728
+ alias rectangular rect
729
+
730
+ def reminder: (Numeric) -> bot
731
+
732
+ def round: (*untyped) -> bot
733
+
734
+ def step: (*untyped) ?{ (*untyped) -> untyped } -> bot
735
+
736
+ # <!--
737
+ # rdoc-file=complex.c
738
+ # - to_c -> self
739
+ # -->
740
+ # Returns `self`.
741
+ #
742
+ def to_c: () -> Complex
743
+
744
+ # <!--
745
+ # rdoc-file=complex.c
746
+ # - to_f -> float
747
+ # -->
748
+ # Returns the value of <code>self.real</code> as a Float, if possible:
749
+ #
750
+ # Complex.rect(1, 0).to_f # => 1.0
751
+ # Complex.rect(1, Rational(0, 1)).to_f # => 1.0
752
+ #
753
+ # Raises RangeError if <code>self.imag</code> is not exactly zero (either
754
+ # <code>Integer(0)</code> or <code>Rational(0, _n_)</code>).
755
+ #
756
+ def to_f: () -> Float
757
+
758
+ # <!--
759
+ # rdoc-file=complex.c
760
+ # - to_i -> integer
761
+ # -->
762
+ # Returns the value of <code>self.real</code> as an Integer, if possible:
763
+ #
764
+ # Complex.rect(1, 0).to_i # => 1
765
+ # Complex.rect(1, Rational(0, 1)).to_i # => 1
766
+ #
767
+ # Raises RangeError if <code>self.imag</code> is not exactly zero (either
768
+ # <code>Integer(0)</code> or <code>Rational(0, _n_)</code>).
769
+ #
770
+ def to_i: () -> Integer
771
+
772
+ # <!--
773
+ # rdoc-file=complex.c
774
+ # - to_r -> rational
775
+ # -->
776
+ # Returns the value of <code>self.real</code> as a Rational, if possible:
777
+ #
778
+ # Complex.rect(1, 0).to_r # => (1/1)
779
+ # Complex.rect(1, Rational(0, 1)).to_r # => (1/1)
780
+ # Complex.rect(1, 0.0).to_r # => (1/1)
781
+ #
782
+ # Raises RangeError if <code>self.imag</code> is not exactly zero (either
783
+ # <code>Integer(0)</code> or <code>Rational(0, _n_)</code>) and
784
+ # <code>self.imag.to_r</code> is not exactly zero.
785
+ #
786
+ # Related: Complex#rationalize.
787
+ #
788
+ def to_r: () -> Rational
789
+
790
+ # <!--
791
+ # rdoc-file=complex.c
792
+ # - to_s -> string
793
+ # -->
794
+ # Returns a string representation of `self`:
795
+ #
796
+ # Complex.rect(2).to_s # => "2+0i"
797
+ # Complex.rect(-8, 6).to_s # => "-8+6i"
798
+ # Complex.rect(0, Rational(1, 2)).to_s # => "0+1/2i"
799
+ # Complex.rect(0, Float::INFINITY).to_s # => "0+Infinity*i"
800
+ # Complex.rect(Float::NAN, Float::NAN).to_s # => "NaN+NaN*i"
801
+ #
802
+ def to_s: () -> String
803
+
804
+ def truncate: (?Integer) -> bot
805
+ end
806
+
807
+ # <!-- rdoc-file=complex.c -->
808
+ # Equivalent to <code>Complex.rect(0, 1)</code>:
809
+ #
810
+ # Complex::I # => (0+1i)
811
+ #
812
+ Complex::I: Complex