rbs-relaxed 3.9.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (484) hide show
  1. checksums.yaml +7 -0
  2. data/.github/dependabot.yml +22 -0
  3. data/.github/workflows/comments.yml +35 -0
  4. data/.github/workflows/dependabot.yml +30 -0
  5. data/.github/workflows/ruby.yml +82 -0
  6. data/.github/workflows/typecheck.yml +38 -0
  7. data/.github/workflows/windows.yml +43 -0
  8. data/.gitignore +23 -0
  9. data/.rubocop.yml +68 -0
  10. data/BSDL +22 -0
  11. data/CHANGELOG.md +1868 -0
  12. data/COPYING +56 -0
  13. data/README.md +203 -0
  14. data/Rakefile +417 -0
  15. data/Steepfile +44 -0
  16. data/config.yml +313 -0
  17. data/core/array.rbs +4062 -0
  18. data/core/basic_object.rbs +375 -0
  19. data/core/binding.rbs +150 -0
  20. data/core/builtin.rbs +277 -0
  21. data/core/class.rbs +220 -0
  22. data/core/comparable.rbs +171 -0
  23. data/core/complex.rbs +786 -0
  24. data/core/constants.rbs +96 -0
  25. data/core/data.rbs +415 -0
  26. data/core/dir.rbs +981 -0
  27. data/core/encoding.rbs +1371 -0
  28. data/core/enumerable.rbs +2405 -0
  29. data/core/enumerator/product.rbs +92 -0
  30. data/core/enumerator.rbs +630 -0
  31. data/core/env.rbs +6 -0
  32. data/core/errno.rbs +673 -0
  33. data/core/errors.rbs +760 -0
  34. data/core/exception.rbs +485 -0
  35. data/core/false_class.rbs +82 -0
  36. data/core/fiber.rbs +550 -0
  37. data/core/fiber_error.rbs +11 -0
  38. data/core/file.rbs +2936 -0
  39. data/core/file_test.rbs +331 -0
  40. data/core/float.rbs +1151 -0
  41. data/core/gc.rbs +644 -0
  42. data/core/global_variables.rbs +184 -0
  43. data/core/hash.rbs +1861 -0
  44. data/core/integer.rbs +1413 -0
  45. data/core/io/buffer.rbs +984 -0
  46. data/core/io/wait.rbs +70 -0
  47. data/core/io.rbs +3406 -0
  48. data/core/kernel.rbs +3096 -0
  49. data/core/marshal.rbs +207 -0
  50. data/core/match_data.rbs +635 -0
  51. data/core/math.rbs +729 -0
  52. data/core/method.rbs +386 -0
  53. data/core/module.rbs +1704 -0
  54. data/core/nil_class.rbs +209 -0
  55. data/core/numeric.rbs +818 -0
  56. data/core/object.rbs +110 -0
  57. data/core/object_space/weak_key_map.rbs +166 -0
  58. data/core/object_space.rbs +190 -0
  59. data/core/proc.rbs +868 -0
  60. data/core/process.rbs +2296 -0
  61. data/core/ractor.rbs +1068 -0
  62. data/core/random.rbs +237 -0
  63. data/core/range.rbs +1107 -0
  64. data/core/rational.rbs +531 -0
  65. data/core/rb_config.rbs +88 -0
  66. data/core/rbs/unnamed/argf.rbs +1229 -0
  67. data/core/rbs/unnamed/env_class.rbs +1209 -0
  68. data/core/rbs/unnamed/random.rbs +293 -0
  69. data/core/refinement.rbs +59 -0
  70. data/core/regexp.rbs +1930 -0
  71. data/core/ruby_vm.rbs +765 -0
  72. data/core/rubygems/basic_specification.rbs +6 -0
  73. data/core/rubygems/config_file.rbs +38 -0
  74. data/core/rubygems/dependency_installer.rbs +6 -0
  75. data/core/rubygems/errors.rbs +176 -0
  76. data/core/rubygems/installer.rbs +15 -0
  77. data/core/rubygems/path_support.rbs +6 -0
  78. data/core/rubygems/platform.rbs +7 -0
  79. data/core/rubygems/request_set.rbs +49 -0
  80. data/core/rubygems/requirement.rbs +148 -0
  81. data/core/rubygems/rubygems.rbs +1171 -0
  82. data/core/rubygems/source_list.rbs +15 -0
  83. data/core/rubygems/specification.rbs +23 -0
  84. data/core/rubygems/stream_ui.rbs +5 -0
  85. data/core/rubygems/uninstaller.rbs +10 -0
  86. data/core/rubygems/version.rbs +294 -0
  87. data/core/set.rbs +621 -0
  88. data/core/signal.rbs +100 -0
  89. data/core/string.rbs +3583 -0
  90. data/core/struct.rbs +667 -0
  91. data/core/symbol.rbs +475 -0
  92. data/core/thread.rbs +1765 -0
  93. data/core/thread_group.rbs +79 -0
  94. data/core/time.rbs +1762 -0
  95. data/core/trace_point.rbs +477 -0
  96. data/core/true_class.rbs +98 -0
  97. data/core/unbound_method.rbs +329 -0
  98. data/core/warning.rbs +87 -0
  99. data/docs/CONTRIBUTING.md +106 -0
  100. data/docs/architecture.md +110 -0
  101. data/docs/collection.md +192 -0
  102. data/docs/data_and_struct.md +86 -0
  103. data/docs/gem.md +57 -0
  104. data/docs/rbs_by_example.md +309 -0
  105. data/docs/repo.md +125 -0
  106. data/docs/sigs.md +167 -0
  107. data/docs/stdlib.md +147 -0
  108. data/docs/syntax.md +910 -0
  109. data/docs/tools.md +17 -0
  110. data/exe/rbs +7 -0
  111. data/ext/rbs_extension/extconf.rb +15 -0
  112. data/ext/rbs_extension/lexer.c +2728 -0
  113. data/ext/rbs_extension/lexer.h +179 -0
  114. data/ext/rbs_extension/lexer.re +147 -0
  115. data/ext/rbs_extension/lexstate.c +175 -0
  116. data/ext/rbs_extension/location.c +325 -0
  117. data/ext/rbs_extension/location.h +85 -0
  118. data/ext/rbs_extension/main.c +33 -0
  119. data/ext/rbs_extension/parser.c +2973 -0
  120. data/ext/rbs_extension/parser.h +18 -0
  121. data/ext/rbs_extension/parserstate.c +397 -0
  122. data/ext/rbs_extension/parserstate.h +163 -0
  123. data/ext/rbs_extension/rbs_extension.h +31 -0
  124. data/ext/rbs_extension/unescape.c +32 -0
  125. data/goodcheck.yml +91 -0
  126. data/include/rbs/constants.h +82 -0
  127. data/include/rbs/ruby_objs.h +72 -0
  128. data/include/rbs/util/rbs_constant_pool.h +219 -0
  129. data/include/rbs.h +7 -0
  130. data/lib/rbs/ancestor_graph.rb +92 -0
  131. data/lib/rbs/annotate/annotations.rb +199 -0
  132. data/lib/rbs/annotate/formatter.rb +92 -0
  133. data/lib/rbs/annotate/rdoc_annotator.rb +400 -0
  134. data/lib/rbs/annotate/rdoc_source.rb +131 -0
  135. data/lib/rbs/annotate.rb +8 -0
  136. data/lib/rbs/ast/annotation.rb +29 -0
  137. data/lib/rbs/ast/comment.rb +29 -0
  138. data/lib/rbs/ast/declarations.rb +467 -0
  139. data/lib/rbs/ast/directives.rb +49 -0
  140. data/lib/rbs/ast/members.rb +451 -0
  141. data/lib/rbs/ast/type_param.rb +225 -0
  142. data/lib/rbs/ast/visitor.rb +137 -0
  143. data/lib/rbs/buffer.rb +67 -0
  144. data/lib/rbs/builtin_names.rb +58 -0
  145. data/lib/rbs/cli/colored_io.rb +48 -0
  146. data/lib/rbs/cli/diff.rb +83 -0
  147. data/lib/rbs/cli/validate.rb +357 -0
  148. data/lib/rbs/cli.rb +1223 -0
  149. data/lib/rbs/collection/cleaner.rb +38 -0
  150. data/lib/rbs/collection/config/lockfile.rb +92 -0
  151. data/lib/rbs/collection/config/lockfile_generator.rb +218 -0
  152. data/lib/rbs/collection/config.rb +81 -0
  153. data/lib/rbs/collection/installer.rb +32 -0
  154. data/lib/rbs/collection/sources/base.rb +14 -0
  155. data/lib/rbs/collection/sources/git.rb +258 -0
  156. data/lib/rbs/collection/sources/local.rb +81 -0
  157. data/lib/rbs/collection/sources/rubygems.rb +48 -0
  158. data/lib/rbs/collection/sources/stdlib.rb +50 -0
  159. data/lib/rbs/collection/sources.rb +38 -0
  160. data/lib/rbs/collection.rb +16 -0
  161. data/lib/rbs/constant.rb +28 -0
  162. data/lib/rbs/definition.rb +401 -0
  163. data/lib/rbs/definition_builder/ancestor_builder.rb +620 -0
  164. data/lib/rbs/definition_builder/method_builder.rb +254 -0
  165. data/lib/rbs/definition_builder.rb +845 -0
  166. data/lib/rbs/diff.rb +125 -0
  167. data/lib/rbs/environment/use_map.rb +77 -0
  168. data/lib/rbs/environment.rb +829 -0
  169. data/lib/rbs/environment_loader.rb +173 -0
  170. data/lib/rbs/environment_walker.rb +155 -0
  171. data/lib/rbs/errors.rb +645 -0
  172. data/lib/rbs/factory.rb +18 -0
  173. data/lib/rbs/file_finder.rb +28 -0
  174. data/lib/rbs/location_aux.rb +138 -0
  175. data/lib/rbs/locator.rb +243 -0
  176. data/lib/rbs/method_type.rb +143 -0
  177. data/lib/rbs/namespace.rb +125 -0
  178. data/lib/rbs/parser/lex_result.rb +15 -0
  179. data/lib/rbs/parser/token.rb +23 -0
  180. data/lib/rbs/parser_aux.rb +114 -0
  181. data/lib/rbs/prototype/helpers.rb +140 -0
  182. data/lib/rbs/prototype/node_usage.rb +99 -0
  183. data/lib/rbs/prototype/rb.rb +840 -0
  184. data/lib/rbs/prototype/rbi.rb +641 -0
  185. data/lib/rbs/prototype/runtime/helpers.rb +59 -0
  186. data/lib/rbs/prototype/runtime/reflection.rb +19 -0
  187. data/lib/rbs/prototype/runtime/value_object_generator.rb +279 -0
  188. data/lib/rbs/prototype/runtime.rb +667 -0
  189. data/lib/rbs/repository.rb +127 -0
  190. data/lib/rbs/resolver/constant_resolver.rb +219 -0
  191. data/lib/rbs/resolver/type_name_resolver.rb +91 -0
  192. data/lib/rbs/sorter.rb +198 -0
  193. data/lib/rbs/substitution.rb +83 -0
  194. data/lib/rbs/subtractor.rb +201 -0
  195. data/lib/rbs/test/errors.rb +80 -0
  196. data/lib/rbs/test/guaranteed.rb +30 -0
  197. data/lib/rbs/test/hook.rb +212 -0
  198. data/lib/rbs/test/observer.rb +19 -0
  199. data/lib/rbs/test/setup.rb +84 -0
  200. data/lib/rbs/test/setup_helper.rb +50 -0
  201. data/lib/rbs/test/tester.rb +167 -0
  202. data/lib/rbs/test/type_check.rb +435 -0
  203. data/lib/rbs/test.rb +112 -0
  204. data/lib/rbs/type_alias_dependency.rb +100 -0
  205. data/lib/rbs/type_alias_regularity.rb +126 -0
  206. data/lib/rbs/type_name.rb +109 -0
  207. data/lib/rbs/types.rb +1596 -0
  208. data/lib/rbs/unit_test/convertibles.rb +176 -0
  209. data/lib/rbs/unit_test/spy.rb +138 -0
  210. data/lib/rbs/unit_test/type_assertions.rb +347 -0
  211. data/lib/rbs/unit_test/with_aliases.rb +143 -0
  212. data/lib/rbs/unit_test.rb +6 -0
  213. data/lib/rbs/validator.rb +186 -0
  214. data/lib/rbs/variance_calculator.rb +189 -0
  215. data/lib/rbs/vendorer.rb +71 -0
  216. data/lib/rbs/version.rb +5 -0
  217. data/lib/rbs/writer.rb +424 -0
  218. data/lib/rbs.rb +94 -0
  219. data/lib/rdoc/discover.rb +20 -0
  220. data/lib/rdoc_plugin/parser.rb +163 -0
  221. data/rbs-relaxed.gemspec +48 -0
  222. data/schema/annotation.json +14 -0
  223. data/schema/comment.json +26 -0
  224. data/schema/decls.json +326 -0
  225. data/schema/function.json +87 -0
  226. data/schema/location.json +56 -0
  227. data/schema/members.json +266 -0
  228. data/schema/methodType.json +50 -0
  229. data/schema/typeParam.json +36 -0
  230. data/schema/types.json +317 -0
  231. data/sig/ancestor_builder.rbs +163 -0
  232. data/sig/ancestor_graph.rbs +60 -0
  233. data/sig/annotate/annotations.rbs +102 -0
  234. data/sig/annotate/formatter.rbs +24 -0
  235. data/sig/annotate/rdoc_annotater.rbs +82 -0
  236. data/sig/annotate/rdoc_source.rbs +30 -0
  237. data/sig/annotation.rbs +27 -0
  238. data/sig/buffer.rbs +32 -0
  239. data/sig/builtin_names.rbs +44 -0
  240. data/sig/cli/colored_io.rbs +15 -0
  241. data/sig/cli/diff.rbs +21 -0
  242. data/sig/cli/validate.rbs +43 -0
  243. data/sig/cli.rbs +87 -0
  244. data/sig/collection/cleaner.rbs +13 -0
  245. data/sig/collection/config/lockfile.rbs +74 -0
  246. data/sig/collection/config/lockfile_generator.rbs +66 -0
  247. data/sig/collection/config.rbs +46 -0
  248. data/sig/collection/installer.rbs +17 -0
  249. data/sig/collection/sources.rbs +214 -0
  250. data/sig/collection.rbs +4 -0
  251. data/sig/comment.rbs +26 -0
  252. data/sig/constant.rbs +21 -0
  253. data/sig/declarations.rbs +267 -0
  254. data/sig/definition.rbs +173 -0
  255. data/sig/definition_builder.rbs +165 -0
  256. data/sig/diff.rbs +28 -0
  257. data/sig/directives.rbs +77 -0
  258. data/sig/environment.rbs +279 -0
  259. data/sig/environment_loader.rbs +111 -0
  260. data/sig/environment_walker.rbs +65 -0
  261. data/sig/errors.rbs +405 -0
  262. data/sig/factory.rbs +5 -0
  263. data/sig/file_finder.rbs +28 -0
  264. data/sig/location.rbs +110 -0
  265. data/sig/locator.rbs +58 -0
  266. data/sig/manifest.yaml +7 -0
  267. data/sig/members.rbs +258 -0
  268. data/sig/method_builder.rbs +84 -0
  269. data/sig/method_types.rbs +58 -0
  270. data/sig/namespace.rbs +146 -0
  271. data/sig/parser.rbs +100 -0
  272. data/sig/prototype/helpers.rbs +27 -0
  273. data/sig/prototype/node_usage.rbs +20 -0
  274. data/sig/prototype/rb.rbs +96 -0
  275. data/sig/prototype/rbi.rbs +75 -0
  276. data/sig/prototype/runtime.rbs +182 -0
  277. data/sig/rbs.rbs +21 -0
  278. data/sig/rdoc/rbs.rbs +67 -0
  279. data/sig/repository.rbs +85 -0
  280. data/sig/resolver/constant_resolver.rbs +92 -0
  281. data/sig/resolver/context.rbs +34 -0
  282. data/sig/resolver/type_name_resolver.rbs +35 -0
  283. data/sig/shims/bundler.rbs +38 -0
  284. data/sig/shims/enumerable.rbs +5 -0
  285. data/sig/shims/rubygems.rbs +19 -0
  286. data/sig/sorter.rbs +41 -0
  287. data/sig/substitution.rbs +48 -0
  288. data/sig/subtractor.rbs +37 -0
  289. data/sig/test/errors.rbs +52 -0
  290. data/sig/test/guranteed.rbs +9 -0
  291. data/sig/test/type_check.rbs +19 -0
  292. data/sig/test.rbs +82 -0
  293. data/sig/type_alias_dependency.rbs +53 -0
  294. data/sig/type_alias_regularity.rbs +98 -0
  295. data/sig/type_param.rbs +110 -0
  296. data/sig/typename.rbs +79 -0
  297. data/sig/types.rbs +579 -0
  298. data/sig/unit_test/convertibles.rbs +154 -0
  299. data/sig/unit_test/spy.rbs +30 -0
  300. data/sig/unit_test/type_assertions.rbs +196 -0
  301. data/sig/unit_test/with_aliases.rbs +136 -0
  302. data/sig/use_map.rbs +35 -0
  303. data/sig/util.rbs +9 -0
  304. data/sig/validator.rbs +63 -0
  305. data/sig/variance_calculator.rbs +87 -0
  306. data/sig/vendorer.rbs +51 -0
  307. data/sig/version.rbs +3 -0
  308. data/sig/visitor.rbs +47 -0
  309. data/sig/writer.rbs +127 -0
  310. data/src/constants.c +153 -0
  311. data/src/ruby_objs.c +795 -0
  312. data/src/util/rbs_constant_pool.c +342 -0
  313. data/stdlib/abbrev/0/abbrev.rbs +66 -0
  314. data/stdlib/abbrev/0/array.rbs +26 -0
  315. data/stdlib/base64/0/base64.rbs +355 -0
  316. data/stdlib/benchmark/0/benchmark.rbs +452 -0
  317. data/stdlib/bigdecimal/0/big_decimal.rbs +1629 -0
  318. data/stdlib/bigdecimal-math/0/big_math.rbs +119 -0
  319. data/stdlib/bigdecimal-math/0/manifest.yaml +2 -0
  320. data/stdlib/cgi/0/core.rbs +1285 -0
  321. data/stdlib/cgi/0/manifest.yaml +3 -0
  322. data/stdlib/coverage/0/coverage.rbs +263 -0
  323. data/stdlib/csv/0/csv.rbs +3776 -0
  324. data/stdlib/csv/0/manifest.yaml +3 -0
  325. data/stdlib/date/0/date.rbs +1585 -0
  326. data/stdlib/date/0/date_time.rbs +616 -0
  327. data/stdlib/date/0/time.rbs +26 -0
  328. data/stdlib/dbm/0/dbm.rbs +421 -0
  329. data/stdlib/delegate/0/delegator.rbs +184 -0
  330. data/stdlib/delegate/0/kernel.rbs +47 -0
  331. data/stdlib/delegate/0/simple_delegator.rbs +96 -0
  332. data/stdlib/did_you_mean/0/did_you_mean.rbs +343 -0
  333. data/stdlib/digest/0/digest.rbs +577 -0
  334. data/stdlib/erb/0/erb.rbs +532 -0
  335. data/stdlib/etc/0/etc.rbs +865 -0
  336. data/stdlib/fileutils/0/fileutils.rbs +1734 -0
  337. data/stdlib/find/0/find.rbs +49 -0
  338. data/stdlib/forwardable/0/forwardable.rbs +268 -0
  339. data/stdlib/io-console/0/io-console.rbs +414 -0
  340. data/stdlib/ipaddr/0/ipaddr.rbs +428 -0
  341. data/stdlib/json/0/json.rbs +1916 -0
  342. data/stdlib/kconv/0/kconv.rbs +166 -0
  343. data/stdlib/logger/0/formatter.rbs +45 -0
  344. data/stdlib/logger/0/log_device.rbs +100 -0
  345. data/stdlib/logger/0/logger.rbs +796 -0
  346. data/stdlib/logger/0/manifest.yaml +2 -0
  347. data/stdlib/logger/0/period.rbs +17 -0
  348. data/stdlib/logger/0/severity.rbs +34 -0
  349. data/stdlib/minitest/0/kernel.rbs +42 -0
  350. data/stdlib/minitest/0/minitest/abstract_reporter.rbs +52 -0
  351. data/stdlib/minitest/0/minitest/assertion.rbs +17 -0
  352. data/stdlib/minitest/0/minitest/assertions.rbs +590 -0
  353. data/stdlib/minitest/0/minitest/backtrace_filter.rbs +23 -0
  354. data/stdlib/minitest/0/minitest/bench_spec.rbs +102 -0
  355. data/stdlib/minitest/0/minitest/benchmark.rbs +259 -0
  356. data/stdlib/minitest/0/minitest/composite_reporter.rbs +25 -0
  357. data/stdlib/minitest/0/minitest/compress.rbs +13 -0
  358. data/stdlib/minitest/0/minitest/error_on_warning.rbs +3 -0
  359. data/stdlib/minitest/0/minitest/expectation.rbs +2 -0
  360. data/stdlib/minitest/0/minitest/expectations.rbs +21 -0
  361. data/stdlib/minitest/0/minitest/guard.rbs +64 -0
  362. data/stdlib/minitest/0/minitest/mock.rbs +64 -0
  363. data/stdlib/minitest/0/minitest/parallel/executor.rbs +46 -0
  364. data/stdlib/minitest/0/minitest/parallel/test/class_methods.rbs +5 -0
  365. data/stdlib/minitest/0/minitest/parallel/test.rbs +3 -0
  366. data/stdlib/minitest/0/minitest/parallel.rbs +2 -0
  367. data/stdlib/minitest/0/minitest/pride_io.rbs +62 -0
  368. data/stdlib/minitest/0/minitest/pride_lol.rbs +19 -0
  369. data/stdlib/minitest/0/minitest/progress_reporter.rbs +11 -0
  370. data/stdlib/minitest/0/minitest/reportable.rbs +53 -0
  371. data/stdlib/minitest/0/minitest/reporter.rbs +5 -0
  372. data/stdlib/minitest/0/minitest/result.rbs +28 -0
  373. data/stdlib/minitest/0/minitest/runnable.rbs +163 -0
  374. data/stdlib/minitest/0/minitest/skip.rbs +6 -0
  375. data/stdlib/minitest/0/minitest/spec/dsl/instance_methods.rbs +48 -0
  376. data/stdlib/minitest/0/minitest/spec/dsl.rbs +129 -0
  377. data/stdlib/minitest/0/minitest/spec.rbs +11 -0
  378. data/stdlib/minitest/0/minitest/statistics_reporter.rbs +81 -0
  379. data/stdlib/minitest/0/minitest/summary_reporter.rbs +18 -0
  380. data/stdlib/minitest/0/minitest/test/lifecycle_hooks.rbs +92 -0
  381. data/stdlib/minitest/0/minitest/test.rbs +69 -0
  382. data/stdlib/minitest/0/minitest/unexpected_error.rbs +12 -0
  383. data/stdlib/minitest/0/minitest/unexpected_warning.rbs +6 -0
  384. data/stdlib/minitest/0/minitest/unit/test_case.rbs +3 -0
  385. data/stdlib/minitest/0/minitest/unit.rbs +4 -0
  386. data/stdlib/minitest/0/minitest.rbs +115 -0
  387. data/stdlib/monitor/0/monitor.rbs +363 -0
  388. data/stdlib/mutex_m/0/mutex_m.rbs +104 -0
  389. data/stdlib/net-http/0/manifest.yaml +3 -0
  390. data/stdlib/net-http/0/net-http.rbs +5552 -0
  391. data/stdlib/net-protocol/0/manifest.yaml +2 -0
  392. data/stdlib/net-protocol/0/net-protocol.rbs +56 -0
  393. data/stdlib/net-smtp/0/manifest.yaml +2 -0
  394. data/stdlib/net-smtp/0/net-smtp.rbs +55 -0
  395. data/stdlib/nkf/0/nkf.rbs +402 -0
  396. data/stdlib/objspace/0/objspace.rbs +487 -0
  397. data/stdlib/observable/0/observable.rbs +217 -0
  398. data/stdlib/open-uri/0/manifest.yaml +4 -0
  399. data/stdlib/open-uri/0/open-uri.rbs +393 -0
  400. data/stdlib/open3/0/open3.rbs +147 -0
  401. data/stdlib/openssl/0/manifest.yaml +3 -0
  402. data/stdlib/openssl/0/openssl.rbs +12113 -0
  403. data/stdlib/optparse/0/optparse.rbs +1725 -0
  404. data/stdlib/pathname/0/pathname.rbs +1406 -0
  405. data/stdlib/pp/0/manifest.yaml +2 -0
  406. data/stdlib/pp/0/pp.rbs +300 -0
  407. data/stdlib/prettyprint/0/prettyprint.rbs +383 -0
  408. data/stdlib/pstore/0/pstore.rbs +603 -0
  409. data/stdlib/psych/0/core_ext.rbs +12 -0
  410. data/stdlib/psych/0/dbm.rbs +237 -0
  411. data/stdlib/psych/0/manifest.yaml +3 -0
  412. data/stdlib/psych/0/psych.rbs +402 -0
  413. data/stdlib/psych/0/store.rbs +59 -0
  414. data/stdlib/pty/0/pty.rbs +237 -0
  415. data/stdlib/rdoc/0/code_object.rbs +51 -0
  416. data/stdlib/rdoc/0/comment.rbs +59 -0
  417. data/stdlib/rdoc/0/context.rbs +153 -0
  418. data/stdlib/rdoc/0/markup.rbs +117 -0
  419. data/stdlib/rdoc/0/parser.rbs +56 -0
  420. data/stdlib/rdoc/0/rdoc.rbs +391 -0
  421. data/stdlib/rdoc/0/ri.rbs +17 -0
  422. data/stdlib/rdoc/0/store.rbs +48 -0
  423. data/stdlib/rdoc/0/top_level.rbs +97 -0
  424. data/stdlib/resolv/0/manifest.yaml +3 -0
  425. data/stdlib/resolv/0/resolv.rbs +1830 -0
  426. data/stdlib/ripper/0/ripper.rbs +1648 -0
  427. data/stdlib/securerandom/0/securerandom.rbs +62 -0
  428. data/stdlib/shellwords/0/shellwords.rbs +229 -0
  429. data/stdlib/singleton/0/singleton.rbs +131 -0
  430. data/stdlib/socket/0/addrinfo.rbs +666 -0
  431. data/stdlib/socket/0/basic_socket.rbs +590 -0
  432. data/stdlib/socket/0/constants.rbs +2295 -0
  433. data/stdlib/socket/0/ip_socket.rbs +92 -0
  434. data/stdlib/socket/0/socket.rbs +4157 -0
  435. data/stdlib/socket/0/socket_error.rbs +5 -0
  436. data/stdlib/socket/0/tcp_server.rbs +192 -0
  437. data/stdlib/socket/0/tcp_socket.rbs +79 -0
  438. data/stdlib/socket/0/udp_socket.rbs +133 -0
  439. data/stdlib/socket/0/unix_server.rbs +169 -0
  440. data/stdlib/socket/0/unix_socket.rbs +172 -0
  441. data/stdlib/stringio/0/stringio.rbs +567 -0
  442. data/stdlib/strscan/0/string_scanner.rbs +1627 -0
  443. data/stdlib/tempfile/0/tempfile.rbs +479 -0
  444. data/stdlib/time/0/time.rbs +432 -0
  445. data/stdlib/timeout/0/timeout.rbs +81 -0
  446. data/stdlib/tmpdir/0/tmpdir.rbs +69 -0
  447. data/stdlib/tsort/0/cyclic.rbs +5 -0
  448. data/stdlib/tsort/0/interfaces.rbs +20 -0
  449. data/stdlib/tsort/0/tsort.rbs +409 -0
  450. data/stdlib/uri/0/common.rbs +582 -0
  451. data/stdlib/uri/0/file.rbs +118 -0
  452. data/stdlib/uri/0/ftp.rbs +13 -0
  453. data/stdlib/uri/0/generic.rbs +1108 -0
  454. data/stdlib/uri/0/http.rbs +104 -0
  455. data/stdlib/uri/0/https.rbs +14 -0
  456. data/stdlib/uri/0/ldap.rbs +230 -0
  457. data/stdlib/uri/0/ldaps.rbs +14 -0
  458. data/stdlib/uri/0/mailto.rbs +92 -0
  459. data/stdlib/uri/0/rfc2396_parser.rbs +189 -0
  460. data/stdlib/uri/0/rfc3986_parser.rbs +2 -0
  461. data/stdlib/uri/0/ws.rbs +13 -0
  462. data/stdlib/uri/0/wss.rbs +9 -0
  463. data/stdlib/yaml/0/manifest.yaml +2 -0
  464. data/stdlib/yaml/0/yaml.rbs +1 -0
  465. data/stdlib/zlib/0/buf_error.rbs +10 -0
  466. data/stdlib/zlib/0/data_error.rbs +10 -0
  467. data/stdlib/zlib/0/deflate.rbs +210 -0
  468. data/stdlib/zlib/0/error.rbs +20 -0
  469. data/stdlib/zlib/0/gzip_file/crc_error.rbs +12 -0
  470. data/stdlib/zlib/0/gzip_file/error.rbs +23 -0
  471. data/stdlib/zlib/0/gzip_file/length_error.rbs +12 -0
  472. data/stdlib/zlib/0/gzip_file/no_footer.rbs +11 -0
  473. data/stdlib/zlib/0/gzip_file.rbs +156 -0
  474. data/stdlib/zlib/0/gzip_reader.rbs +293 -0
  475. data/stdlib/zlib/0/gzip_writer.rbs +166 -0
  476. data/stdlib/zlib/0/inflate.rbs +180 -0
  477. data/stdlib/zlib/0/mem_error.rbs +10 -0
  478. data/stdlib/zlib/0/need_dict.rbs +13 -0
  479. data/stdlib/zlib/0/stream_end.rbs +11 -0
  480. data/stdlib/zlib/0/stream_error.rbs +11 -0
  481. data/stdlib/zlib/0/version_error.rbs +11 -0
  482. data/stdlib/zlib/0/zlib.rbs +449 -0
  483. data/stdlib/zlib/0/zstream.rbs +200 -0
  484. metadata +532 -0
data/core/complex.rbs ADDED
@@ -0,0 +1,786 @@
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 `self.real` and `self.image` are finite.
83
+ # * #hash: Returns the integer hash value for `self`.
84
+ # * #imag (and its alias #imaginary): Returns the imaginary value for `self`.
85
+ # * #infinite?: Returns whether `self.real` or `self.image` is infinite.
86
+ # * #numerator: Returns the numerator of `self`.
87
+ # * #polar: Returns the array `[self.abs, self.arg]`.
88
+ # * #inspect: Returns a string representation of `self`.
89
+ # * #real: Returns the real value for `self`.
90
+ # * #real?: Returns `false`; for compatibility with Numeric#real?.
91
+ # * #rect (and its alias #rectangular): Returns the array `[self.real,
92
+ # self.imag]`.
93
+ #
94
+ # ### Comparing
95
+ #
96
+ # * #<=>: Returns whether `self` is less than, equal to, or greater than the
97
+ # given argument.
98
+ # * #==: Returns whether `self` is equal to the given argument.
99
+ #
100
+ # ### Converting
101
+ #
102
+ # * #rationalize: Returns a Rational object whose value is exactly or
103
+ # approximately equivalent to that of `self.real`.
104
+ # * #to_c: Returns `self`.
105
+ # * #to_d: Returns the value as a BigDecimal object.
106
+ # * #to_f: Returns the value of `self.real` as a Float, if possible.
107
+ # * #to_i: Returns the value of `self.real` as an Integer, if possible.
108
+ # * #to_r: Returns the value of `self.real` as a Rational, if possible.
109
+ # * #to_s: Returns a string representation of `self`.
110
+ #
111
+ # ### Performing Complex Arithmetic
112
+ #
113
+ # * #*: Returns the product of `self` and the given numeric.
114
+ # * #**: Returns `self` raised to power of the given numeric.
115
+ # * #+: Returns the sum of `self` and the given numeric.
116
+ # * #-: Returns the difference of `self` and the given numeric.
117
+ # * #-@: Returns the negation of `self`.
118
+ # * #/: Returns the quotient of `self` and the given numeric.
119
+ # * #abs2: Returns square of the absolute value (magnitude) for `self`.
120
+ # * #conj (and its alias #conjugate): Returns the conjugate of `self`.
121
+ # * #fdiv: Returns `Complex.rect(self.real/numeric, self.imag/numeric)`.
122
+ #
123
+ # ### Working with JSON
124
+ #
125
+ # * ::json_create: Returns a new Complex object, deserialized from the given
126
+ # serialized hash.
127
+ # * #as_json: Returns a serialized hash constructed from `self`.
128
+ # * #to_json: Returns a JSON string representing `self`.
129
+ #
130
+ # These methods are provided by the [JSON gem](https://github.com/ruby/json). To
131
+ # make these methods available:
132
+ #
133
+ # require 'json/add/complex'
134
+ #
135
+ class Complex < Numeric
136
+ # <!--
137
+ # rdoc-file=complex.c
138
+ # - Complex.polar(abs, arg = 0) -> complex
139
+ # -->
140
+ # Returns a new Complex object formed from the arguments, each of which must be
141
+ # an instance of Numeric, or an instance of one of its subclasses: Complex,
142
+ # Float, Integer, Rational. Argument `arg` is given in radians; see [Polar
143
+ # Coordinates](rdoc-ref:Complex@Polar+Coordinates):
144
+ #
145
+ # Complex.polar(3) # => (3+0i)
146
+ # Complex.polar(3, 2.0) # => (-1.2484405096414273+2.727892280477045i)
147
+ # Complex.polar(-3, -2.0) # => (1.2484405096414273+2.727892280477045i)
148
+ #
149
+ def self.polar: (Numeric, ?Numeric) -> Complex
150
+
151
+ # <!--
152
+ # rdoc-file=complex.c
153
+ # - Complex.rect(real, imag = 0) -> complex
154
+ # -->
155
+ # Returns a new Complex object formed from the arguments, each of which must be
156
+ # an instance of Numeric, or an instance of one of its subclasses: Complex,
157
+ # Float, Integer, Rational; see [Rectangular
158
+ # Coordinates](rdoc-ref:Complex@Rectangular+Coordinates):
159
+ #
160
+ # Complex.rect(3) # => (3+0i)
161
+ # Complex.rect(3, Math::PI) # => (3+3.141592653589793i)
162
+ # Complex.rect(-3, -Math::PI) # => (-3-3.141592653589793i)
163
+ #
164
+ # Complex.rectangular is an alias for Complex.rect.
165
+ #
166
+ def self.rect: (Numeric, ?Numeric) -> Complex
167
+
168
+ # <!--
169
+ # rdoc-file=complex.c
170
+ # - Complex.rect(real, imag = 0) -> complex
171
+ # -->
172
+ # Returns a new Complex object formed from the arguments, each of which must be
173
+ # an instance of Numeric, or an instance of one of its subclasses: Complex,
174
+ # Float, Integer, Rational; see [Rectangular
175
+ # Coordinates](rdoc-ref:Complex@Rectangular+Coordinates):
176
+ #
177
+ # Complex.rect(3) # => (3+0i)
178
+ # Complex.rect(3, Math::PI) # => (3+3.141592653589793i)
179
+ # Complex.rect(-3, -Math::PI) # => (-3-3.141592653589793i)
180
+ #
181
+ # Complex.rectangular is an alias for Complex.rect.
182
+ #
183
+ alias self.rectangular self.rect
184
+
185
+ # <!--
186
+ # rdoc-file=complex.c
187
+ # - complex * numeric -> new_complex
188
+ # -->
189
+ # Returns the product of `self` and `numeric`:
190
+ #
191
+ # Complex.rect(2, 3) * Complex.rect(2, 3) # => (-5+12i)
192
+ # Complex.rect(900) * Complex.rect(1) # => (900+0i)
193
+ # Complex.rect(-2, 9) * Complex.rect(-9, 2) # => (0-85i)
194
+ # Complex.rect(9, 8) * 4 # => (36+32i)
195
+ # Complex.rect(20, 9) * 9.8 # => (196.0+88.2i)
196
+ #
197
+ def *: (Numeric) -> Complex
198
+
199
+ # <!--
200
+ # rdoc-file=complex.c
201
+ # - complex ** numeric -> new_complex
202
+ # -->
203
+ # Returns `self` raised to power `numeric`:
204
+ #
205
+ # Complex.rect(0, 1) ** 2 # => (-1+0i)
206
+ # Complex.rect(-8) ** Rational(1, 3) # => (1.0000000000000002+1.7320508075688772i)
207
+ #
208
+ def **: (Numeric) -> Complex
209
+
210
+ # <!--
211
+ # rdoc-file=complex.c
212
+ # - complex + numeric -> new_complex
213
+ # -->
214
+ # Returns the sum of `self` and `numeric`:
215
+ #
216
+ # Complex.rect(2, 3) + Complex.rect(2, 3) # => (4+6i)
217
+ # Complex.rect(900) + Complex.rect(1) # => (901+0i)
218
+ # Complex.rect(-2, 9) + Complex.rect(-9, 2) # => (-11+11i)
219
+ # Complex.rect(9, 8) + 4 # => (13+8i)
220
+ # Complex.rect(20, 9) + 9.8 # => (29.8+9i)
221
+ #
222
+ def +: (Numeric) -> Complex
223
+
224
+ def +@: () -> Complex
225
+
226
+ # <!--
227
+ # rdoc-file=complex.c
228
+ # - complex - numeric -> new_complex
229
+ # -->
230
+ # Returns the difference of `self` and `numeric`:
231
+ #
232
+ # Complex.rect(2, 3) - Complex.rect(2, 3) # => (0+0i)
233
+ # Complex.rect(900) - Complex.rect(1) # => (899+0i)
234
+ # Complex.rect(-2, 9) - Complex.rect(-9, 2) # => (7+7i)
235
+ # Complex.rect(9, 8) - 4 # => (5+8i)
236
+ # Complex.rect(20, 9) - 9.8 # => (10.2+9i)
237
+ #
238
+ def -: (Numeric) -> Complex
239
+
240
+ # <!--
241
+ # rdoc-file=complex.c
242
+ # - -complex -> new_complex
243
+ # -->
244
+ # Returns the negation of `self`, which is the negation of each of its parts:
245
+ #
246
+ # -Complex.rect(1, 2) # => (-1-2i)
247
+ # -Complex.rect(-1, -2) # => (1+2i)
248
+ #
249
+ def -@: () -> Complex
250
+
251
+ # <!--
252
+ # rdoc-file=complex.c
253
+ # - complex / numeric -> new_complex
254
+ # -->
255
+ # Returns the quotient of `self` and `numeric`:
256
+ #
257
+ # Complex.rect(2, 3) / Complex.rect(2, 3) # => (1+0i)
258
+ # Complex.rect(900) / Complex.rect(1) # => (900+0i)
259
+ # Complex.rect(-2, 9) / Complex.rect(-9, 2) # => ((36/85)-(77/85)*i)
260
+ # Complex.rect(9, 8) / 4 # => ((9/4)+2i)
261
+ # Complex.rect(20, 9) / 9.8 # => (2.0408163265306123+0.9183673469387754i)
262
+ #
263
+ def /: (Numeric) -> Complex
264
+
265
+ def <: (Numeric) -> bot
266
+
267
+ def <=: (Numeric) -> bot
268
+
269
+ # <!--
270
+ # rdoc-file=complex.c
271
+ # - complex <=> object -> -1, 0, 1, or nil
272
+ # -->
273
+ # Returns:
274
+ #
275
+ # * `self.real <=> object.real` if both of the following are true:
276
+ #
277
+ # * `self.imag == 0`.
278
+ # * `object.imag == 0`. # Always true if object is numeric but not
279
+ # complex.
280
+ #
281
+ # * `nil` otherwise.
282
+ #
283
+ # Examples:
284
+ #
285
+ # Complex.rect(2) <=> 3 # => -1
286
+ # Complex.rect(2) <=> 2 # => 0
287
+ # Complex.rect(2) <=> 1 # => 1
288
+ # Complex.rect(2, 1) <=> 1 # => nil # self.imag not zero.
289
+ # Complex.rect(1) <=> Complex.rect(1, 1) # => nil # object.imag not zero.
290
+ # Complex.rect(1) <=> 'Foo' # => nil # object.imag not defined.
291
+ #
292
+ def <=>: (untyped) -> Integer?
293
+
294
+ # <!--
295
+ # rdoc-file=complex.c
296
+ # - complex == object -> true or false
297
+ # -->
298
+ # Returns `true` if `self.real == object.real` and `self.imag == object.imag`:
299
+ #
300
+ # Complex.rect(2, 3) == Complex.rect(2.0, 3.0) # => true
301
+ #
302
+ def ==: (untyped) -> bool
303
+
304
+ def >: (Numeric) -> bot
305
+
306
+ def >=: (Numeric) -> bot
307
+
308
+ # <!--
309
+ # rdoc-file=complex.c
310
+ # - abs -> float
311
+ # -->
312
+ # Returns the absolute value (magnitude) for `self`; see [polar
313
+ # coordinates](rdoc-ref:Complex@Polar+Coordinates):
314
+ #
315
+ # Complex.polar(-1, 0).abs # => 1.0
316
+ #
317
+ # If `self` was created with [rectangular
318
+ # coordinates](rdoc-ref:Complex@Rectangular+Coordinates), the returned value is
319
+ # computed, and may be inexact:
320
+ #
321
+ # Complex.rectangular(1, 1).abs # => 1.4142135623730951 # The square root of 2.
322
+ #
323
+ def abs: () -> Numeric
324
+
325
+ # <!--
326
+ # rdoc-file=complex.c
327
+ # - abs2 -> float
328
+ # -->
329
+ # Returns square of the absolute value (magnitude) for `self`; see [polar
330
+ # coordinates](rdoc-ref:Complex@Polar+Coordinates):
331
+ #
332
+ # Complex.polar(2, 2).abs2 # => 4.0
333
+ #
334
+ # If `self` was created with [rectangular
335
+ # coordinates](rdoc-ref:Complex@Rectangular+Coordinates), the returned value is
336
+ # computed, and may be inexact:
337
+ #
338
+ # Complex.rectangular(1.0/3, 1.0/3).abs2 # => 0.2222222222222222
339
+ #
340
+ def abs2: () -> Numeric
341
+
342
+ # <!-- rdoc-file=complex.c -->
343
+ # Returns the argument (angle) for `self` in radians; see [polar
344
+ # coordinates](rdoc-ref:Complex@Polar+Coordinates):
345
+ #
346
+ # Complex.polar(3, Math::PI/2).arg # => 1.57079632679489660
347
+ #
348
+ # If `self` was created with [rectangular
349
+ # coordinates](rdoc-ref:Complex@Rectangular+Coordinates), the returned value is
350
+ # computed, and may be inexact:
351
+ #
352
+ # Complex.polar(1, 1.0/3).arg # => 0.33333333333333326
353
+ #
354
+ def angle: () -> Float
355
+
356
+ # <!--
357
+ # rdoc-file=complex.c
358
+ # - arg -> float
359
+ # -->
360
+ # Returns the argument (angle) for `self` in radians; see [polar
361
+ # coordinates](rdoc-ref:Complex@Polar+Coordinates):
362
+ #
363
+ # Complex.polar(3, Math::PI/2).arg # => 1.57079632679489660
364
+ #
365
+ # If `self` was created with [rectangular
366
+ # coordinates](rdoc-ref:Complex@Rectangular+Coordinates), the returned value is
367
+ # computed, and may be inexact:
368
+ #
369
+ # Complex.polar(1, 1.0/3).arg # => 0.33333333333333326
370
+ #
371
+ alias arg angle
372
+
373
+ def ceil: (*untyped) -> bot
374
+
375
+ def coerce: (Numeric) -> [ Complex, Complex ]
376
+
377
+ # <!-- rdoc-file=complex.c -->
378
+ # Returns the conjugate of `self`, `Complex.rect(self.imag, self.real)`:
379
+ #
380
+ # Complex.rect(1, 2).conj # => (1-2i)
381
+ #
382
+ def conj: () -> Complex
383
+
384
+ # <!--
385
+ # rdoc-file=complex.c
386
+ # - conj -> complex
387
+ # -->
388
+ # Returns the conjugate of `self`, `Complex.rect(self.imag, self.real)`:
389
+ #
390
+ # Complex.rect(1, 2).conj # => (1-2i)
391
+ #
392
+ def conjugate: () -> Complex
393
+
394
+ # <!--
395
+ # rdoc-file=complex.c
396
+ # - denominator -> integer
397
+ # -->
398
+ # Returns the denominator of `self`, which is the [least common
399
+ # multiple](https://en.wikipedia.org/wiki/Least_common_multiple) of
400
+ # `self.real.denominator` and `self.imag.denominator`:
401
+ #
402
+ # Complex.rect(Rational(1, 2), Rational(2, 3)).denominator # => 6
403
+ #
404
+ # Note that `n.denominator` of a non-rational numeric is `1`.
405
+ #
406
+ # Related: Complex#numerator.
407
+ #
408
+ def denominator: () -> Integer
409
+
410
+ def div: (Numeric) -> bot
411
+
412
+ def divmod: (Numeric) -> bot
413
+
414
+ def dup: () -> self
415
+
416
+ def eql?: (untyped) -> bool
417
+
418
+ # <!--
419
+ # rdoc-file=complex.c
420
+ # - fdiv(numeric) -> new_complex
421
+ # -->
422
+ # Returns `Complex.rect(self.real/numeric, self.imag/numeric)`:
423
+ #
424
+ # Complex.rect(11, 22).fdiv(3) # => (3.6666666666666665+7.333333333333333i)
425
+ #
426
+ def fdiv: (Numeric) -> Complex
427
+
428
+ # <!--
429
+ # rdoc-file=complex.c
430
+ # - finite? -> true or false
431
+ # -->
432
+ # Returns `true` if both `self.real.finite?` and `self.imag.finite?` are true,
433
+ # `false` otherwise:
434
+ #
435
+ # Complex.rect(1, 1).finite? # => true
436
+ # Complex.rect(Float::INFINITY, 0).finite? # => false
437
+ #
438
+ # Related: Numeric#finite?, Float#finite?.
439
+ #
440
+ def finite?: () -> bool
441
+
442
+ def floor: (?Integer) -> bot
443
+
444
+ # <!--
445
+ # rdoc-file=complex.c
446
+ # - hash -> integer
447
+ # -->
448
+ # Returns the integer hash value for `self`.
449
+ #
450
+ # Two Complex objects created from the same values will have the same hash value
451
+ # (and will compare using #eql?):
452
+ #
453
+ # Complex.rect(1, 2).hash == Complex.rect(1, 2).hash # => true
454
+ #
455
+ def hash: () -> Integer
456
+
457
+ def i: () -> bot
458
+
459
+ # <!-- rdoc-file=complex.c -->
460
+ # Returns the imaginary value for `self`:
461
+ #
462
+ # Complex.rect(7).imag # => 0
463
+ # Complex.rect(9, -4).imag # => -4
464
+ #
465
+ # If `self` was created with [polar
466
+ # coordinates](rdoc-ref:Complex@Polar+Coordinates), the returned value is
467
+ # computed, and may be inexact:
468
+ #
469
+ # Complex.polar(1, Math::PI/4).imag # => 0.7071067811865476 # Square root of 2.
470
+ #
471
+ def imag: () -> Numeric
472
+
473
+ # <!--
474
+ # rdoc-file=complex.c
475
+ # - imag -> numeric
476
+ # -->
477
+ # Returns the imaginary value for `self`:
478
+ #
479
+ # Complex.rect(7).imag # => 0
480
+ # Complex.rect(9, -4).imag # => -4
481
+ #
482
+ # If `self` was created with [polar
483
+ # coordinates](rdoc-ref:Complex@Polar+Coordinates), the returned value is
484
+ # computed, and may be inexact:
485
+ #
486
+ # Complex.polar(1, Math::PI/4).imag # => 0.7071067811865476 # Square root of 2.
487
+ #
488
+ def imaginary: () -> Numeric
489
+
490
+ # <!--
491
+ # rdoc-file=complex.c
492
+ # - infinite? -> 1 or nil
493
+ # -->
494
+ # Returns `1` if either `self.real.infinite?` or `self.imag.infinite?` is true,
495
+ # `nil` otherwise:
496
+ #
497
+ # Complex.rect(Float::INFINITY, 0).infinite? # => 1
498
+ # Complex.rect(1, 1).infinite? # => nil
499
+ #
500
+ # Related: Numeric#infinite?, Float#infinite?.
501
+ #
502
+ def infinite?: () -> Integer?
503
+
504
+ # <!--
505
+ # rdoc-file=complex.c
506
+ # - inspect -> string
507
+ # -->
508
+ # Returns a string representation of `self`:
509
+ #
510
+ # Complex.rect(2).inspect # => "(2+0i)"
511
+ # Complex.rect(-8, 6).inspect # => "(-8+6i)"
512
+ # Complex.rect(0, Rational(1, 2)).inspect # => "(0+(1/2)*i)"
513
+ # Complex.rect(0, Float::INFINITY).inspect # => "(0+Infinity*i)"
514
+ # Complex.rect(Float::NAN, Float::NAN).inspect # => "(NaN+NaN*i)"
515
+ #
516
+ def inspect: () -> String
517
+
518
+ def integer?: () -> bool
519
+
520
+ # <!-- rdoc-file=complex.c -->
521
+ # Returns the absolute value (magnitude) for `self`; see [polar
522
+ # coordinates](rdoc-ref:Complex@Polar+Coordinates):
523
+ #
524
+ # Complex.polar(-1, 0).abs # => 1.0
525
+ #
526
+ # If `self` was created with [rectangular
527
+ # coordinates](rdoc-ref:Complex@Rectangular+Coordinates), the returned value is
528
+ # computed, and may be inexact:
529
+ #
530
+ # Complex.rectangular(1, 1).abs # => 1.4142135623730951 # The square root of 2.
531
+ #
532
+ alias magnitude abs
533
+
534
+ def modulo: (Numeric) -> bot
535
+
536
+ def negative?: () -> bot
537
+
538
+ def nonzero?: () -> self?
539
+
540
+ # <!--
541
+ # rdoc-file=complex.c
542
+ # - numerator -> new_complex
543
+ # -->
544
+ # Returns the Complex object created from the numerators of the real and
545
+ # imaginary parts of `self`, after converting each part to the [lowest common
546
+ # denominator](https://en.wikipedia.org/wiki/Lowest_common_denominator) of the
547
+ # two:
548
+ #
549
+ # c = Complex.rect(Rational(2, 3), Rational(3, 4)) # => ((2/3)+(3/4)*i)
550
+ # c.numerator # => (8+9i)
551
+ #
552
+ # In this example, the lowest common denominator of the two parts is 12; the two
553
+ # converted parts may be thought of as Rational(8, 12) and Rational(9, 12),
554
+ # whose numerators, respectively, are 8 and 9; so the returned value of
555
+ # `c.numerator` is `Complex.rect(8, 9)`.
556
+ #
557
+ # Related: Complex#denominator.
558
+ #
559
+ def numerator: () -> Complex
560
+
561
+ # <!-- rdoc-file=complex.c -->
562
+ # Returns the argument (angle) for `self` in radians; see [polar
563
+ # coordinates](rdoc-ref:Complex@Polar+Coordinates):
564
+ #
565
+ # Complex.polar(3, Math::PI/2).arg # => 1.57079632679489660
566
+ #
567
+ # If `self` was created with [rectangular
568
+ # coordinates](rdoc-ref:Complex@Rectangular+Coordinates), the returned value is
569
+ # computed, and may be inexact:
570
+ #
571
+ # Complex.polar(1, 1.0/3).arg # => 0.33333333333333326
572
+ #
573
+ alias phase angle
574
+
575
+ # <!--
576
+ # rdoc-file=complex.c
577
+ # - polar -> array
578
+ # -->
579
+ # Returns the array `[self.abs, self.arg]`:
580
+ #
581
+ # Complex.polar(1, 2).polar # => [1.0, 2.0]
582
+ #
583
+ # See [Polar Coordinates](rdoc-ref:Complex@Polar+Coordinates).
584
+ #
585
+ # If `self` was created with [rectangular
586
+ # coordinates](rdoc-ref:Complex@Rectangular+Coordinates), the returned value is
587
+ # computed, and may be inexact:
588
+ #
589
+ # Complex.rect(1, 1).polar # => [1.4142135623730951, 0.7853981633974483]
590
+ #
591
+ def polar: () -> [ Numeric, Float ]
592
+
593
+ def positive?: () -> bot
594
+
595
+ # <!--
596
+ # rdoc-file=complex.c
597
+ # - complex / numeric -> new_complex
598
+ # -->
599
+ # Returns the quotient of `self` and `numeric`:
600
+ #
601
+ # Complex.rect(2, 3) / Complex.rect(2, 3) # => (1+0i)
602
+ # Complex.rect(900) / Complex.rect(1) # => (900+0i)
603
+ # Complex.rect(-2, 9) / Complex.rect(-9, 2) # => ((36/85)-(77/85)*i)
604
+ # Complex.rect(9, 8) / 4 # => ((9/4)+2i)
605
+ # Complex.rect(20, 9) / 9.8 # => (2.0408163265306123+0.9183673469387754i)
606
+ #
607
+ def quo: (Numeric) -> Complex
608
+
609
+ # <!--
610
+ # rdoc-file=complex.c
611
+ # - rationalize(epsilon = nil) -> rational
612
+ # -->
613
+ # Returns a Rational object whose value is exactly or approximately equivalent
614
+ # to that of `self.real`.
615
+ #
616
+ # With no argument `epsilon` given, returns a Rational object whose value is
617
+ # exactly equal to that of `self.real.rationalize`:
618
+ #
619
+ # Complex.rect(1, 0).rationalize # => (1/1)
620
+ # Complex.rect(1, Rational(0, 1)).rationalize # => (1/1)
621
+ # Complex.rect(3.14159, 0).rationalize # => (314159/100000)
622
+ #
623
+ # With argument `epsilon` given, returns a Rational object whose value is
624
+ # exactly or approximately equal to that of `self.real` to the given precision:
625
+ #
626
+ # Complex.rect(3.14159, 0).rationalize(0.1) # => (16/5)
627
+ # Complex.rect(3.14159, 0).rationalize(0.01) # => (22/7)
628
+ # Complex.rect(3.14159, 0).rationalize(0.001) # => (201/64)
629
+ # Complex.rect(3.14159, 0).rationalize(0.0001) # => (333/106)
630
+ # Complex.rect(3.14159, 0).rationalize(0.00001) # => (355/113)
631
+ # Complex.rect(3.14159, 0).rationalize(0.000001) # => (7433/2366)
632
+ # Complex.rect(3.14159, 0).rationalize(0.0000001) # => (9208/2931)
633
+ # Complex.rect(3.14159, 0).rationalize(0.00000001) # => (47460/15107)
634
+ # Complex.rect(3.14159, 0).rationalize(0.000000001) # => (76149/24239)
635
+ # Complex.rect(3.14159, 0).rationalize(0.0000000001) # => (314159/100000)
636
+ # Complex.rect(3.14159, 0).rationalize(0.0) # => (3537115888337719/1125899906842624)
637
+ #
638
+ # Related: Complex#to_r.
639
+ #
640
+ def rationalize: (?Numeric eps) -> Rational
641
+
642
+ # <!--
643
+ # rdoc-file=complex.c
644
+ # - real -> numeric
645
+ # -->
646
+ # Returns the real value for `self`:
647
+ #
648
+ # Complex.rect(7).real # => 7
649
+ # Complex.rect(9, -4).real # => 9
650
+ #
651
+ # If `self` was created with [polar
652
+ # coordinates](rdoc-ref:Complex@Polar+Coordinates), the returned value is
653
+ # computed, and may be inexact:
654
+ #
655
+ # Complex.polar(1, Math::PI/4).real # => 0.7071067811865476 # Square root of 2.
656
+ #
657
+ def real: () -> Numeric
658
+
659
+ # <!--
660
+ # rdoc-file=complex.c
661
+ # - real? -> false
662
+ # -->
663
+ # Returns `false`; for compatibility with Numeric#real?.
664
+ #
665
+ def real?: () -> false
666
+
667
+ # <!-- rdoc-file=complex.c -->
668
+ # Returns a new Complex object formed from the arguments, each of which must be
669
+ # an instance of Numeric, or an instance of one of its subclasses: Complex,
670
+ # Float, Integer, Rational; see [Rectangular
671
+ # Coordinates](rdoc-ref:Complex@Rectangular+Coordinates):
672
+ #
673
+ # Complex.rect(3) # => (3+0i)
674
+ # Complex.rect(3, Math::PI) # => (3+3.141592653589793i)
675
+ # Complex.rect(-3, -Math::PI) # => (-3-3.141592653589793i)
676
+ #
677
+ # Complex.rectangular is an alias for Complex.rect.
678
+ #
679
+ def rect: () -> [ Numeric, Numeric ]
680
+
681
+ # <!--
682
+ # rdoc-file=complex.c
683
+ # - rect -> array
684
+ # -->
685
+ # Returns the array `[self.real, self.imag]`:
686
+ #
687
+ # Complex.rect(1, 2).rect # => [1, 2]
688
+ #
689
+ # See [Rectangular Coordinates](rdoc-ref:Complex@Rectangular+Coordinates).
690
+ #
691
+ # If `self` was created with [polar
692
+ # coordinates](rdoc-ref:Complex@Polar+Coordinates), the returned value is
693
+ # computed, and may be inexact:
694
+ #
695
+ # Complex.polar(1.0, 1.0).rect # => [0.5403023058681398, 0.8414709848078965]
696
+ #
697
+ # Complex#rectangular is an alias for Complex#rect.
698
+ #
699
+ alias rectangular rect
700
+
701
+ def reminder: (Numeric) -> bot
702
+
703
+ def round: (*untyped) -> bot
704
+
705
+ def step: (*untyped) ?{ (*untyped) -> untyped } -> bot
706
+
707
+ # <!--
708
+ # rdoc-file=complex.c
709
+ # - to_c -> self
710
+ # -->
711
+ # Returns `self`.
712
+ #
713
+ def to_c: () -> Complex
714
+
715
+ # <!--
716
+ # rdoc-file=complex.c
717
+ # - to_f -> float
718
+ # -->
719
+ # Returns the value of `self.real` as a Float, if possible:
720
+ #
721
+ # Complex.rect(1, 0).to_f # => 1.0
722
+ # Complex.rect(1, Rational(0, 1)).to_f # => 1.0
723
+ #
724
+ # Raises RangeError if `self.imag` is not exactly zero (either `Integer(0)` or
725
+ # `Rational(0, *n*)`).
726
+ #
727
+ def to_f: () -> Float
728
+
729
+ # <!--
730
+ # rdoc-file=complex.c
731
+ # - to_i -> integer
732
+ # -->
733
+ # Returns the value of `self.real` as an Integer, if possible:
734
+ #
735
+ # Complex.rect(1, 0).to_i # => 1
736
+ # Complex.rect(1, Rational(0, 1)).to_i # => 1
737
+ #
738
+ # Raises RangeError if `self.imag` is not exactly zero (either `Integer(0)` or
739
+ # `Rational(0, *n*)`).
740
+ #
741
+ def to_i: () -> Integer
742
+
743
+ alias to_int to_i
744
+
745
+ # <!--
746
+ # rdoc-file=complex.c
747
+ # - to_r -> rational
748
+ # -->
749
+ # Returns the value of `self.real` as a Rational, if possible:
750
+ #
751
+ # Complex.rect(1, 0).to_r # => (1/1)
752
+ # Complex.rect(1, Rational(0, 1)).to_r # => (1/1)
753
+ # Complex.rect(1, 0.0).to_r # => (1/1)
754
+ #
755
+ # Raises RangeError if `self.imag` is not exactly zero (either `Integer(0)` or
756
+ # `Rational(0, *n*)`) and `self.imag.to_r` is not exactly zero.
757
+ #
758
+ # Related: Complex#rationalize.
759
+ #
760
+ def to_r: () -> Rational
761
+
762
+ # <!--
763
+ # rdoc-file=complex.c
764
+ # - to_s -> string
765
+ # -->
766
+ # Returns a string representation of `self`:
767
+ #
768
+ # Complex.rect(2).to_s # => "2+0i"
769
+ # Complex.rect(-8, 6).to_s # => "-8+6i"
770
+ # Complex.rect(0, Rational(1, 2)).to_s # => "0+1/2i"
771
+ # Complex.rect(0, Float::INFINITY).to_s # => "0+Infinity*i"
772
+ # Complex.rect(Float::NAN, Float::NAN).to_s # => "NaN+NaN*i"
773
+ #
774
+ def to_s: () -> String
775
+
776
+ def truncate: (?Integer) -> bot
777
+
778
+ def zero?: () -> bool
779
+ end
780
+
781
+ # <!-- rdoc-file=complex.c -->
782
+ # Equivalent to `Complex.rect(0, 1)`:
783
+ #
784
+ # Complex::I # => (0+1i)
785
+ #
786
+ Complex::I: Complex