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.
- checksums.yaml +7 -0
- data/.github/dependabot.yml +22 -0
- data/.github/workflows/comments.yml +35 -0
- data/.github/workflows/dependabot.yml +30 -0
- data/.github/workflows/ruby.yml +82 -0
- data/.github/workflows/typecheck.yml +38 -0
- data/.github/workflows/windows.yml +43 -0
- data/.gitignore +23 -0
- data/.rubocop.yml +68 -0
- data/BSDL +22 -0
- data/CHANGELOG.md +1868 -0
- data/COPYING +56 -0
- data/README.md +203 -0
- data/Rakefile +417 -0
- data/Steepfile +44 -0
- data/config.yml +313 -0
- data/core/array.rbs +4062 -0
- data/core/basic_object.rbs +375 -0
- data/core/binding.rbs +150 -0
- data/core/builtin.rbs +277 -0
- data/core/class.rbs +220 -0
- data/core/comparable.rbs +171 -0
- data/core/complex.rbs +786 -0
- data/core/constants.rbs +96 -0
- data/core/data.rbs +415 -0
- data/core/dir.rbs +981 -0
- data/core/encoding.rbs +1371 -0
- data/core/enumerable.rbs +2405 -0
- data/core/enumerator/product.rbs +92 -0
- data/core/enumerator.rbs +630 -0
- data/core/env.rbs +6 -0
- data/core/errno.rbs +673 -0
- data/core/errors.rbs +760 -0
- data/core/exception.rbs +485 -0
- data/core/false_class.rbs +82 -0
- data/core/fiber.rbs +550 -0
- data/core/fiber_error.rbs +11 -0
- data/core/file.rbs +2936 -0
- data/core/file_test.rbs +331 -0
- data/core/float.rbs +1151 -0
- data/core/gc.rbs +644 -0
- data/core/global_variables.rbs +184 -0
- data/core/hash.rbs +1861 -0
- data/core/integer.rbs +1413 -0
- data/core/io/buffer.rbs +984 -0
- data/core/io/wait.rbs +70 -0
- data/core/io.rbs +3406 -0
- data/core/kernel.rbs +3096 -0
- data/core/marshal.rbs +207 -0
- data/core/match_data.rbs +635 -0
- data/core/math.rbs +729 -0
- data/core/method.rbs +386 -0
- data/core/module.rbs +1704 -0
- data/core/nil_class.rbs +209 -0
- data/core/numeric.rbs +818 -0
- data/core/object.rbs +110 -0
- data/core/object_space/weak_key_map.rbs +166 -0
- data/core/object_space.rbs +190 -0
- data/core/proc.rbs +868 -0
- data/core/process.rbs +2296 -0
- data/core/ractor.rbs +1068 -0
- data/core/random.rbs +237 -0
- data/core/range.rbs +1107 -0
- data/core/rational.rbs +531 -0
- data/core/rb_config.rbs +88 -0
- data/core/rbs/unnamed/argf.rbs +1229 -0
- data/core/rbs/unnamed/env_class.rbs +1209 -0
- data/core/rbs/unnamed/random.rbs +293 -0
- data/core/refinement.rbs +59 -0
- data/core/regexp.rbs +1930 -0
- data/core/ruby_vm.rbs +765 -0
- data/core/rubygems/basic_specification.rbs +6 -0
- data/core/rubygems/config_file.rbs +38 -0
- data/core/rubygems/dependency_installer.rbs +6 -0
- data/core/rubygems/errors.rbs +176 -0
- data/core/rubygems/installer.rbs +15 -0
- data/core/rubygems/path_support.rbs +6 -0
- data/core/rubygems/platform.rbs +7 -0
- data/core/rubygems/request_set.rbs +49 -0
- data/core/rubygems/requirement.rbs +148 -0
- data/core/rubygems/rubygems.rbs +1171 -0
- data/core/rubygems/source_list.rbs +15 -0
- data/core/rubygems/specification.rbs +23 -0
- data/core/rubygems/stream_ui.rbs +5 -0
- data/core/rubygems/uninstaller.rbs +10 -0
- data/core/rubygems/version.rbs +294 -0
- data/core/set.rbs +621 -0
- data/core/signal.rbs +100 -0
- data/core/string.rbs +3583 -0
- data/core/struct.rbs +667 -0
- data/core/symbol.rbs +475 -0
- data/core/thread.rbs +1765 -0
- data/core/thread_group.rbs +79 -0
- data/core/time.rbs +1762 -0
- data/core/trace_point.rbs +477 -0
- data/core/true_class.rbs +98 -0
- data/core/unbound_method.rbs +329 -0
- data/core/warning.rbs +87 -0
- data/docs/CONTRIBUTING.md +106 -0
- data/docs/architecture.md +110 -0
- data/docs/collection.md +192 -0
- data/docs/data_and_struct.md +86 -0
- data/docs/gem.md +57 -0
- data/docs/rbs_by_example.md +309 -0
- data/docs/repo.md +125 -0
- data/docs/sigs.md +167 -0
- data/docs/stdlib.md +147 -0
- data/docs/syntax.md +910 -0
- data/docs/tools.md +17 -0
- data/exe/rbs +7 -0
- data/ext/rbs_extension/extconf.rb +15 -0
- data/ext/rbs_extension/lexer.c +2728 -0
- data/ext/rbs_extension/lexer.h +179 -0
- data/ext/rbs_extension/lexer.re +147 -0
- data/ext/rbs_extension/lexstate.c +175 -0
- data/ext/rbs_extension/location.c +325 -0
- data/ext/rbs_extension/location.h +85 -0
- data/ext/rbs_extension/main.c +33 -0
- data/ext/rbs_extension/parser.c +2973 -0
- data/ext/rbs_extension/parser.h +18 -0
- data/ext/rbs_extension/parserstate.c +397 -0
- data/ext/rbs_extension/parserstate.h +163 -0
- data/ext/rbs_extension/rbs_extension.h +31 -0
- data/ext/rbs_extension/unescape.c +32 -0
- data/goodcheck.yml +91 -0
- data/include/rbs/constants.h +82 -0
- data/include/rbs/ruby_objs.h +72 -0
- data/include/rbs/util/rbs_constant_pool.h +219 -0
- data/include/rbs.h +7 -0
- data/lib/rbs/ancestor_graph.rb +92 -0
- data/lib/rbs/annotate/annotations.rb +199 -0
- data/lib/rbs/annotate/formatter.rb +92 -0
- data/lib/rbs/annotate/rdoc_annotator.rb +400 -0
- data/lib/rbs/annotate/rdoc_source.rb +131 -0
- data/lib/rbs/annotate.rb +8 -0
- data/lib/rbs/ast/annotation.rb +29 -0
- data/lib/rbs/ast/comment.rb +29 -0
- data/lib/rbs/ast/declarations.rb +467 -0
- data/lib/rbs/ast/directives.rb +49 -0
- data/lib/rbs/ast/members.rb +451 -0
- data/lib/rbs/ast/type_param.rb +225 -0
- data/lib/rbs/ast/visitor.rb +137 -0
- data/lib/rbs/buffer.rb +67 -0
- data/lib/rbs/builtin_names.rb +58 -0
- data/lib/rbs/cli/colored_io.rb +48 -0
- data/lib/rbs/cli/diff.rb +83 -0
- data/lib/rbs/cli/validate.rb +357 -0
- data/lib/rbs/cli.rb +1223 -0
- data/lib/rbs/collection/cleaner.rb +38 -0
- data/lib/rbs/collection/config/lockfile.rb +92 -0
- data/lib/rbs/collection/config/lockfile_generator.rb +218 -0
- data/lib/rbs/collection/config.rb +81 -0
- data/lib/rbs/collection/installer.rb +32 -0
- data/lib/rbs/collection/sources/base.rb +14 -0
- data/lib/rbs/collection/sources/git.rb +258 -0
- data/lib/rbs/collection/sources/local.rb +81 -0
- data/lib/rbs/collection/sources/rubygems.rb +48 -0
- data/lib/rbs/collection/sources/stdlib.rb +50 -0
- data/lib/rbs/collection/sources.rb +38 -0
- data/lib/rbs/collection.rb +16 -0
- data/lib/rbs/constant.rb +28 -0
- data/lib/rbs/definition.rb +401 -0
- data/lib/rbs/definition_builder/ancestor_builder.rb +620 -0
- data/lib/rbs/definition_builder/method_builder.rb +254 -0
- data/lib/rbs/definition_builder.rb +845 -0
- data/lib/rbs/diff.rb +125 -0
- data/lib/rbs/environment/use_map.rb +77 -0
- data/lib/rbs/environment.rb +829 -0
- data/lib/rbs/environment_loader.rb +173 -0
- data/lib/rbs/environment_walker.rb +155 -0
- data/lib/rbs/errors.rb +645 -0
- data/lib/rbs/factory.rb +18 -0
- data/lib/rbs/file_finder.rb +28 -0
- data/lib/rbs/location_aux.rb +138 -0
- data/lib/rbs/locator.rb +243 -0
- data/lib/rbs/method_type.rb +143 -0
- data/lib/rbs/namespace.rb +125 -0
- data/lib/rbs/parser/lex_result.rb +15 -0
- data/lib/rbs/parser/token.rb +23 -0
- data/lib/rbs/parser_aux.rb +114 -0
- data/lib/rbs/prototype/helpers.rb +140 -0
- data/lib/rbs/prototype/node_usage.rb +99 -0
- data/lib/rbs/prototype/rb.rb +840 -0
- data/lib/rbs/prototype/rbi.rb +641 -0
- data/lib/rbs/prototype/runtime/helpers.rb +59 -0
- data/lib/rbs/prototype/runtime/reflection.rb +19 -0
- data/lib/rbs/prototype/runtime/value_object_generator.rb +279 -0
- data/lib/rbs/prototype/runtime.rb +667 -0
- data/lib/rbs/repository.rb +127 -0
- data/lib/rbs/resolver/constant_resolver.rb +219 -0
- data/lib/rbs/resolver/type_name_resolver.rb +91 -0
- data/lib/rbs/sorter.rb +198 -0
- data/lib/rbs/substitution.rb +83 -0
- data/lib/rbs/subtractor.rb +201 -0
- data/lib/rbs/test/errors.rb +80 -0
- data/lib/rbs/test/guaranteed.rb +30 -0
- data/lib/rbs/test/hook.rb +212 -0
- data/lib/rbs/test/observer.rb +19 -0
- data/lib/rbs/test/setup.rb +84 -0
- data/lib/rbs/test/setup_helper.rb +50 -0
- data/lib/rbs/test/tester.rb +167 -0
- data/lib/rbs/test/type_check.rb +435 -0
- data/lib/rbs/test.rb +112 -0
- data/lib/rbs/type_alias_dependency.rb +100 -0
- data/lib/rbs/type_alias_regularity.rb +126 -0
- data/lib/rbs/type_name.rb +109 -0
- data/lib/rbs/types.rb +1596 -0
- data/lib/rbs/unit_test/convertibles.rb +176 -0
- data/lib/rbs/unit_test/spy.rb +138 -0
- data/lib/rbs/unit_test/type_assertions.rb +347 -0
- data/lib/rbs/unit_test/with_aliases.rb +143 -0
- data/lib/rbs/unit_test.rb +6 -0
- data/lib/rbs/validator.rb +186 -0
- data/lib/rbs/variance_calculator.rb +189 -0
- data/lib/rbs/vendorer.rb +71 -0
- data/lib/rbs/version.rb +5 -0
- data/lib/rbs/writer.rb +424 -0
- data/lib/rbs.rb +94 -0
- data/lib/rdoc/discover.rb +20 -0
- data/lib/rdoc_plugin/parser.rb +163 -0
- data/rbs-relaxed.gemspec +48 -0
- data/schema/annotation.json +14 -0
- data/schema/comment.json +26 -0
- data/schema/decls.json +326 -0
- data/schema/function.json +87 -0
- data/schema/location.json +56 -0
- data/schema/members.json +266 -0
- data/schema/methodType.json +50 -0
- data/schema/typeParam.json +36 -0
- data/schema/types.json +317 -0
- data/sig/ancestor_builder.rbs +163 -0
- data/sig/ancestor_graph.rbs +60 -0
- data/sig/annotate/annotations.rbs +102 -0
- data/sig/annotate/formatter.rbs +24 -0
- data/sig/annotate/rdoc_annotater.rbs +82 -0
- data/sig/annotate/rdoc_source.rbs +30 -0
- data/sig/annotation.rbs +27 -0
- data/sig/buffer.rbs +32 -0
- data/sig/builtin_names.rbs +44 -0
- data/sig/cli/colored_io.rbs +15 -0
- data/sig/cli/diff.rbs +21 -0
- data/sig/cli/validate.rbs +43 -0
- data/sig/cli.rbs +87 -0
- data/sig/collection/cleaner.rbs +13 -0
- data/sig/collection/config/lockfile.rbs +74 -0
- data/sig/collection/config/lockfile_generator.rbs +66 -0
- data/sig/collection/config.rbs +46 -0
- data/sig/collection/installer.rbs +17 -0
- data/sig/collection/sources.rbs +214 -0
- data/sig/collection.rbs +4 -0
- data/sig/comment.rbs +26 -0
- data/sig/constant.rbs +21 -0
- data/sig/declarations.rbs +267 -0
- data/sig/definition.rbs +173 -0
- data/sig/definition_builder.rbs +165 -0
- data/sig/diff.rbs +28 -0
- data/sig/directives.rbs +77 -0
- data/sig/environment.rbs +279 -0
- data/sig/environment_loader.rbs +111 -0
- data/sig/environment_walker.rbs +65 -0
- data/sig/errors.rbs +405 -0
- data/sig/factory.rbs +5 -0
- data/sig/file_finder.rbs +28 -0
- data/sig/location.rbs +110 -0
- data/sig/locator.rbs +58 -0
- data/sig/manifest.yaml +7 -0
- data/sig/members.rbs +258 -0
- data/sig/method_builder.rbs +84 -0
- data/sig/method_types.rbs +58 -0
- data/sig/namespace.rbs +146 -0
- data/sig/parser.rbs +100 -0
- data/sig/prototype/helpers.rbs +27 -0
- data/sig/prototype/node_usage.rbs +20 -0
- data/sig/prototype/rb.rbs +96 -0
- data/sig/prototype/rbi.rbs +75 -0
- data/sig/prototype/runtime.rbs +182 -0
- data/sig/rbs.rbs +21 -0
- data/sig/rdoc/rbs.rbs +67 -0
- data/sig/repository.rbs +85 -0
- data/sig/resolver/constant_resolver.rbs +92 -0
- data/sig/resolver/context.rbs +34 -0
- data/sig/resolver/type_name_resolver.rbs +35 -0
- data/sig/shims/bundler.rbs +38 -0
- data/sig/shims/enumerable.rbs +5 -0
- data/sig/shims/rubygems.rbs +19 -0
- data/sig/sorter.rbs +41 -0
- data/sig/substitution.rbs +48 -0
- data/sig/subtractor.rbs +37 -0
- data/sig/test/errors.rbs +52 -0
- data/sig/test/guranteed.rbs +9 -0
- data/sig/test/type_check.rbs +19 -0
- data/sig/test.rbs +82 -0
- data/sig/type_alias_dependency.rbs +53 -0
- data/sig/type_alias_regularity.rbs +98 -0
- data/sig/type_param.rbs +110 -0
- data/sig/typename.rbs +79 -0
- data/sig/types.rbs +579 -0
- data/sig/unit_test/convertibles.rbs +154 -0
- data/sig/unit_test/spy.rbs +30 -0
- data/sig/unit_test/type_assertions.rbs +196 -0
- data/sig/unit_test/with_aliases.rbs +136 -0
- data/sig/use_map.rbs +35 -0
- data/sig/util.rbs +9 -0
- data/sig/validator.rbs +63 -0
- data/sig/variance_calculator.rbs +87 -0
- data/sig/vendorer.rbs +51 -0
- data/sig/version.rbs +3 -0
- data/sig/visitor.rbs +47 -0
- data/sig/writer.rbs +127 -0
- data/src/constants.c +153 -0
- data/src/ruby_objs.c +795 -0
- data/src/util/rbs_constant_pool.c +342 -0
- data/stdlib/abbrev/0/abbrev.rbs +66 -0
- data/stdlib/abbrev/0/array.rbs +26 -0
- data/stdlib/base64/0/base64.rbs +355 -0
- data/stdlib/benchmark/0/benchmark.rbs +452 -0
- data/stdlib/bigdecimal/0/big_decimal.rbs +1629 -0
- data/stdlib/bigdecimal-math/0/big_math.rbs +119 -0
- data/stdlib/bigdecimal-math/0/manifest.yaml +2 -0
- data/stdlib/cgi/0/core.rbs +1285 -0
- data/stdlib/cgi/0/manifest.yaml +3 -0
- data/stdlib/coverage/0/coverage.rbs +263 -0
- data/stdlib/csv/0/csv.rbs +3776 -0
- data/stdlib/csv/0/manifest.yaml +3 -0
- data/stdlib/date/0/date.rbs +1585 -0
- data/stdlib/date/0/date_time.rbs +616 -0
- data/stdlib/date/0/time.rbs +26 -0
- data/stdlib/dbm/0/dbm.rbs +421 -0
- data/stdlib/delegate/0/delegator.rbs +184 -0
- data/stdlib/delegate/0/kernel.rbs +47 -0
- data/stdlib/delegate/0/simple_delegator.rbs +96 -0
- data/stdlib/did_you_mean/0/did_you_mean.rbs +343 -0
- data/stdlib/digest/0/digest.rbs +577 -0
- data/stdlib/erb/0/erb.rbs +532 -0
- data/stdlib/etc/0/etc.rbs +865 -0
- data/stdlib/fileutils/0/fileutils.rbs +1734 -0
- data/stdlib/find/0/find.rbs +49 -0
- data/stdlib/forwardable/0/forwardable.rbs +268 -0
- data/stdlib/io-console/0/io-console.rbs +414 -0
- data/stdlib/ipaddr/0/ipaddr.rbs +428 -0
- data/stdlib/json/0/json.rbs +1916 -0
- data/stdlib/kconv/0/kconv.rbs +166 -0
- data/stdlib/logger/0/formatter.rbs +45 -0
- data/stdlib/logger/0/log_device.rbs +100 -0
- data/stdlib/logger/0/logger.rbs +796 -0
- data/stdlib/logger/0/manifest.yaml +2 -0
- data/stdlib/logger/0/period.rbs +17 -0
- data/stdlib/logger/0/severity.rbs +34 -0
- data/stdlib/minitest/0/kernel.rbs +42 -0
- data/stdlib/minitest/0/minitest/abstract_reporter.rbs +52 -0
- data/stdlib/minitest/0/minitest/assertion.rbs +17 -0
- data/stdlib/minitest/0/minitest/assertions.rbs +590 -0
- data/stdlib/minitest/0/minitest/backtrace_filter.rbs +23 -0
- data/stdlib/minitest/0/minitest/bench_spec.rbs +102 -0
- data/stdlib/minitest/0/minitest/benchmark.rbs +259 -0
- data/stdlib/minitest/0/minitest/composite_reporter.rbs +25 -0
- data/stdlib/minitest/0/minitest/compress.rbs +13 -0
- data/stdlib/minitest/0/minitest/error_on_warning.rbs +3 -0
- data/stdlib/minitest/0/minitest/expectation.rbs +2 -0
- data/stdlib/minitest/0/minitest/expectations.rbs +21 -0
- data/stdlib/minitest/0/minitest/guard.rbs +64 -0
- data/stdlib/minitest/0/minitest/mock.rbs +64 -0
- data/stdlib/minitest/0/minitest/parallel/executor.rbs +46 -0
- data/stdlib/minitest/0/minitest/parallel/test/class_methods.rbs +5 -0
- data/stdlib/minitest/0/minitest/parallel/test.rbs +3 -0
- data/stdlib/minitest/0/minitest/parallel.rbs +2 -0
- data/stdlib/minitest/0/minitest/pride_io.rbs +62 -0
- data/stdlib/minitest/0/minitest/pride_lol.rbs +19 -0
- data/stdlib/minitest/0/minitest/progress_reporter.rbs +11 -0
- data/stdlib/minitest/0/minitest/reportable.rbs +53 -0
- data/stdlib/minitest/0/minitest/reporter.rbs +5 -0
- data/stdlib/minitest/0/minitest/result.rbs +28 -0
- data/stdlib/minitest/0/minitest/runnable.rbs +163 -0
- data/stdlib/minitest/0/minitest/skip.rbs +6 -0
- data/stdlib/minitest/0/minitest/spec/dsl/instance_methods.rbs +48 -0
- data/stdlib/minitest/0/minitest/spec/dsl.rbs +129 -0
- data/stdlib/minitest/0/minitest/spec.rbs +11 -0
- data/stdlib/minitest/0/minitest/statistics_reporter.rbs +81 -0
- data/stdlib/minitest/0/minitest/summary_reporter.rbs +18 -0
- data/stdlib/minitest/0/minitest/test/lifecycle_hooks.rbs +92 -0
- data/stdlib/minitest/0/minitest/test.rbs +69 -0
- data/stdlib/minitest/0/minitest/unexpected_error.rbs +12 -0
- data/stdlib/minitest/0/minitest/unexpected_warning.rbs +6 -0
- data/stdlib/minitest/0/minitest/unit/test_case.rbs +3 -0
- data/stdlib/minitest/0/minitest/unit.rbs +4 -0
- data/stdlib/minitest/0/minitest.rbs +115 -0
- data/stdlib/monitor/0/monitor.rbs +363 -0
- data/stdlib/mutex_m/0/mutex_m.rbs +104 -0
- data/stdlib/net-http/0/manifest.yaml +3 -0
- data/stdlib/net-http/0/net-http.rbs +5552 -0
- data/stdlib/net-protocol/0/manifest.yaml +2 -0
- data/stdlib/net-protocol/0/net-protocol.rbs +56 -0
- data/stdlib/net-smtp/0/manifest.yaml +2 -0
- data/stdlib/net-smtp/0/net-smtp.rbs +55 -0
- data/stdlib/nkf/0/nkf.rbs +402 -0
- data/stdlib/objspace/0/objspace.rbs +487 -0
- data/stdlib/observable/0/observable.rbs +217 -0
- data/stdlib/open-uri/0/manifest.yaml +4 -0
- data/stdlib/open-uri/0/open-uri.rbs +393 -0
- data/stdlib/open3/0/open3.rbs +147 -0
- data/stdlib/openssl/0/manifest.yaml +3 -0
- data/stdlib/openssl/0/openssl.rbs +12113 -0
- data/stdlib/optparse/0/optparse.rbs +1725 -0
- data/stdlib/pathname/0/pathname.rbs +1406 -0
- data/stdlib/pp/0/manifest.yaml +2 -0
- data/stdlib/pp/0/pp.rbs +300 -0
- data/stdlib/prettyprint/0/prettyprint.rbs +383 -0
- data/stdlib/pstore/0/pstore.rbs +603 -0
- data/stdlib/psych/0/core_ext.rbs +12 -0
- data/stdlib/psych/0/dbm.rbs +237 -0
- data/stdlib/psych/0/manifest.yaml +3 -0
- data/stdlib/psych/0/psych.rbs +402 -0
- data/stdlib/psych/0/store.rbs +59 -0
- data/stdlib/pty/0/pty.rbs +237 -0
- data/stdlib/rdoc/0/code_object.rbs +51 -0
- data/stdlib/rdoc/0/comment.rbs +59 -0
- data/stdlib/rdoc/0/context.rbs +153 -0
- data/stdlib/rdoc/0/markup.rbs +117 -0
- data/stdlib/rdoc/0/parser.rbs +56 -0
- data/stdlib/rdoc/0/rdoc.rbs +391 -0
- data/stdlib/rdoc/0/ri.rbs +17 -0
- data/stdlib/rdoc/0/store.rbs +48 -0
- data/stdlib/rdoc/0/top_level.rbs +97 -0
- data/stdlib/resolv/0/manifest.yaml +3 -0
- data/stdlib/resolv/0/resolv.rbs +1830 -0
- data/stdlib/ripper/0/ripper.rbs +1648 -0
- data/stdlib/securerandom/0/securerandom.rbs +62 -0
- data/stdlib/shellwords/0/shellwords.rbs +229 -0
- data/stdlib/singleton/0/singleton.rbs +131 -0
- data/stdlib/socket/0/addrinfo.rbs +666 -0
- data/stdlib/socket/0/basic_socket.rbs +590 -0
- data/stdlib/socket/0/constants.rbs +2295 -0
- data/stdlib/socket/0/ip_socket.rbs +92 -0
- data/stdlib/socket/0/socket.rbs +4157 -0
- data/stdlib/socket/0/socket_error.rbs +5 -0
- data/stdlib/socket/0/tcp_server.rbs +192 -0
- data/stdlib/socket/0/tcp_socket.rbs +79 -0
- data/stdlib/socket/0/udp_socket.rbs +133 -0
- data/stdlib/socket/0/unix_server.rbs +169 -0
- data/stdlib/socket/0/unix_socket.rbs +172 -0
- data/stdlib/stringio/0/stringio.rbs +567 -0
- data/stdlib/strscan/0/string_scanner.rbs +1627 -0
- data/stdlib/tempfile/0/tempfile.rbs +479 -0
- data/stdlib/time/0/time.rbs +432 -0
- data/stdlib/timeout/0/timeout.rbs +81 -0
- data/stdlib/tmpdir/0/tmpdir.rbs +69 -0
- data/stdlib/tsort/0/cyclic.rbs +5 -0
- data/stdlib/tsort/0/interfaces.rbs +20 -0
- data/stdlib/tsort/0/tsort.rbs +409 -0
- data/stdlib/uri/0/common.rbs +582 -0
- data/stdlib/uri/0/file.rbs +118 -0
- data/stdlib/uri/0/ftp.rbs +13 -0
- data/stdlib/uri/0/generic.rbs +1108 -0
- data/stdlib/uri/0/http.rbs +104 -0
- data/stdlib/uri/0/https.rbs +14 -0
- data/stdlib/uri/0/ldap.rbs +230 -0
- data/stdlib/uri/0/ldaps.rbs +14 -0
- data/stdlib/uri/0/mailto.rbs +92 -0
- data/stdlib/uri/0/rfc2396_parser.rbs +189 -0
- data/stdlib/uri/0/rfc3986_parser.rbs +2 -0
- data/stdlib/uri/0/ws.rbs +13 -0
- data/stdlib/uri/0/wss.rbs +9 -0
- data/stdlib/yaml/0/manifest.yaml +2 -0
- data/stdlib/yaml/0/yaml.rbs +1 -0
- data/stdlib/zlib/0/buf_error.rbs +10 -0
- data/stdlib/zlib/0/data_error.rbs +10 -0
- data/stdlib/zlib/0/deflate.rbs +210 -0
- data/stdlib/zlib/0/error.rbs +20 -0
- data/stdlib/zlib/0/gzip_file/crc_error.rbs +12 -0
- data/stdlib/zlib/0/gzip_file/error.rbs +23 -0
- data/stdlib/zlib/0/gzip_file/length_error.rbs +12 -0
- data/stdlib/zlib/0/gzip_file/no_footer.rbs +11 -0
- data/stdlib/zlib/0/gzip_file.rbs +156 -0
- data/stdlib/zlib/0/gzip_reader.rbs +293 -0
- data/stdlib/zlib/0/gzip_writer.rbs +166 -0
- data/stdlib/zlib/0/inflate.rbs +180 -0
- data/stdlib/zlib/0/mem_error.rbs +10 -0
- data/stdlib/zlib/0/need_dict.rbs +13 -0
- data/stdlib/zlib/0/stream_end.rbs +11 -0
- data/stdlib/zlib/0/stream_error.rbs +11 -0
- data/stdlib/zlib/0/version_error.rbs +11 -0
- data/stdlib/zlib/0/zlib.rbs +449 -0
- data/stdlib/zlib/0/zstream.rbs +200 -0
- metadata +532 -0
data/sig/typename.rbs
ADDED
@@ -0,0 +1,79 @@
|
|
1
|
+
module RBS
|
2
|
+
# TypeName represents name of types in RBS.
|
3
|
+
#
|
4
|
+
# TypeNames are one of the three kind, class, alias, and interface.
|
5
|
+
# *class* type names corresponds to Ruby classes and modules.
|
6
|
+
# There are no corresponding Ruby value to *alias* and *interface* type names.
|
7
|
+
#
|
8
|
+
class TypeName
|
9
|
+
# Type of type names.
|
10
|
+
#
|
11
|
+
type kind = :class | :alias | :interface
|
12
|
+
|
13
|
+
# The namespace the type name is defined in.
|
14
|
+
attr_reader namespace: Namespace
|
15
|
+
|
16
|
+
# Name of type name.
|
17
|
+
attr_reader name: Symbol
|
18
|
+
|
19
|
+
# Kind of the type.
|
20
|
+
attr_reader kind: kind
|
21
|
+
|
22
|
+
# Initializer accepts two keyword args, `namespace` and `name`.
|
23
|
+
# Note that `kind` is automatically determined from its `name`.
|
24
|
+
#
|
25
|
+
# If the name starts with capital alphabet, it is _class_.
|
26
|
+
# If the name starts with lower case alphabet, it is _alias_.
|
27
|
+
# If the name starts with an underscore, it is _interface_.
|
28
|
+
#
|
29
|
+
def initialize: (namespace: Namespace, name: Symbol) -> void
|
30
|
+
|
31
|
+
def ==: (untyped other) -> bool
|
32
|
+
|
33
|
+
def hash: () -> Integer
|
34
|
+
|
35
|
+
def to_s: () -> ::String
|
36
|
+
|
37
|
+
include _ToJson
|
38
|
+
|
39
|
+
# Returns a namespace with same components of self.
|
40
|
+
def to_namespace: () -> Namespace
|
41
|
+
|
42
|
+
# Returns true when self is a _class_ type name.
|
43
|
+
def class?: () -> bool
|
44
|
+
|
45
|
+
# Returns true when self is an _alias_ type name.
|
46
|
+
def alias?: () -> bool
|
47
|
+
|
48
|
+
def absolute!: () -> TypeName
|
49
|
+
|
50
|
+
def absolute?: () -> bool
|
51
|
+
|
52
|
+
def relative!: () -> TypeName
|
53
|
+
|
54
|
+
# Returns true when self is an _interface_ type name.
|
55
|
+
def interface?: () -> bool
|
56
|
+
|
57
|
+
# Returns a new type name with a namespace appended to given namespace.
|
58
|
+
#
|
59
|
+
# ```rb
|
60
|
+
# TypeName.parse("Hello").with_prefix(Namespace("World")) # => World::Hello
|
61
|
+
# TypeName.parse("Foo::Bar").with_prefix(Namespace("::Hello")) # => ::Hello::Foo::Bar
|
62
|
+
# TypeName.parse("::A::B").with_prefix(Namespace("C")) # => ::A::B
|
63
|
+
# ```
|
64
|
+
#
|
65
|
+
def with_prefix: (Namespace namespace) -> TypeName
|
66
|
+
|
67
|
+
def +: (TypeName) -> TypeName
|
68
|
+
|
69
|
+
def split: () -> Array[Symbol]
|
70
|
+
|
71
|
+
# Returns type name with given string representation.
|
72
|
+
def self.parse: (String name) -> RBS::TypeName
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
module Kernel
|
77
|
+
# Deprecated: Use `RBS::TypeName.parse` instead
|
78
|
+
%a{steep:deprecated} def TypeName: (String name) -> RBS::TypeName
|
79
|
+
end
|
data/sig/types.rbs
ADDED
@@ -0,0 +1,579 @@
|
|
1
|
+
module RBS
|
2
|
+
module Types
|
3
|
+
# _TypeBase interface represents the operations common to all of the types.
|
4
|
+
#
|
5
|
+
interface _TypeBase
|
6
|
+
# Returns names of free variables of a type.
|
7
|
+
# You can pass a Set instance to add the free variables to the set to avoid Set object allocation.
|
8
|
+
#
|
9
|
+
def free_variables: (?Set[Symbol]) -> Set[Symbol]
|
10
|
+
|
11
|
+
# Receives a substitution and returns a new type applied the substitution.
|
12
|
+
#
|
13
|
+
def sub: (Substitution) -> t
|
14
|
+
|
15
|
+
# Maps type names included in the type and returns new instance of type.
|
16
|
+
def map_type_name: () { (TypeName, Location[untyped, untyped]?, t) -> TypeName } -> t
|
17
|
+
|
18
|
+
# Yields all direct sub types included in the type.
|
19
|
+
# It doesn't yield the type itself.
|
20
|
+
#
|
21
|
+
# ```ruby
|
22
|
+
# parse("Hash[String, Array[Symbol]]").each_type do |ty|
|
23
|
+
# ... # Yields String and Array[Symbol]
|
24
|
+
# end
|
25
|
+
# ```
|
26
|
+
#
|
27
|
+
def each_type: () { (t) -> void } -> void
|
28
|
+
| () -> Enumerator[t, void]
|
29
|
+
|
30
|
+
# Returns a JSON representation.
|
31
|
+
#
|
32
|
+
include _ToJson
|
33
|
+
|
34
|
+
# Returns a String representation.
|
35
|
+
# `level` is used internally.
|
36
|
+
#
|
37
|
+
# ```ruby
|
38
|
+
# parse("String").to_s # => "String"
|
39
|
+
# parse("String | Integer").to_s() # => "String | Integer"
|
40
|
+
# parse("String | Integer").to_s(1) # => "(String | Integer)"
|
41
|
+
# ```
|
42
|
+
#
|
43
|
+
def to_s: (?Integer level) -> String
|
44
|
+
|
45
|
+
# Returns `true` if it has `self` type
|
46
|
+
#
|
47
|
+
def has_self_type?: () -> bool
|
48
|
+
|
49
|
+
# Returns `true` if it has `instance` or `class` types
|
50
|
+
def has_classish_type?: () -> bool
|
51
|
+
|
52
|
+
# Returns `true` if it has `void` types other than *return* position
|
53
|
+
#
|
54
|
+
# * The function return type is a return position (`() -> void`)
|
55
|
+
# * Generic parameter is a return position (`Enumerator[Integer, void]`)
|
56
|
+
#
|
57
|
+
def with_nonreturn_void?: () -> bool
|
58
|
+
end
|
59
|
+
|
60
|
+
# t represents union of all possible types.
|
61
|
+
#
|
62
|
+
type t = Bases::Bool | Bases::Void | Bases::Any | Bases::Nil | Bases::Top | Bases::Bottom | Bases::Self | Bases::Instance | Bases::Class
|
63
|
+
| Variable | ClassSingleton | Interface | ClassInstance | Alias | Tuple | Record | Optional | Union | Intersection | Proc | Literal
|
64
|
+
|
65
|
+
module NoFreeVariables
|
66
|
+
def free_variables: (?Set[Symbol]) -> Set[Symbol]
|
67
|
+
end
|
68
|
+
|
69
|
+
module NoSubst
|
70
|
+
def sub: (Substitution) -> self
|
71
|
+
end
|
72
|
+
|
73
|
+
module EmptyEachType
|
74
|
+
def each_type: () { (t) -> void } -> void
|
75
|
+
| () -> Enumerator[t, void]
|
76
|
+
|
77
|
+
# `map_type` returns itself, because there is no sub type.
|
78
|
+
#
|
79
|
+
def map_type: () { (t) -> t } -> self
|
80
|
+
| () -> Enumerator[t, self]
|
81
|
+
end
|
82
|
+
|
83
|
+
module NoTypeName
|
84
|
+
def map_type_name: () { (TypeName, Location[untyped, untyped]?, t) -> TypeName } -> self
|
85
|
+
end
|
86
|
+
|
87
|
+
module Bases
|
88
|
+
class Base
|
89
|
+
include _TypeBase
|
90
|
+
|
91
|
+
attr_reader location: Location[bot, bot]?
|
92
|
+
|
93
|
+
def initialize: (location: Location[bot, bot]?) -> void
|
94
|
+
|
95
|
+
def ==: (untyped other) -> bool
|
96
|
+
|
97
|
+
def hash: () -> Integer
|
98
|
+
|
99
|
+
alias eql? ==
|
100
|
+
|
101
|
+
include NoFreeVariables
|
102
|
+
include NoSubst
|
103
|
+
include EmptyEachType
|
104
|
+
include NoTypeName
|
105
|
+
end
|
106
|
+
|
107
|
+
class Bool < Base
|
108
|
+
end
|
109
|
+
|
110
|
+
class Void < Base
|
111
|
+
end
|
112
|
+
|
113
|
+
class Any < Base
|
114
|
+
@string: String?
|
115
|
+
|
116
|
+
def initialize: (location: Location[bot, bot]?, ?todo: bool) -> void
|
117
|
+
|
118
|
+
%a{steep:deprecated}
|
119
|
+
def todo!: () -> self
|
120
|
+
end
|
121
|
+
|
122
|
+
class Nil < Base
|
123
|
+
end
|
124
|
+
|
125
|
+
class Top < Base
|
126
|
+
end
|
127
|
+
|
128
|
+
class Bottom < Base
|
129
|
+
end
|
130
|
+
|
131
|
+
class Self < Base
|
132
|
+
end
|
133
|
+
|
134
|
+
class Instance < Base
|
135
|
+
def sub: (Substitution sub) -> t
|
136
|
+
end
|
137
|
+
|
138
|
+
class Class < Base
|
139
|
+
end
|
140
|
+
end
|
141
|
+
|
142
|
+
class Variable
|
143
|
+
type loc = Location[bot, bot]
|
144
|
+
|
145
|
+
attr_reader name: Symbol
|
146
|
+
|
147
|
+
@@count: Integer
|
148
|
+
|
149
|
+
include _TypeBase
|
150
|
+
include NoTypeName
|
151
|
+
include EmptyEachType
|
152
|
+
|
153
|
+
def initialize: (name: Symbol, location: loc?) -> void
|
154
|
+
|
155
|
+
attr_reader location: loc?
|
156
|
+
|
157
|
+
def ==: (untyped other) -> bool
|
158
|
+
|
159
|
+
alias eql? ==
|
160
|
+
|
161
|
+
def hash: () -> Integer
|
162
|
+
|
163
|
+
def self.build: (Symbol) -> Variable
|
164
|
+
| (Array[Symbol]) -> Array[Variable]
|
165
|
+
|
166
|
+
# Returns fresh type variable with prefix (if given.)
|
167
|
+
#
|
168
|
+
# Variable.fresh(:S) # => S@1
|
169
|
+
# Variable.fresh(:S) # => S@2
|
170
|
+
# Variable.fresh() # => T@3
|
171
|
+
#
|
172
|
+
def self.fresh: (?Symbol prefix) -> Variable
|
173
|
+
end
|
174
|
+
|
175
|
+
class ClassSingleton
|
176
|
+
# singleton(::Foo)
|
177
|
+
# ^^^^^ => name
|
178
|
+
type loc = Location[:name, bot]
|
179
|
+
|
180
|
+
def initialize: (name: TypeName, location: loc?) -> void
|
181
|
+
|
182
|
+
attr_reader name: TypeName
|
183
|
+
|
184
|
+
attr_reader location: loc?
|
185
|
+
|
186
|
+
include _TypeBase
|
187
|
+
include NoFreeVariables
|
188
|
+
include NoSubst
|
189
|
+
include EmptyEachType
|
190
|
+
|
191
|
+
def ==: (untyped other) -> bool
|
192
|
+
|
193
|
+
alias eql? ==
|
194
|
+
|
195
|
+
def hash: () -> Integer
|
196
|
+
end
|
197
|
+
|
198
|
+
module Application
|
199
|
+
attr_reader name: TypeName
|
200
|
+
attr_reader args: Array[t]
|
201
|
+
|
202
|
+
def ==: (untyped) -> bool
|
203
|
+
|
204
|
+
alias eql? ==
|
205
|
+
|
206
|
+
def hash: () -> Integer
|
207
|
+
|
208
|
+
def free_variables: (?Set[Symbol]) -> Set[Symbol]
|
209
|
+
|
210
|
+
def to_s: (?Integer level) -> String
|
211
|
+
|
212
|
+
def each_type: () { (t) -> void } -> void
|
213
|
+
| () -> Enumerator[t, void]
|
214
|
+
|
215
|
+
def has_self_type?: () -> bool
|
216
|
+
|
217
|
+
def has_classish_type?: () -> bool
|
218
|
+
|
219
|
+
def with_nonreturn_void?: () -> bool
|
220
|
+
end
|
221
|
+
|
222
|
+
class Interface
|
223
|
+
# _Foo
|
224
|
+
# ^^^^ => name
|
225
|
+
#
|
226
|
+
# _Foo[Bar, Baz]
|
227
|
+
# ^^^^ => name
|
228
|
+
# ^^^^^^^^^^ => args
|
229
|
+
type loc = Location[:name, :args]
|
230
|
+
|
231
|
+
def initialize: (name: TypeName, args: Array[t], location: loc?) -> void
|
232
|
+
|
233
|
+
include Application
|
234
|
+
include _TypeBase
|
235
|
+
|
236
|
+
attr_reader location: loc?
|
237
|
+
|
238
|
+
def map_type: () { (t) -> t } -> Interface
|
239
|
+
| () -> Enumerator[t, Interface]
|
240
|
+
end
|
241
|
+
|
242
|
+
# ClassInstance represents a type of an instance of a class.
|
243
|
+
#
|
244
|
+
# String # Type of an instance of String class.
|
245
|
+
# Array[String] # Type of an instance of Array class with instances of String.
|
246
|
+
# Kernel # Type of an instance of a class which includes Kernel.
|
247
|
+
#
|
248
|
+
class ClassInstance
|
249
|
+
include Application
|
250
|
+
|
251
|
+
# Foo
|
252
|
+
# ^^^ => name
|
253
|
+
#
|
254
|
+
# Foo[Bar, Baz]
|
255
|
+
# ^^^ => name
|
256
|
+
# ^^^^^^^^^^ => args
|
257
|
+
#
|
258
|
+
type loc = Location[:name, :args]
|
259
|
+
|
260
|
+
def initialize: (name: TypeName, args: Array[t], location: loc?) -> void
|
261
|
+
|
262
|
+
attr_reader location: loc?
|
263
|
+
|
264
|
+
include _TypeBase
|
265
|
+
|
266
|
+
def map_type: () { (t) -> t } -> ClassInstance
|
267
|
+
| () -> Enumerator[t, ClassInstance]
|
268
|
+
end
|
269
|
+
|
270
|
+
class Alias
|
271
|
+
# foo
|
272
|
+
# ^^^ => name
|
273
|
+
#
|
274
|
+
# foo[bar, baz]
|
275
|
+
# ^^^ => name
|
276
|
+
# ^^^^^^^^^^ => args
|
277
|
+
#
|
278
|
+
type loc = Location[:name, :args]
|
279
|
+
|
280
|
+
attr_reader location: loc?
|
281
|
+
|
282
|
+
def initialize: (name: TypeName, args: Array[t], location: loc?) -> void
|
283
|
+
|
284
|
+
include _TypeBase
|
285
|
+
include Application
|
286
|
+
|
287
|
+
def map_type: () { (t) -> t } -> Alias
|
288
|
+
| () -> Enumerator[t, Alias]
|
289
|
+
end
|
290
|
+
|
291
|
+
class Tuple
|
292
|
+
attr_reader types: Array[t]
|
293
|
+
|
294
|
+
type loc = Location[bot, bot]
|
295
|
+
|
296
|
+
def initialize: (types: Array[t], location: loc?) -> void
|
297
|
+
|
298
|
+
include _TypeBase
|
299
|
+
|
300
|
+
attr_reader location: loc?
|
301
|
+
|
302
|
+
def map_type: () { (t) -> t } -> Tuple
|
303
|
+
| () -> Enumerator[t, Tuple]
|
304
|
+
end
|
305
|
+
|
306
|
+
class Record
|
307
|
+
type key = Symbol | String | Integer | bool
|
308
|
+
|
309
|
+
# All types of all files
|
310
|
+
#
|
311
|
+
# If the key is *required*, the second value of the tuple is `true`.
|
312
|
+
# If the key is *optional*, the second value of the tuple is `false`.
|
313
|
+
#
|
314
|
+
attr_reader all_fields: Hash[key, [t, bool]]
|
315
|
+
|
316
|
+
attr_reader fields: Hash[key, t]
|
317
|
+
|
318
|
+
attr_reader optional_fields: Hash[key, t]
|
319
|
+
|
320
|
+
type loc = Location[bot, bot]
|
321
|
+
|
322
|
+
def initialize: (fields: Hash[key, t], location: loc?) -> void
|
323
|
+
| (all_fields: Hash[key, [t, bool]], location: loc?) -> void
|
324
|
+
|
325
|
+
include _TypeBase
|
326
|
+
|
327
|
+
attr_reader location: loc?
|
328
|
+
|
329
|
+
def map_type: () { (t) -> t } -> Record
|
330
|
+
| () -> Enumerator[t, Record]
|
331
|
+
end
|
332
|
+
|
333
|
+
class Optional
|
334
|
+
attr_reader type: t
|
335
|
+
|
336
|
+
type loc = Location[bot, bot]
|
337
|
+
|
338
|
+
def initialize: (type: t, location: loc?) -> void
|
339
|
+
|
340
|
+
include _TypeBase
|
341
|
+
|
342
|
+
attr_reader location: loc?
|
343
|
+
|
344
|
+
def map_type: () { (t) -> t } -> Optional
|
345
|
+
| () -> Enumerator[t, Optional]
|
346
|
+
end
|
347
|
+
|
348
|
+
class Union
|
349
|
+
attr_reader types: Array[t]
|
350
|
+
|
351
|
+
type loc = Location[bot, bot]
|
352
|
+
|
353
|
+
def initialize: (types: Array[t], location: loc?) -> void
|
354
|
+
|
355
|
+
include _TypeBase
|
356
|
+
|
357
|
+
attr_reader location: loc?
|
358
|
+
|
359
|
+
def map_type: () { (t) -> t } -> Union
|
360
|
+
| () -> Enumerator[t, Union]
|
361
|
+
end
|
362
|
+
|
363
|
+
class Intersection
|
364
|
+
attr_reader types: Array[t]
|
365
|
+
|
366
|
+
type loc = Location[bot, bot]
|
367
|
+
|
368
|
+
def initialize: (types: Array[t], location: loc?) -> void
|
369
|
+
|
370
|
+
include _TypeBase
|
371
|
+
|
372
|
+
attr_reader location: loc?
|
373
|
+
|
374
|
+
def map_type: () { (t) -> t } -> Intersection
|
375
|
+
| () -> Enumerator[t, Intersection]
|
376
|
+
end
|
377
|
+
|
378
|
+
class Function
|
379
|
+
class Param
|
380
|
+
type loc = Location[bot, :name]
|
381
|
+
|
382
|
+
attr_reader type: t
|
383
|
+
attr_reader name: Symbol?
|
384
|
+
attr_reader location: loc?
|
385
|
+
|
386
|
+
def initialize: (type: t, name: Symbol?, ?location: loc?) -> void
|
387
|
+
|
388
|
+
def map_type: { (t) -> t } -> Param
|
389
|
+
| -> Enumerator[t, Param]
|
390
|
+
end
|
391
|
+
|
392
|
+
attr_reader required_positionals: Array[Param]
|
393
|
+
attr_reader optional_positionals: Array[Param]
|
394
|
+
attr_reader rest_positionals: Param?
|
395
|
+
attr_reader trailing_positionals: Array[Param]
|
396
|
+
attr_reader required_keywords: Hash[Symbol, Param]
|
397
|
+
attr_reader optional_keywords: Hash[Symbol, Param]
|
398
|
+
attr_reader rest_keywords: Param?
|
399
|
+
attr_reader return_type: t
|
400
|
+
|
401
|
+
def initialize: (required_positionals: Array[Param],
|
402
|
+
optional_positionals: Array[Param],
|
403
|
+
rest_positionals: Param?,
|
404
|
+
trailing_positionals: Array[Param],
|
405
|
+
required_keywords: Hash[Symbol, Param],
|
406
|
+
optional_keywords: Hash[Symbol, Param],
|
407
|
+
rest_keywords: Param?,
|
408
|
+
return_type: t) -> void
|
409
|
+
|
410
|
+
def free_variables: (?Set[Symbol]) -> Set[Symbol]
|
411
|
+
|
412
|
+
def map_type: { (t) -> t } -> Function
|
413
|
+
| -> Enumerator[t, Function]
|
414
|
+
|
415
|
+
def map_type_name: () { (TypeName, Location[untyped, untyped]?, t) -> TypeName } -> Function
|
416
|
+
|
417
|
+
def each_type: () { (t) -> void } -> void
|
418
|
+
| -> Enumerator[t, void]
|
419
|
+
|
420
|
+
def each_param: () { (Param) -> void } -> void
|
421
|
+
| -> Enumerator[Param, void]
|
422
|
+
|
423
|
+
include _ToJson
|
424
|
+
|
425
|
+
def sub: (Substitution) -> Function
|
426
|
+
|
427
|
+
def self.empty: (t) -> instance
|
428
|
+
|
429
|
+
def with_return_type: (t) -> Function
|
430
|
+
|
431
|
+
def update: (?required_positionals: Array[Param],
|
432
|
+
?optional_positionals: Array[Param],
|
433
|
+
?rest_positionals: Param?,
|
434
|
+
?trailing_positionals: Array[Param],
|
435
|
+
?required_keywords: Hash[Symbol, Param],
|
436
|
+
?optional_keywords: Hash[Symbol, Param],
|
437
|
+
?rest_keywords: Param?,
|
438
|
+
?return_type: t) -> Function
|
439
|
+
|
440
|
+
def empty?: () -> bool
|
441
|
+
|
442
|
+
def param_to_s: () -> String
|
443
|
+
def return_to_s: () -> String
|
444
|
+
|
445
|
+
def drop_head: () -> [Param, Function]
|
446
|
+
def drop_tail: () -> [Param, Function]
|
447
|
+
|
448
|
+
def has_keyword?: () -> bool
|
449
|
+
|
450
|
+
def amap: [A, B] (Array[A]) { (A) -> B } -> Array[B]
|
451
|
+
|
452
|
+
def hmapv: [X, Y, Z] (Hash[X, Y]) { (Y) -> Z } -> Hash[X, Z]
|
453
|
+
|
454
|
+
def has_self_type?: () -> bool
|
455
|
+
|
456
|
+
def has_classish_type?: () -> bool
|
457
|
+
|
458
|
+
def with_nonreturn_void?: () -> bool
|
459
|
+
|
460
|
+
def ==: (untyped) -> bool
|
461
|
+
|
462
|
+
alias eql? ==
|
463
|
+
|
464
|
+
def hash: () -> Integer
|
465
|
+
end
|
466
|
+
|
467
|
+
# Function type without type checking arguments
|
468
|
+
#
|
469
|
+
class UntypedFunction
|
470
|
+
attr_reader return_type: t
|
471
|
+
|
472
|
+
def initialize: (return_type: t) -> void
|
473
|
+
|
474
|
+
def free_variables: (?Set[Symbol]) -> Set[Symbol]
|
475
|
+
|
476
|
+
def map_type: { (t) -> t } -> UntypedFunction
|
477
|
+
| -> Enumerator[t, UntypedFunction]
|
478
|
+
|
479
|
+
def map_type_name: () { (TypeName, Location[untyped, untyped]?, t) -> TypeName } -> UntypedFunction
|
480
|
+
|
481
|
+
def each_type: () { (t) -> void } -> void
|
482
|
+
| -> Enumerator[t, void]
|
483
|
+
|
484
|
+
def each_param: () { (Function::Param) -> void } -> void
|
485
|
+
| -> Enumerator[Function::Param, void]
|
486
|
+
|
487
|
+
include _ToJson
|
488
|
+
|
489
|
+
def sub: (Substitution) -> UntypedFunction
|
490
|
+
|
491
|
+
def with_return_type: (t) -> UntypedFunction
|
492
|
+
|
493
|
+
def update: (?return_type: t) -> UntypedFunction
|
494
|
+
|
495
|
+
def empty?: () -> bool
|
496
|
+
|
497
|
+
def has_self_type?: () -> bool
|
498
|
+
|
499
|
+
def has_classish_type?: () -> bool
|
500
|
+
|
501
|
+
def with_nonreturn_void?: () -> bool
|
502
|
+
|
503
|
+
# Returns `?`
|
504
|
+
def param_to_s: () -> String
|
505
|
+
|
506
|
+
# Returns `return_type.to_s(1)`
|
507
|
+
def return_to_s: () -> String
|
508
|
+
|
509
|
+
def ==: (untyped) -> bool
|
510
|
+
|
511
|
+
alias eql? ==
|
512
|
+
|
513
|
+
def hash: () -> Integer
|
514
|
+
end
|
515
|
+
|
516
|
+
type function = Types::Function | Types::UntypedFunction
|
517
|
+
|
518
|
+
class Block
|
519
|
+
attr_reader type: function
|
520
|
+
attr_reader required: bool
|
521
|
+
|
522
|
+
attr_reader self_type: t?
|
523
|
+
|
524
|
+
def initialize: (type: function, ?self_type: t?, required: boolish) -> void
|
525
|
+
|
526
|
+
def ==: (untyped other) -> bool
|
527
|
+
|
528
|
+
include _ToJson
|
529
|
+
|
530
|
+
def sub: (Substitution) -> Block
|
531
|
+
|
532
|
+
def map_type: () { (t) -> t } -> Block
|
533
|
+
end
|
534
|
+
|
535
|
+
module SelfTypeBindingHelper
|
536
|
+
def self?.self_type_binding_to_s: (t?) -> String
|
537
|
+
end
|
538
|
+
|
539
|
+
class Proc
|
540
|
+
attr_reader type: function
|
541
|
+
attr_reader block: Block?
|
542
|
+
|
543
|
+
attr_reader self_type: t?
|
544
|
+
|
545
|
+
type loc = Location[bot, bot]
|
546
|
+
|
547
|
+
def initialize: (location: loc?, type: function, ?self_type: t?, block: Block?) -> void
|
548
|
+
|
549
|
+
include _TypeBase
|
550
|
+
|
551
|
+
attr_reader location: loc?
|
552
|
+
|
553
|
+
def map_type: () { (t) -> t } -> Proc
|
554
|
+
| () -> Enumerator[t, Proc]
|
555
|
+
end
|
556
|
+
|
557
|
+
class Literal
|
558
|
+
type literal = String | Integer | Symbol | TrueClass | FalseClass
|
559
|
+
type loc = Location[bot, bot]
|
560
|
+
|
561
|
+
attr_reader literal: literal
|
562
|
+
|
563
|
+
def initialize: (literal: literal, location: loc?) -> void
|
564
|
+
|
565
|
+
include _TypeBase
|
566
|
+
include NoFreeVariables
|
567
|
+
include NoSubst
|
568
|
+
include EmptyEachType
|
569
|
+
include NoTypeName
|
570
|
+
|
571
|
+
attr_reader location: loc?
|
572
|
+
|
573
|
+
TABLE: Hash[String, String]
|
574
|
+
|
575
|
+
# Unescape string type body
|
576
|
+
def self.unescape_string: (String, bool is_double_quote) -> String
|
577
|
+
end
|
578
|
+
end
|
579
|
+
end
|