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
@@ -0,0 +1,267 @@
|
|
1
|
+
module RBS
|
2
|
+
module AST
|
3
|
+
module Declarations
|
4
|
+
type t = Class | Module | Interface | Constant | Global | TypeAlias | ClassAlias | ModuleAlias
|
5
|
+
|
6
|
+
class Base
|
7
|
+
end
|
8
|
+
|
9
|
+
interface _WithMember
|
10
|
+
def members: () -> Array[untyped]
|
11
|
+
end
|
12
|
+
|
13
|
+
module NestedDeclarationHelper : _WithMember
|
14
|
+
def each_member: () { (Members::t) -> void } -> void
|
15
|
+
| () -> Enumerator[Members::t, void]
|
16
|
+
|
17
|
+
def each_decl: () { (t) -> void } -> void
|
18
|
+
| () -> Enumerator[t, void]
|
19
|
+
end
|
20
|
+
|
21
|
+
module MixinHelper : _WithMember
|
22
|
+
type mixin_member = Members::Include | Members::Extend | Members::Prepend
|
23
|
+
|
24
|
+
@mixins: Array[mixin_member]
|
25
|
+
|
26
|
+
def each_mixin: () { (mixin_member) -> void } -> void
|
27
|
+
| () -> Enumerator[mixin_member, void]
|
28
|
+
end
|
29
|
+
|
30
|
+
class Class < Base
|
31
|
+
class Super
|
32
|
+
# String
|
33
|
+
# ^^^^^^ name
|
34
|
+
#
|
35
|
+
# Array[String]
|
36
|
+
# ^^^^^ name
|
37
|
+
# ^^^^^^^^ args
|
38
|
+
#
|
39
|
+
type loc = Location[:name, :args]
|
40
|
+
|
41
|
+
attr_reader name: TypeName
|
42
|
+
attr_reader args: Array[Types::t]
|
43
|
+
attr_reader location: loc?
|
44
|
+
|
45
|
+
def initialize: (name: TypeName, args: Array[Types::t], location: loc?) -> void
|
46
|
+
|
47
|
+
include _HashEqual
|
48
|
+
include _ToJson
|
49
|
+
end
|
50
|
+
|
51
|
+
type member = Members::t | t
|
52
|
+
|
53
|
+
# class Foo end
|
54
|
+
# ^^^^^ keyword
|
55
|
+
# ^^^ name
|
56
|
+
# ^^^ end
|
57
|
+
#
|
58
|
+
# class Foo[A] < String end
|
59
|
+
# ^^^^^ keyword
|
60
|
+
# ^^^ name
|
61
|
+
# ^^^ type_params
|
62
|
+
# ^ lt
|
63
|
+
# ^^^ end
|
64
|
+
#
|
65
|
+
type loc = Location[:keyword | :name | :end, :type_params | :lt]
|
66
|
+
|
67
|
+
include NestedDeclarationHelper
|
68
|
+
include MixinHelper
|
69
|
+
|
70
|
+
attr_reader name: TypeName
|
71
|
+
attr_reader type_params: Array[TypeParam]
|
72
|
+
attr_reader members: Array[member]
|
73
|
+
attr_reader super_class: Super?
|
74
|
+
attr_reader annotations: Array[Annotation]
|
75
|
+
attr_reader location: loc?
|
76
|
+
attr_reader comment: Comment?
|
77
|
+
|
78
|
+
def initialize: (name: TypeName, type_params: Array[TypeParam], members: Array[member], super_class: Super?, annotations: Array[Annotation], location: loc?, comment: Comment?) -> void
|
79
|
+
|
80
|
+
def update: (?name: TypeName, ?type_params: Array[TypeParam], ?members: Array[member], ?super_class: Super?, ?annotations: Array[Annotation], ?location: loc?, ?comment: Comment?) -> Declarations::Class
|
81
|
+
|
82
|
+
include _HashEqual
|
83
|
+
include _ToJson
|
84
|
+
end
|
85
|
+
|
86
|
+
class Module < Base
|
87
|
+
class Self
|
88
|
+
# _Each[String]
|
89
|
+
# ^^^^^ name
|
90
|
+
# ^^^^^^^^ args
|
91
|
+
#
|
92
|
+
type loc = Location[:name, :args]
|
93
|
+
|
94
|
+
attr_reader name: TypeName
|
95
|
+
attr_reader args: Array[Types::t]
|
96
|
+
attr_reader location: loc?
|
97
|
+
|
98
|
+
def initialize: (name: TypeName, args: Array[Types::t], location: loc?) -> void
|
99
|
+
|
100
|
+
include _HashEqual
|
101
|
+
include _ToJson
|
102
|
+
|
103
|
+
def to_s: () -> String
|
104
|
+
end
|
105
|
+
|
106
|
+
type member = Members::t | t
|
107
|
+
|
108
|
+
# module Foo end
|
109
|
+
# ^^^^^^ keyword
|
110
|
+
# ^^^ name
|
111
|
+
# ^^^ end
|
112
|
+
#
|
113
|
+
# module Foo[A] : BasicObject end
|
114
|
+
# ^^^^^^ keyword
|
115
|
+
# ^^^ name
|
116
|
+
# ^^^ type_params
|
117
|
+
# ^ colon
|
118
|
+
# ^^^^^^^^^^^ self_types
|
119
|
+
# ^^^ end
|
120
|
+
#
|
121
|
+
type loc = Location[:keyword | :name | :end, :type_params | :colon | :self_types]
|
122
|
+
|
123
|
+
include NestedDeclarationHelper
|
124
|
+
include MixinHelper
|
125
|
+
|
126
|
+
attr_reader name: TypeName
|
127
|
+
attr_reader type_params: Array[TypeParam]
|
128
|
+
attr_reader members: Array[member]
|
129
|
+
attr_reader location: loc?
|
130
|
+
attr_reader annotations: Array[Annotation]
|
131
|
+
attr_reader self_types: Array[Self]
|
132
|
+
attr_reader comment: Comment?
|
133
|
+
|
134
|
+
def initialize: (name: TypeName, type_params: Array[TypeParam], members: Array[member], location: loc?, annotations: Array[Annotation], self_types: Array[Self], comment: Comment?) -> void
|
135
|
+
|
136
|
+
def update: (?name: TypeName, ?type_params: Array[TypeParam], ?members: Array[member], ?location: loc?, ?annotations: Array[Annotation], ?self_types: Array[Self], ?comment: Comment?) -> Declarations::Module
|
137
|
+
|
138
|
+
include _HashEqual
|
139
|
+
include _ToJson
|
140
|
+
end
|
141
|
+
|
142
|
+
class Interface < Base
|
143
|
+
type member = Members::t
|
144
|
+
|
145
|
+
# interface _Foo end
|
146
|
+
# ^^^^^^^^^ keyword
|
147
|
+
# ^^^^ name
|
148
|
+
# ^^^ end
|
149
|
+
#
|
150
|
+
# interface _Bar[A, B] end
|
151
|
+
# ^^^^^^^^^ keyword
|
152
|
+
# ^^^^ name
|
153
|
+
# ^^^^^^ type_params
|
154
|
+
# ^^^ end
|
155
|
+
#
|
156
|
+
type loc = Location[:name | :keyword | :end, :type_params]
|
157
|
+
|
158
|
+
attr_reader name: TypeName
|
159
|
+
attr_reader type_params: Array[TypeParam]
|
160
|
+
attr_reader members: Array[member]
|
161
|
+
attr_reader annotations: Array[Annotation]
|
162
|
+
attr_reader location: loc?
|
163
|
+
attr_reader comment: Comment?
|
164
|
+
|
165
|
+
def initialize: (name: TypeName, type_params: Array[TypeParam], members: Array[member], annotations: Array[Annotation], location: loc?, comment: Comment?) -> void
|
166
|
+
|
167
|
+
def update: (?name: TypeName, ?type_params: Array[TypeParam], ?members: Array[member], ?annotations: Array[Annotation], ?location: loc?, ?comment: Comment?) -> Declarations::Interface
|
168
|
+
|
169
|
+
include MixinHelper
|
170
|
+
|
171
|
+
include _HashEqual
|
172
|
+
include _ToJson
|
173
|
+
end
|
174
|
+
|
175
|
+
class TypeAlias < Base
|
176
|
+
# type loc[T] = Location[T, bot]
|
177
|
+
# ^^^^ keyword
|
178
|
+
# ^^^ name
|
179
|
+
# ^^^ type_params
|
180
|
+
# ^ eq
|
181
|
+
#
|
182
|
+
type loc = Location[:keyword | :name | :eq, :type_params]
|
183
|
+
|
184
|
+
attr_reader name: TypeName
|
185
|
+
attr_reader type_params: Array[TypeParam]
|
186
|
+
attr_reader type: Types::t
|
187
|
+
attr_reader annotations: Array[Annotation]
|
188
|
+
attr_reader location: loc?
|
189
|
+
attr_reader comment: Comment?
|
190
|
+
|
191
|
+
def initialize: (name: TypeName, type_params: Array[TypeParam], type: Types::t, annotations: Array[Annotation], location: loc?, comment: Comment?) -> void
|
192
|
+
|
193
|
+
include _HashEqual
|
194
|
+
include _ToJson
|
195
|
+
end
|
196
|
+
|
197
|
+
class Constant < Base
|
198
|
+
# VERSION: String
|
199
|
+
# ^^^^^^^ name
|
200
|
+
# ^ colon
|
201
|
+
#
|
202
|
+
type loc = Location[:name | :colon, bot]
|
203
|
+
|
204
|
+
attr_reader name: TypeName
|
205
|
+
attr_reader type: Types::t
|
206
|
+
attr_reader location: loc?
|
207
|
+
attr_reader comment: Comment?
|
208
|
+
|
209
|
+
def initialize: (name: TypeName, type: Types::t, location: loc?, comment: Comment?) -> void
|
210
|
+
|
211
|
+
include _HashEqual
|
212
|
+
include _ToJson
|
213
|
+
end
|
214
|
+
|
215
|
+
class Global < Base
|
216
|
+
# $SIZE: String
|
217
|
+
# ^^^^^ name
|
218
|
+
# ^ colon
|
219
|
+
#
|
220
|
+
type loc = Location[:name | :colon, bot]
|
221
|
+
|
222
|
+
attr_reader name: Symbol
|
223
|
+
attr_reader type: Types::t
|
224
|
+
attr_reader location: loc?
|
225
|
+
attr_reader comment: Comment?
|
226
|
+
|
227
|
+
def initialize: (name: Symbol, type: Types::t, location: loc?, comment: Comment?) -> void
|
228
|
+
|
229
|
+
include _HashEqual
|
230
|
+
include _ToJson
|
231
|
+
end
|
232
|
+
|
233
|
+
class AliasDecl < Base
|
234
|
+
# module Foo = Bar
|
235
|
+
# ^^^^^^ keyword
|
236
|
+
# ^^^ new_name
|
237
|
+
# ^ eq
|
238
|
+
# ^^^ old_name
|
239
|
+
#
|
240
|
+
# class Foo = Bar
|
241
|
+
# ^^^^^ keyword
|
242
|
+
#
|
243
|
+
type loc = Location[:keyword | :new_name | :eq | :old_name, bot]
|
244
|
+
|
245
|
+
attr_reader new_name: TypeName
|
246
|
+
|
247
|
+
attr_reader old_name: TypeName
|
248
|
+
|
249
|
+
attr_reader location: loc?
|
250
|
+
|
251
|
+
attr_reader comment: Comment?
|
252
|
+
|
253
|
+
def initialize: (new_name: TypeName, old_name: TypeName, location: loc?, comment: Comment?) -> void
|
254
|
+
|
255
|
+
include _HashEqual
|
256
|
+
end
|
257
|
+
|
258
|
+
class ClassAlias < AliasDecl
|
259
|
+
include _ToJson
|
260
|
+
end
|
261
|
+
|
262
|
+
class ModuleAlias < AliasDecl
|
263
|
+
include _ToJson
|
264
|
+
end
|
265
|
+
end
|
266
|
+
end
|
267
|
+
end
|
data/sig/definition.rbs
ADDED
@@ -0,0 +1,173 @@
|
|
1
|
+
module RBS
|
2
|
+
class Definition
|
3
|
+
type accessibility = :public | :private
|
4
|
+
|
5
|
+
class Variable
|
6
|
+
attr_reader parent_variable: Variable?
|
7
|
+
attr_reader type: Types::t
|
8
|
+
attr_reader declared_in: TypeName
|
9
|
+
|
10
|
+
def initialize: (parent_variable: Variable?, type: Types::t, declared_in: TypeName) -> void
|
11
|
+
|
12
|
+
def sub: (Substitution) -> Variable
|
13
|
+
end
|
14
|
+
|
15
|
+
class Method
|
16
|
+
type method_member = AST::Members::MethodDefinition | AST::Members::AttrReader | AST::Members::AttrAccessor | AST::Members::AttrWriter
|
17
|
+
|
18
|
+
class TypeDef
|
19
|
+
attr_reader type: MethodType
|
20
|
+
attr_reader member: method_member
|
21
|
+
attr_reader defined_in: TypeName
|
22
|
+
attr_reader implemented_in: TypeName?
|
23
|
+
|
24
|
+
# Annotations given to `#member`
|
25
|
+
attr_reader member_annotations: Array[AST::Annotation]
|
26
|
+
|
27
|
+
# Annotations given to the overload associated to the method type
|
28
|
+
attr_reader overload_annotations: Array[AST::Annotation]
|
29
|
+
|
30
|
+
# Concatenation of `member_annotations` and `overload_annotations`
|
31
|
+
attr_reader annotations: Array[AST::Annotation]
|
32
|
+
|
33
|
+
def initialize: (type: MethodType, member: method_member, defined_in: TypeName, implemented_in: TypeName?, ?overload_annotations: Array[AST::Annotation]) -> void
|
34
|
+
|
35
|
+
def comment: () -> AST::Comment?
|
36
|
+
|
37
|
+
def update: (?type: MethodType, ?member: method_member, ?defined_in: TypeName, ?implemented_in: TypeName?) -> TypeDef
|
38
|
+
|
39
|
+
def overload?: () -> bool
|
40
|
+
end
|
41
|
+
|
42
|
+
attr_reader super_method: Method?
|
43
|
+
attr_reader defs: Array[TypeDef]
|
44
|
+
attr_reader accessibility: accessibility
|
45
|
+
|
46
|
+
attr_reader defined_in: TypeName?
|
47
|
+
attr_reader implemented_in: TypeName?
|
48
|
+
attr_reader method_types: Array[MethodType]
|
49
|
+
attr_reader comments: Array[AST::Comment]
|
50
|
+
|
51
|
+
attr_reader members: Array[method_member]
|
52
|
+
attr_reader alias_of: Method?
|
53
|
+
|
54
|
+
# Unused, always returns empty array
|
55
|
+
attr_reader extra_annotations: Array[AST::Annotation]
|
56
|
+
|
57
|
+
# Union of annotations given to `defs`, not contains annotations given to each overload
|
58
|
+
attr_reader annotations: Array[AST::Annotation]
|
59
|
+
|
60
|
+
# Note that the annotations given through `annotations:` keyword is ignored.
|
61
|
+
#
|
62
|
+
def initialize: (super_method: Method?,
|
63
|
+
defs: Array[TypeDef],
|
64
|
+
accessibility: accessibility,
|
65
|
+
alias_of: Method?,
|
66
|
+
?annotations: Array[AST::Annotation]) -> void
|
67
|
+
|
68
|
+
def public?: () -> bool
|
69
|
+
|
70
|
+
def private?: () -> bool
|
71
|
+
|
72
|
+
# Substitutes type variables to some types.
|
73
|
+
# Takes care of type parameter bounds.
|
74
|
+
#
|
75
|
+
def sub: (Substitution) -> Method
|
76
|
+
|
77
|
+
# Applies the mapping from `Types::t` to `Types::t`.
|
78
|
+
#
|
79
|
+
# Note this method doesn't handle upper bound in type params.
|
80
|
+
# You may want to use `#map_type_bound` explicitly, or `#sub` for simple substitution.
|
81
|
+
#
|
82
|
+
def map_type: () { (Types::t) -> Types::t } -> Method
|
83
|
+
|
84
|
+
def map_type_bound: () { (Types::t) -> Types::t } -> Method
|
85
|
+
|
86
|
+
def map_method_type: () { (MethodType) -> MethodType } -> Method
|
87
|
+
|
88
|
+
def update: (
|
89
|
+
?super_method: Method?,
|
90
|
+
?defs: Array[TypeDef],
|
91
|
+
?accessibility: accessibility,
|
92
|
+
?alias_of: Method?,
|
93
|
+
?annotations: Array[AST::Annotation]
|
94
|
+
) -> Method
|
95
|
+
end
|
96
|
+
|
97
|
+
module Ancestor
|
98
|
+
type t = Instance | Singleton
|
99
|
+
|
100
|
+
class Instance
|
101
|
+
type source = :super # Inheritance
|
102
|
+
| nil # Itself
|
103
|
+
| AST::Members::Include | AST::Members::Extend | AST::Members::Prepend # AST
|
104
|
+
| AST::Declarations::Module::Self
|
105
|
+
|
106
|
+
attr_reader name: TypeName
|
107
|
+
attr_reader args: Array[Types::t]
|
108
|
+
attr_reader source: source
|
109
|
+
|
110
|
+
def initialize: (name: TypeName, args: Array[Types::t], source: source) -> void
|
111
|
+
end
|
112
|
+
|
113
|
+
class Singleton
|
114
|
+
attr_reader name: TypeName
|
115
|
+
|
116
|
+
def initialize: (name: TypeName) -> void
|
117
|
+
end
|
118
|
+
end
|
119
|
+
|
120
|
+
class InstanceAncestors
|
121
|
+
attr_reader type_name: TypeName
|
122
|
+
attr_reader params: Array[Symbol]
|
123
|
+
attr_reader ancestors: Array[Ancestor::t]
|
124
|
+
|
125
|
+
def initialize: (type_name: TypeName, params: Array[Symbol], ancestors: Array[Ancestor::t]) -> void
|
126
|
+
|
127
|
+
def apply: (Array[Types::t], env: Environment, location: Location[untyped, untyped]?) -> Array[Ancestor::t]
|
128
|
+
end
|
129
|
+
|
130
|
+
class SingletonAncestors
|
131
|
+
attr_reader type_name: TypeName
|
132
|
+
attr_reader ancestors: Array[Ancestor::t]
|
133
|
+
|
134
|
+
def initialize: (type_name: TypeName, ancestors: Array[Ancestor::t]) -> void
|
135
|
+
end
|
136
|
+
|
137
|
+
type self_type = Types::ClassSingleton | Types::ClassInstance | Types::Interface
|
138
|
+
type definition_entry = Environment::ModuleEntry | Environment::ClassEntry | Environment::InterfaceEntry
|
139
|
+
|
140
|
+
attr_reader type_name: TypeName
|
141
|
+
attr_reader entry: definition_entry
|
142
|
+
attr_reader ancestors: InstanceAncestors | SingletonAncestors | nil
|
143
|
+
attr_reader self_type: self_type
|
144
|
+
attr_reader methods: Hash[Symbol, Method]
|
145
|
+
attr_reader instance_variables: Hash[Symbol, Variable]
|
146
|
+
attr_reader class_variables: Hash[Symbol, Variable]
|
147
|
+
|
148
|
+
def initialize: (type_name: TypeName, entry: definition_entry, self_type: self_type, ancestors: InstanceAncestors | SingletonAncestors | nil) -> void
|
149
|
+
|
150
|
+
def class?: () -> bool
|
151
|
+
|
152
|
+
def module?: () -> bool
|
153
|
+
|
154
|
+
def interface?: () -> bool
|
155
|
+
|
156
|
+
def class_type?: () -> bool
|
157
|
+
|
158
|
+
def instance_type?: () -> bool
|
159
|
+
|
160
|
+
def interface_type?: () -> bool
|
161
|
+
|
162
|
+
def type_params: () -> Array[Symbol]
|
163
|
+
|
164
|
+
def type_params_decl: () -> Array[AST::TypeParam]
|
165
|
+
|
166
|
+
def sub: (Substitution) -> Definition
|
167
|
+
|
168
|
+
def map_method_type: () { (MethodType) -> MethodType } -> Definition
|
169
|
+
|
170
|
+
def each_type: () { (Types::t) -> void } -> void
|
171
|
+
| () -> Enumerator[Types::t, void]
|
172
|
+
end
|
173
|
+
end
|
@@ -0,0 +1,165 @@
|
|
1
|
+
module RBS
|
2
|
+
# DefinitionBuilder translates TypeName to Definition of the type
|
3
|
+
#
|
4
|
+
# It also provides semantic utilities that depends on Environment.
|
5
|
+
#
|
6
|
+
class DefinitionBuilder
|
7
|
+
attr_reader env: Environment
|
8
|
+
attr_reader ancestor_builder: AncestorBuilder
|
9
|
+
attr_reader method_builder: MethodBuilder
|
10
|
+
|
11
|
+
attr_reader instance_cache: Hash[TypeName, Definition | false | nil]
|
12
|
+
attr_reader singleton_cache: Hash[TypeName, Definition | false | nil]
|
13
|
+
attr_reader singleton0_cache: Hash[TypeName, Definition | false | nil]
|
14
|
+
attr_reader interface_cache: Hash[TypeName, Definition | false | nil]
|
15
|
+
|
16
|
+
def initialize: (env: Environment, ?ancestor_builder: AncestorBuilder?, ?method_builder: MethodBuilder?) -> void
|
17
|
+
|
18
|
+
# Returns a Definition of a interface
|
19
|
+
#
|
20
|
+
def build_interface: (TypeName) -> Definition
|
21
|
+
|
22
|
+
# Returns a Definition of an instance type
|
23
|
+
#
|
24
|
+
# If TypeName is a module and `no_self_types` is `true`, it won't have methods of _self type constraints_.
|
25
|
+
# This typically happens when definition is being calculated for mixin.
|
26
|
+
#
|
27
|
+
def build_instance: (TypeName) -> Definition
|
28
|
+
|
29
|
+
# Returns a Definition of a singleton type
|
30
|
+
def build_singleton: (TypeName) -> Definition
|
31
|
+
|
32
|
+
# Validates the given Namespace and its ancestor namespaces exists
|
33
|
+
#
|
34
|
+
# Raises NoTypeFoundError
|
35
|
+
#
|
36
|
+
def ensure_namespace!: (Namespace, location: Location[untyped, untyped]?) -> void
|
37
|
+
|
38
|
+
# Expand a type alias of given name without type arguments.
|
39
|
+
# Raises an error if the type alias requires arguments.
|
40
|
+
#
|
41
|
+
# Assume `type foo[T] = [T, T]`:
|
42
|
+
#
|
43
|
+
# ```
|
44
|
+
# expand_alias("::foo") # => error
|
45
|
+
# ```
|
46
|
+
#
|
47
|
+
def expand_alias: (TypeName) -> Types::t
|
48
|
+
|
49
|
+
# Expand a type alias of given name with arguments of `untyped`.
|
50
|
+
#
|
51
|
+
# Assume `type foo[T] = [T, T]`:
|
52
|
+
#
|
53
|
+
# ```
|
54
|
+
# expand_alias1("::foo") # => [untyped, untyped]
|
55
|
+
# ```
|
56
|
+
#
|
57
|
+
def expand_alias1: (TypeName) -> Types::t
|
58
|
+
|
59
|
+
# Expand a type alias of given name with `args`.
|
60
|
+
#
|
61
|
+
# Assume `type foo[T] = [T, T]`:
|
62
|
+
#
|
63
|
+
# ```
|
64
|
+
# expand_alias2("::foo", ["::Integer"]) # => [::Integer, ::Integer]
|
65
|
+
# ```
|
66
|
+
#
|
67
|
+
def expand_alias2: (TypeName, Array[Types::t] args) -> Types::t
|
68
|
+
|
69
|
+
# Validates presence of type names recursively
|
70
|
+
#
|
71
|
+
# Assumes the type names are already resolved.
|
72
|
+
# Raises NoTypeFoundError in case of failure.
|
73
|
+
#
|
74
|
+
# Normalizes type names in the given type automatically.
|
75
|
+
#
|
76
|
+
def validate_type_presence: (Types::t) -> void
|
77
|
+
|
78
|
+
# Validates presence of an absolute type name
|
79
|
+
#
|
80
|
+
# Raises NoTypeFoundError in case of error.
|
81
|
+
#
|
82
|
+
# Normalizes the given type name automatically.
|
83
|
+
#
|
84
|
+
def validate_type_name: (TypeName, Location[untyped, untyped]?) -> void
|
85
|
+
|
86
|
+
# Returns a new DefinitionBuilder with updated Environment, AncestorBuilder, and exceptions
|
87
|
+
#
|
88
|
+
def update: (env: Environment, ancestor_builder: AncestorBuilder, except: _Each[TypeName]) -> DefinitionBuilder
|
89
|
+
|
90
|
+
private
|
91
|
+
|
92
|
+
def validate_super_class!: (TypeName, Environment::ClassEntry) -> void
|
93
|
+
|
94
|
+
def build_singleton0: (TypeName) -> Definition
|
95
|
+
|
96
|
+
# Returns `interface_methods` from given array of interface ancestors
|
97
|
+
#
|
98
|
+
def interface_methods: (Array[Definition::Ancestor::Instance] interface_ancestors) -> interface_methods
|
99
|
+
|
100
|
+
def try_cache: (TypeName, cache: Hash[TypeName, Definition | false | nil]) { () -> Definition } -> Definition
|
101
|
+
|
102
|
+
def validate_params_with: (Array[AST::TypeParam], result: VarianceCalculator::Result) { (AST::TypeParam) -> void } -> void
|
103
|
+
|
104
|
+
def validate_type_params: (Definition, ancestors: AncestorBuilder::OneAncestors, methods: MethodBuilder::Methods) -> void
|
105
|
+
|
106
|
+
def source_location: (Definition::Ancestor::Instance::source, AST::Declarations::t) -> Location[untyped, untyped]?
|
107
|
+
|
108
|
+
def insert_variable: (TypeName, Hash[Symbol, Definition::Variable], name: Symbol, type: Types::t) -> void
|
109
|
+
|
110
|
+
# Add method definition to `methods`, which will be merged to `class_definition` after defining all methods at this *level* -- class, module, or interface
|
111
|
+
#
|
112
|
+
# `class_definition` is a definition of given type, but it has definitions of prior levels.
|
113
|
+
#
|
114
|
+
def define_method: (
|
115
|
+
Hash[Symbol, Definition::Method] methods,
|
116
|
+
Definition class_definition,
|
117
|
+
MethodBuilder::Methods::Definition method_definition,
|
118
|
+
Substitution subst,
|
119
|
+
Hash[Symbol, Definition::Method]? self_type_methods,
|
120
|
+
defined_in: TypeName,
|
121
|
+
?implemented_in: TypeName?
|
122
|
+
) -> void
|
123
|
+
|
124
|
+
# The `interface_methods` type describes the association between the interface name to its name and the *mixin* to a module
|
125
|
+
#
|
126
|
+
type interface_methods = Hash[
|
127
|
+
Definition::Ancestor::Instance,
|
128
|
+
[MethodBuilder::Methods, AST::Members::Include | AST::Members::Extend]
|
129
|
+
]
|
130
|
+
|
131
|
+
# Add method definitions from `module_methods` to `definition`
|
132
|
+
#
|
133
|
+
# It also processes interface mixins, with duplication detection.
|
134
|
+
# It doesn't process module mixins.
|
135
|
+
#
|
136
|
+
def import_methods: (
|
137
|
+
Definition definition,
|
138
|
+
TypeName module_name,
|
139
|
+
MethodBuilder::Methods module_methods,
|
140
|
+
interface_methods interface_methods,
|
141
|
+
Substitution subst,
|
142
|
+
Hash[Symbol, Definition::Method]? self_type_methods,
|
143
|
+
) -> void
|
144
|
+
|
145
|
+
# Updates `definition` with methods and variables of `type_name` that can be a module or a class
|
146
|
+
#
|
147
|
+
# It processes includes and prepends recursively.
|
148
|
+
#
|
149
|
+
def define_instance: (Definition definition, TypeName type_name, Substitution subst) -> void
|
150
|
+
|
151
|
+
# Updates `definition` with methods defined in an interface `type_name`
|
152
|
+
#
|
153
|
+
# It processes includes recursively
|
154
|
+
#
|
155
|
+
def define_interface: (Definition definition, TypeName type_name, Substitution subst) -> void
|
156
|
+
|
157
|
+
# Returns a substitution that corresponds to type application
|
158
|
+
#
|
159
|
+
# ```
|
160
|
+
# tapp_subst(`::Array`, [`::Integer`]) # => Substitution.build([:Elem], [`::Integer`])
|
161
|
+
# ```
|
162
|
+
#
|
163
|
+
def tapp_subst: (TypeName, Array[Types::t]) -> Substitution
|
164
|
+
end
|
165
|
+
end
|
data/sig/diff.rbs
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
module RBS
|
2
|
+
class Diff
|
3
|
+
@type_name: TypeName
|
4
|
+
@library_options: RBS::CLI::LibraryOptions
|
5
|
+
@after_path: Array[String]
|
6
|
+
@before_path: Array[String]
|
7
|
+
@detail: boolish
|
8
|
+
|
9
|
+
def initialize: (
|
10
|
+
type_name: TypeName,
|
11
|
+
library_options: RBS::CLI::LibraryOptions,
|
12
|
+
?after_path: Array[String],
|
13
|
+
?before_path: Array[String],
|
14
|
+
?detail: boolish
|
15
|
+
) -> void
|
16
|
+
|
17
|
+
def each_diff: () { (String before, String after) -> void } -> void
|
18
|
+
|
19
|
+
private def each_diff_by: (Symbol kind, Hash[::Symbol, Definition::Method] before_methods, Hash[::Symbol, Definition::Method] after_methods) { (String before, String after) -> void } -> void
|
20
|
+
private def build_methods: (Array[String] path) -> [ Hash[::Symbol, Definition::Method], Hash[::Symbol, Definition::Method] , Hash[Symbol, Constant]]
|
21
|
+
private def build_env: (Array[String] path) -> Environment
|
22
|
+
private def build_builder: (Environment env) -> DefinitionBuilder
|
23
|
+
private def definition_method_to_s: (Symbol key, Symbol kind, Definition::Method definition_method) -> String?
|
24
|
+
private def each_diff_methods: (Symbol kind, Hash[Symbol, Definition::Method], Hash[Symbol, Definition::Method]) { (String before, String after) -> void } -> void
|
25
|
+
private def each_diff_constants: (Hash[Symbol, Constant] before_constants, Hash[Symbol, Constant] after_constants) { (String before, String after) -> void } -> void
|
26
|
+
private def constant_to_s: (Constant?) -> String
|
27
|
+
end
|
28
|
+
end
|
data/sig/directives.rbs
ADDED
@@ -0,0 +1,77 @@
|
|
1
|
+
module RBS
|
2
|
+
module AST
|
3
|
+
module Directives
|
4
|
+
type t = Use | ResolveTypeNames
|
5
|
+
|
6
|
+
class Base
|
7
|
+
end
|
8
|
+
|
9
|
+
# ```
|
10
|
+
# use Foo, Foo::Bar as FBar, Foo:Baz::*
|
11
|
+
# ```
|
12
|
+
#
|
13
|
+
class Use < Base
|
14
|
+
type clause = SingleClause | WildcardClause
|
15
|
+
|
16
|
+
class SingleClause
|
17
|
+
# Foo::Bar
|
18
|
+
# ^^^^^^^^ type_name
|
19
|
+
#
|
20
|
+
# Foo::Bar as X
|
21
|
+
# ^^ keyword
|
22
|
+
# ^ new_name
|
23
|
+
#
|
24
|
+
type loc = Location[:type_name, :keyword | :new_name]
|
25
|
+
|
26
|
+
attr_reader type_name: TypeName
|
27
|
+
|
28
|
+
attr_reader new_name: Symbol?
|
29
|
+
|
30
|
+
attr_reader location: loc?
|
31
|
+
|
32
|
+
def initialize: (type_name: TypeName, new_name: Symbol?, location: loc?) -> void
|
33
|
+
end
|
34
|
+
|
35
|
+
class WildcardClause
|
36
|
+
# Foo::Bar::*
|
37
|
+
# ^^^^^^^^^^ namespace
|
38
|
+
# ^ star
|
39
|
+
#
|
40
|
+
type loc = Location[:namespace | :star, bot]
|
41
|
+
|
42
|
+
attr_reader namespace: Namespace
|
43
|
+
|
44
|
+
attr_reader location: loc?
|
45
|
+
|
46
|
+
def initialize: (namespace: Namespace, location: loc?) -> void
|
47
|
+
end
|
48
|
+
|
49
|
+
# use Foo
|
50
|
+
# ^^^ keyword
|
51
|
+
type loc = Location[:keyword, bot]
|
52
|
+
|
53
|
+
attr_reader clauses: Array[clause]
|
54
|
+
|
55
|
+
attr_reader location: loc?
|
56
|
+
|
57
|
+
def initialize: (clauses: Array[clause], location: loc?) -> void
|
58
|
+
end
|
59
|
+
|
60
|
+
class ResolveTypeNames < Base
|
61
|
+
# ```
|
62
|
+
# # resolve-type-names: false
|
63
|
+
# ^^^^^^^^^^^^^^^^^^ keyword
|
64
|
+
# ^ colon
|
65
|
+
# ^^^^^ value
|
66
|
+
# ```
|
67
|
+
type loc = Location[:keyword | :colon | :value, bot]
|
68
|
+
|
69
|
+
attr_reader location: loc?
|
70
|
+
|
71
|
+
attr_reader value: bool
|
72
|
+
|
73
|
+
def initialize: (value: bool, location: loc?) -> void
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|