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/errors.rbs
ADDED
@@ -0,0 +1,405 @@
|
|
1
|
+
module RBS
|
2
|
+
interface _MethodName
|
3
|
+
def kind: () -> (:instance | :singleton)
|
4
|
+
|
5
|
+
def type_name: () -> TypeName
|
6
|
+
|
7
|
+
def method_name: () -> Symbol
|
8
|
+
end
|
9
|
+
|
10
|
+
module MethodNameHelper : _MethodName
|
11
|
+
def method_name_string: () -> String
|
12
|
+
end
|
13
|
+
|
14
|
+
# Error class for errors defined in RBS.
|
15
|
+
#
|
16
|
+
class BaseError < StandardError
|
17
|
+
end
|
18
|
+
|
19
|
+
interface _Location
|
20
|
+
%a{pure} def location: () -> Location[untyped, untyped]?
|
21
|
+
end
|
22
|
+
|
23
|
+
module DetailedMessageable : _Location, Exception
|
24
|
+
def detailed_message: (?highlight: boolish, **untyped) -> String
|
25
|
+
end
|
26
|
+
|
27
|
+
# Error class for errors raised during parsing.
|
28
|
+
#
|
29
|
+
class ParsingError < BaseError
|
30
|
+
include DetailedMessageable
|
31
|
+
|
32
|
+
attr_reader location: Location[untyped, untyped]
|
33
|
+
attr_reader error_message: String
|
34
|
+
attr_reader token_type: String
|
35
|
+
|
36
|
+
def initialize: (Location[untyped, untyped], String error_message, String token_type) -> void
|
37
|
+
|
38
|
+
def error_value: () -> String
|
39
|
+
|
40
|
+
def token_str: () -> String
|
41
|
+
end
|
42
|
+
|
43
|
+
class Parser
|
44
|
+
SemanticsError: singleton(ParsingError)
|
45
|
+
SyntaxError: singleton(ParsingError)
|
46
|
+
LexerError: singleton(ParsingError)
|
47
|
+
end
|
48
|
+
|
49
|
+
# Error class for errors raised during loading environments.
|
50
|
+
#
|
51
|
+
class LoadingError < BaseError
|
52
|
+
end
|
53
|
+
|
54
|
+
# Error class for errors raised during building definitions.
|
55
|
+
#
|
56
|
+
class DefinitionError < BaseError
|
57
|
+
end
|
58
|
+
|
59
|
+
class InvalidTypeApplicationError < DefinitionError
|
60
|
+
attr_reader type_name: TypeName
|
61
|
+
attr_reader args: Array[Types::t]
|
62
|
+
attr_reader params: Array[Symbol]
|
63
|
+
attr_reader type_params: Array[AST::TypeParam]
|
64
|
+
attr_reader location: Location[untyped, untyped]?
|
65
|
+
|
66
|
+
def initialize: (type_name: TypeName, args: Array[Types::t], params: Array[AST::TypeParam], location: Location[untyped, untyped]?) -> void
|
67
|
+
|
68
|
+
def self.check!: (type_name: TypeName, args: Array[Types::t], params: Array[AST::TypeParam], location: Location[untyped, untyped]?) -> void
|
69
|
+
|
70
|
+
def self.check2!: (env: Environment, type_name: TypeName, args: Array[Types::t], location: Location[untyped, untyped]?) -> void
|
71
|
+
end
|
72
|
+
|
73
|
+
class RecursiveAncestorError < DefinitionError
|
74
|
+
attr_reader ancestors: Array[Definition::Ancestor::t]
|
75
|
+
attr_reader location: Location[untyped, untyped]?
|
76
|
+
|
77
|
+
def initialize: (ancestors: Array[Definition::Ancestor::t], location: Location[untyped, untyped]?) -> void
|
78
|
+
|
79
|
+
def self.check!: (Definition::Ancestor::t, ancestors: Array[Definition::Ancestor::t], location: Location[untyped, untyped]?) -> void
|
80
|
+
end
|
81
|
+
|
82
|
+
class NoTypeFoundError < DefinitionError
|
83
|
+
include DetailedMessageable
|
84
|
+
|
85
|
+
attr_reader type_name: TypeName
|
86
|
+
attr_reader location: Location[untyped, untyped]?
|
87
|
+
|
88
|
+
def initialize: (type_name: TypeName, location: Location[untyped, untyped]?) -> void
|
89
|
+
|
90
|
+
def self.check!: (TypeName, env: Environment, location: Location[untyped, untyped]?) -> TypeName
|
91
|
+
end
|
92
|
+
|
93
|
+
class NoSuperclassFoundError < DefinitionError
|
94
|
+
attr_reader type_name: TypeName
|
95
|
+
attr_reader location: Location[untyped, untyped]?
|
96
|
+
|
97
|
+
def initialize: (type_name: TypeName, location: Location[untyped, untyped]?) -> void
|
98
|
+
|
99
|
+
def self.check!: (TypeName, env: Environment, location: Location[untyped, untyped]?) -> void
|
100
|
+
end
|
101
|
+
|
102
|
+
class NoSelfTypeFoundError < DefinitionError
|
103
|
+
include DetailedMessageable
|
104
|
+
|
105
|
+
attr_reader type_name: TypeName
|
106
|
+
attr_reader location: Location[untyped, untyped]?
|
107
|
+
|
108
|
+
def initialize: (type_name: TypeName, location: Location[untyped, untyped]?) -> void
|
109
|
+
|
110
|
+
# The type name in `self` is automatically normalized
|
111
|
+
#
|
112
|
+
def self.check!: (AST::Declarations::Module::Self, env: Environment) -> void
|
113
|
+
end
|
114
|
+
|
115
|
+
class NoMixinFoundError < DefinitionError
|
116
|
+
include DetailedMessageable
|
117
|
+
|
118
|
+
attr_reader type_name: TypeName
|
119
|
+
attr_reader member: AST::Members::t
|
120
|
+
|
121
|
+
def initialize: (type_name: TypeName, member: AST::Members::t) -> void
|
122
|
+
|
123
|
+
def location: () -> Location[untyped, untyped]?
|
124
|
+
|
125
|
+
def self.check!: (TypeName, env: Environment, member: AST::Members::t) -> void
|
126
|
+
end
|
127
|
+
|
128
|
+
class DuplicatedMethodDefinitionError < DefinitionError
|
129
|
+
include DetailedMessageable
|
130
|
+
|
131
|
+
type ty = Types::ClassSingleton | Types::ClassInstance | Types::Interface
|
132
|
+
type original = DefinitionBuilder::MethodBuilder::Methods::Definition::original
|
133
|
+
|
134
|
+
attr_reader type: ty
|
135
|
+
attr_reader method_name: Symbol
|
136
|
+
attr_reader members: Array[original]
|
137
|
+
|
138
|
+
def initialize: (type: ty, method_name: Symbol, members: Array[original]) -> void
|
139
|
+
|
140
|
+
def type_name: () -> TypeName
|
141
|
+
|
142
|
+
def qualified_method_name: () -> String
|
143
|
+
|
144
|
+
def location: () -> Location[untyped, untyped]?
|
145
|
+
|
146
|
+
def other_locations: () -> Array[Location[untyped, untyped]?]
|
147
|
+
end
|
148
|
+
|
149
|
+
# An interface mixin causes a duplication of a method definition
|
150
|
+
#
|
151
|
+
# ```rbs
|
152
|
+
# interface _Foo1
|
153
|
+
# def foo: () -> void
|
154
|
+
# end
|
155
|
+
#
|
156
|
+
# interface _Foo2
|
157
|
+
# def foo: () -> void
|
158
|
+
# end
|
159
|
+
#
|
160
|
+
# class Foo
|
161
|
+
# include _Foo1
|
162
|
+
# include _Foo2 # <= The error will be reported here (or the line of _Foo1)
|
163
|
+
# end
|
164
|
+
# ```
|
165
|
+
#
|
166
|
+
class DuplicatedInterfaceMethodDefinitionError < DefinitionError
|
167
|
+
include DetailedMessageable
|
168
|
+
|
169
|
+
type ty = Types::ClassSingleton | Types::ClassInstance | Types::Interface
|
170
|
+
type mixin_member = AST::Members::Include | AST::Members::Extend
|
171
|
+
|
172
|
+
attr_reader type: ty
|
173
|
+
attr_reader method_name: Symbol
|
174
|
+
attr_reader member: mixin_member
|
175
|
+
|
176
|
+
def initialize: (type: ty, method_name: Symbol, member: mixin_member) -> void
|
177
|
+
|
178
|
+
def type_name: () -> TypeName
|
179
|
+
|
180
|
+
def qualified_method_name: () -> String
|
181
|
+
|
182
|
+
def location: () -> AST::Members::Mixin::loc?
|
183
|
+
end
|
184
|
+
|
185
|
+
class VariableDuplicationError < DefinitionError
|
186
|
+
include DetailedMessageable
|
187
|
+
|
188
|
+
attr_reader member: AST::Members::Var
|
189
|
+
|
190
|
+
def initialize: (member: AST::Members::Var) -> void
|
191
|
+
|
192
|
+
def location: () -> Location[bot, bot]
|
193
|
+
end
|
194
|
+
|
195
|
+
class InstanceVariableDuplicationError < VariableDuplicationError
|
196
|
+
def self.check!: (variables: Hash[Symbol, Definition::Variable], member: AST::Members::InstanceVariable, type_name: TypeName) -> void
|
197
|
+
end
|
198
|
+
|
199
|
+
class ClassInstanceVariableDuplicationError < VariableDuplicationError
|
200
|
+
def self.check!: (variables: Hash[Symbol, Definition::Variable], member: AST::Members::ClassInstanceVariable, type_name: TypeName) -> void
|
201
|
+
end
|
202
|
+
|
203
|
+
class ClassVariableDuplicationError < VariableDuplicationError
|
204
|
+
def self.check!: (variables: Hash[Symbol, Definition::Variable], member: AST::Members::ClassVariable, type_name: TypeName) -> void
|
205
|
+
end
|
206
|
+
|
207
|
+
# The `alias` member declares an alias from unknown method
|
208
|
+
#
|
209
|
+
class UnknownMethodAliasError < DefinitionError
|
210
|
+
include DetailedMessageable
|
211
|
+
|
212
|
+
attr_reader type_name: TypeName
|
213
|
+
attr_reader original_name: Symbol
|
214
|
+
attr_reader aliased_name: Symbol
|
215
|
+
attr_reader location: Location[untyped, untyped]?
|
216
|
+
|
217
|
+
def initialize: (type_name: TypeName, original_name: Symbol, aliased_name: Symbol, location: Location[untyped, untyped]?) -> void
|
218
|
+
end
|
219
|
+
|
220
|
+
class SuperclassMismatchError < DefinitionError
|
221
|
+
attr_reader name: TypeName
|
222
|
+
attr_reader entry: Environment::ClassEntry
|
223
|
+
|
224
|
+
def initialize: (name: TypeName, entry: Environment::ClassEntry) -> void
|
225
|
+
end
|
226
|
+
|
227
|
+
# The *overloading* method definition cannot find *non-overloading* method definition
|
228
|
+
#
|
229
|
+
class InvalidOverloadMethodError < DefinitionError
|
230
|
+
include DetailedMessageable
|
231
|
+
|
232
|
+
attr_reader type_name: TypeName
|
233
|
+
attr_reader method_name: Symbol
|
234
|
+
attr_reader kind: :instance | :singleton
|
235
|
+
attr_reader members: Array[AST::Members::MethodDefinition]
|
236
|
+
|
237
|
+
def initialize: (type_name: TypeName, method_name: Symbol, kind: :instance | :singleton, members: Array[AST::Members::MethodDefinition]) -> void
|
238
|
+
|
239
|
+
def location: () -> AST::Members::MethodDefinition::loc?
|
240
|
+
end
|
241
|
+
|
242
|
+
class GenericParameterMismatchError < LoadingError
|
243
|
+
attr_reader name: TypeName
|
244
|
+
attr_reader decl: AST::Declarations::Class | AST::Declarations::Module
|
245
|
+
|
246
|
+
def initialize: (name: TypeName, decl: AST::Declarations::Class | AST::Declarations::Module) -> void
|
247
|
+
end
|
248
|
+
|
249
|
+
class DuplicatedDeclarationError < LoadingError
|
250
|
+
attr_reader name: TypeName | Symbol
|
251
|
+
attr_reader decls: Array[AST::Declarations::t]
|
252
|
+
|
253
|
+
def initialize: (TypeName | Symbol, *AST::Declarations::t) -> void
|
254
|
+
end
|
255
|
+
|
256
|
+
class InvalidVarianceAnnotationError < DefinitionError
|
257
|
+
include DetailedMessageable
|
258
|
+
|
259
|
+
attr_reader type_name: TypeName
|
260
|
+
attr_reader param: AST::TypeParam
|
261
|
+
attr_reader location: Location[untyped, untyped]?
|
262
|
+
|
263
|
+
def initialize: (type_name: TypeName, param: AST::TypeParam, location: Location[untyped, untyped]?) -> void
|
264
|
+
end
|
265
|
+
|
266
|
+
class RecursiveAliasDefinitionError < DefinitionError
|
267
|
+
include DetailedMessageable
|
268
|
+
|
269
|
+
type ty = Types::ClassInstance | Types::ClassSingleton | Types::Interface
|
270
|
+
type defn = DefinitionBuilder::MethodBuilder::Methods::Definition
|
271
|
+
|
272
|
+
attr_reader type: ty
|
273
|
+
attr_reader defs: Array[defn]
|
274
|
+
|
275
|
+
def initialize: (type: ty, defs: Array[defn]) -> void
|
276
|
+
|
277
|
+
def location: () -> Location[untyped, untyped]?
|
278
|
+
end
|
279
|
+
|
280
|
+
# MixinClassError is raised if a include/prepend/extend has a class (not a module) to mix-in
|
281
|
+
#
|
282
|
+
class MixinClassError < DefinitionError
|
283
|
+
include DetailedMessageable
|
284
|
+
|
285
|
+
type member = AST::Members::Include | AST::Members::Prepend | AST::Members::Extend
|
286
|
+
|
287
|
+
attr_reader type_name: TypeName
|
288
|
+
attr_reader member: member
|
289
|
+
|
290
|
+
def initialize: (type_name: TypeName, member: member) -> void
|
291
|
+
|
292
|
+
def location: () -> Location[untyped, untyped]?
|
293
|
+
|
294
|
+
def self.check!: (type_name: TypeName, env: Environment, member: member) -> void
|
295
|
+
|
296
|
+
def mixin_name: () -> String
|
297
|
+
end
|
298
|
+
|
299
|
+
# InheritModuleError is raised if a class definition inherits a module (not a class)
|
300
|
+
#
|
301
|
+
class InheritModuleError < DefinitionError
|
302
|
+
include DetailedMessageable
|
303
|
+
|
304
|
+
attr_reader super_decl: AST::Declarations::Class::Super
|
305
|
+
|
306
|
+
def initialize: (AST::Declarations::Class::Super) -> void
|
307
|
+
|
308
|
+
def location: () -> Location[untyped, untyped]?
|
309
|
+
|
310
|
+
# Confirms if `super` inherits specifies a class
|
311
|
+
#
|
312
|
+
# Automatically normalize the name of super.
|
313
|
+
#
|
314
|
+
def self.check!: (AST::Declarations::Class::Super, env: Environment) -> void
|
315
|
+
end
|
316
|
+
|
317
|
+
class RecursiveTypeAliasError < BaseError
|
318
|
+
include DetailedMessageable
|
319
|
+
|
320
|
+
attr_reader alias_names: Array[TypeName]
|
321
|
+
attr_reader location: Location[untyped, untyped]?
|
322
|
+
|
323
|
+
def initialize: (alias_names: Array[TypeName], location: Location[untyped, untyped]?) -> void
|
324
|
+
|
325
|
+
def name: () -> String
|
326
|
+
end
|
327
|
+
|
328
|
+
class NonregularTypeAliasError < BaseError
|
329
|
+
include DetailedMessageable
|
330
|
+
|
331
|
+
# Diagnostic reported from `TypeAliasRegularity`.
|
332
|
+
attr_reader diagnostic: TypeAliasRegularity::Diagnostic
|
333
|
+
|
334
|
+
# Location of the definition.
|
335
|
+
attr_reader location: Location[untyped, untyped]?
|
336
|
+
|
337
|
+
def initialize: (diagnostic: TypeAliasRegularity::Diagnostic, location: Location[untyped, untyped]?) -> void
|
338
|
+
end
|
339
|
+
|
340
|
+
class CyclicTypeParameterBound < BaseError
|
341
|
+
include DetailedMessageable
|
342
|
+
|
343
|
+
attr_reader location: Location[untyped, untyped]?
|
344
|
+
|
345
|
+
# Array of parameters which contains cyclic dependencies.
|
346
|
+
attr_reader params: Array[AST::TypeParam]
|
347
|
+
|
348
|
+
# Type name
|
349
|
+
attr_reader type_name: TypeName
|
350
|
+
|
351
|
+
# Method name
|
352
|
+
attr_reader method_name: Symbol?
|
353
|
+
|
354
|
+
def initialize: (type_name: TypeName, method_name: Symbol?, params: Array[AST::TypeParam], location: Location[untyped, untyped]?) -> void
|
355
|
+
end
|
356
|
+
|
357
|
+
# A module/class alias declaration has inconsistent right-hand-side
|
358
|
+
#
|
359
|
+
# ```rbs
|
360
|
+
# module Foo = Object # Error
|
361
|
+
# class Bar = Kernel # Error
|
362
|
+
# ```
|
363
|
+
#
|
364
|
+
class InconsistentClassModuleAliasError < BaseError
|
365
|
+
include DetailedMessageable
|
366
|
+
|
367
|
+
attr_reader alias_entry: Environment::ModuleAliasEntry | Environment::ClassAliasEntry
|
368
|
+
|
369
|
+
def initialize: (Environment::ModuleAliasEntry | Environment::ClassAliasEntry) -> void
|
370
|
+
|
371
|
+
def location: () -> AST::Declarations::AliasDecl::loc?
|
372
|
+
end
|
373
|
+
|
374
|
+
# A module/class alias declaration is cyclic
|
375
|
+
#
|
376
|
+
class CyclicClassAliasDefinitionError < BaseError
|
377
|
+
include DetailedMessageable
|
378
|
+
|
379
|
+
attr_reader alias_entry: Environment::ModuleAliasEntry | Environment::ClassAliasEntry
|
380
|
+
|
381
|
+
def initialize: (Environment::ModuleAliasEntry | Environment::ClassAliasEntry) -> void
|
382
|
+
|
383
|
+
def location: () -> AST::Declarations::AliasDecl::loc?
|
384
|
+
end
|
385
|
+
|
386
|
+
class WillSyntaxError < BaseError
|
387
|
+
include RBS::DetailedMessageable
|
388
|
+
|
389
|
+
def initialize: (String message, location: Location[untyped, untyped]?) -> void
|
390
|
+
|
391
|
+
attr_reader location: Location[untyped, untyped]?
|
392
|
+
end
|
393
|
+
|
394
|
+
class TypeParamDefaultReferenceError < BaseError
|
395
|
+
include DetailedMessageable
|
396
|
+
|
397
|
+
attr_reader type_param: AST::TypeParam
|
398
|
+
|
399
|
+
def initialize: (AST::TypeParam, location: Location[untyped, untyped]?) -> void
|
400
|
+
|
401
|
+
attr_reader location: Location[untyped, untyped]?
|
402
|
+
|
403
|
+
def self.check!: (Array[AST::TypeParam]) -> void
|
404
|
+
end
|
405
|
+
end
|
data/sig/factory.rbs
ADDED
data/sig/file_finder.rbs
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
module RBS
|
2
|
+
module FileFinder
|
3
|
+
# Enumerate RBS files under path
|
4
|
+
#
|
5
|
+
# When `path` is a file, it yields the path.
|
6
|
+
#
|
7
|
+
# ```rb
|
8
|
+
# FileFinder.each_file(Pathname("foo.rbs")) {} # => yields `foo.rbs`
|
9
|
+
# ```
|
10
|
+
#
|
11
|
+
# When `path` is a directory, it yields all `.rbs` files under the directory, recursively.
|
12
|
+
#
|
13
|
+
# * Skips files under directory starting with `_`, if `skip_hidden` is `true`
|
14
|
+
# * Yields files under directory starting with `_` even if `skip_hidden` is true, when the `_` directory is given explicitly, and `immediate:` is `true`
|
15
|
+
#
|
16
|
+
# ```rb
|
17
|
+
# FileFinder.each_file(Pathname("sig"), skip_hidden: false) {} # => yields all `.rbs` files under `sig`
|
18
|
+
# FileFinder.each_file(Pathname("sig"), skip_hidden: true) {} # => yields all `.rbs` files under `sig`, skips `_` directories
|
19
|
+
#
|
20
|
+
# FileFinder.each_file(Pathname("_hidden"), skip_hidden: true) {} # => yields all `.rbs` files under `_hidden`, skips other `_` directories
|
21
|
+
# ```
|
22
|
+
#
|
23
|
+
# `immediate` keyword is unused and left for API compatibility.
|
24
|
+
#
|
25
|
+
def self?.each_file: (Pathname path, ?immediate: top, skip_hidden: boolish) { (Pathname) -> void } -> void
|
26
|
+
| (Pathname path, ?immediate: top, skip_hidden: boolish) -> Enumerator[Pathname, void]
|
27
|
+
end
|
28
|
+
end
|
data/sig/location.rbs
ADDED
@@ -0,0 +1,110 @@
|
|
1
|
+
module RBS
|
2
|
+
# Location is the range on buffer, `start_pos..end_pos`.
|
3
|
+
# The index is based on characters.
|
4
|
+
#
|
5
|
+
# A location can have _child_ locations.
|
6
|
+
#
|
7
|
+
class Location[in RequiredChildKeys, in OptionalChildKeys]
|
8
|
+
# The buffer this location points on.
|
9
|
+
attr_reader buffer (): Buffer
|
10
|
+
|
11
|
+
# The index of character the range starts from.
|
12
|
+
attr_reader start_pos (): Integer
|
13
|
+
|
14
|
+
# The index of character the range ends at.
|
15
|
+
attr_reader end_pos (): Integer
|
16
|
+
|
17
|
+
def initialize: (Buffer, Integer start_pos, Integer end_pos) -> void
|
18
|
+
|
19
|
+
def self.new: (Buffer, Integer start_pos, Integer end_pos) -> instance
|
20
|
+
| (buffer: Buffer, start_pos: Integer, end_pos: Integer) -> instance
|
21
|
+
|
22
|
+
def inspect: () -> String
|
23
|
+
|
24
|
+
# Returns the name of the buffer.
|
25
|
+
def name: () -> untyped
|
26
|
+
|
27
|
+
# Line of the `start_pos` (1 origin)
|
28
|
+
attr_reader start_line (): Integer
|
29
|
+
|
30
|
+
# Column of the `start_pos` (0 origin)
|
31
|
+
attr_reader start_column (): Integer
|
32
|
+
|
33
|
+
# Line of the `end_pos` (1 origin)
|
34
|
+
attr_reader end_line (): Integer
|
35
|
+
|
36
|
+
# Column of the `end_pos` (0 origin)
|
37
|
+
attr_reader end_column (): Integer
|
38
|
+
|
39
|
+
attr_reader start_loc (): Buffer::loc
|
40
|
+
|
41
|
+
@start_loc: Buffer::loc?
|
42
|
+
|
43
|
+
attr_reader end_loc (): Buffer::loc
|
44
|
+
|
45
|
+
@end_loc: Buffer::loc?
|
46
|
+
|
47
|
+
attr_reader range (): Range[Integer]
|
48
|
+
|
49
|
+
@range: Range[Integer]?
|
50
|
+
|
51
|
+
# A substring of buffer associated to the location.
|
52
|
+
def source: () -> String
|
53
|
+
|
54
|
+
@source: String?
|
55
|
+
|
56
|
+
def to_s: () -> String
|
57
|
+
|
58
|
+
# Returns a string representation suitable for terminal output.
|
59
|
+
#
|
60
|
+
# Location.to_string(loc) # => a.rb:1:0...3:4
|
61
|
+
# Location.to_string(nil) # => *:*:*..*:*
|
62
|
+
#
|
63
|
+
def self.to_string: (Location[untyped, untyped]? location, ?default: ::String default) -> String
|
64
|
+
|
65
|
+
def ==: (untyped other) -> bool
|
66
|
+
|
67
|
+
include _ToJson
|
68
|
+
|
69
|
+
def add_optional_child: (OptionalChildKeys name, Range[Integer]? range) -> void
|
70
|
+
|
71
|
+
def add_required_child: (RequiredChildKeys name, Range[Integer] range) -> void
|
72
|
+
|
73
|
+
# Returns `Location` instance for given _child_ name.
|
74
|
+
#
|
75
|
+
# # @type var loc: Location::WithChildren[:name, :args]
|
76
|
+
# loc[:name] # => Location
|
77
|
+
# loc[:args] # => may be nil
|
78
|
+
#
|
79
|
+
# Note that passing unknown symbol raises an error even if the child is _optional_.
|
80
|
+
# You need explicitly set `nil` for absent optional children.
|
81
|
+
#
|
82
|
+
def []: (RequiredChildKeys) -> Location[bot, bot]
|
83
|
+
| (OptionalChildKeys) -> Location[bot, bot]?
|
84
|
+
| (Symbol) -> Location[bot, bot]?
|
85
|
+
|
86
|
+
alias aref []
|
87
|
+
|
88
|
+
def each_optional_key: () { (Symbol) -> void } -> void
|
89
|
+
| () -> Enumerator[Symbol, void]
|
90
|
+
|
91
|
+
def each_required_key: () { (Symbol) -> void } -> void
|
92
|
+
| () -> Enumerator[Symbol, void]
|
93
|
+
|
94
|
+
def optional_key?: (Symbol) -> bool
|
95
|
+
|
96
|
+
def required_key?: (Symbol) -> bool
|
97
|
+
|
98
|
+
def key?: (Symbol) -> bool
|
99
|
+
|
100
|
+
private
|
101
|
+
|
102
|
+
def _add_required_child: (RequiredChildKeys name, Integer start_pos, Integer end_pos) -> void
|
103
|
+
def _add_optional_child: (OptionalChildKeys name, Integer start_pos, Integer end_pos) -> void
|
104
|
+
def _add_optional_no_child: (OptionalChildKeys name) -> void
|
105
|
+
def _optional_keys: () -> Array[Symbol]
|
106
|
+
def _required_keys: () -> Array[Symbol]
|
107
|
+
|
108
|
+
WithChildren: singleton(Location)
|
109
|
+
end
|
110
|
+
end
|
data/sig/locator.rbs
ADDED
@@ -0,0 +1,58 @@
|
|
1
|
+
module RBS
|
2
|
+
# Locator helps finding RBS elements based on locations in the RBS source text.
|
3
|
+
#
|
4
|
+
class Locator
|
5
|
+
type component = Symbol
|
6
|
+
| Types::t
|
7
|
+
| MethodType
|
8
|
+
| AST::Declarations::t
|
9
|
+
| AST::Members::t
|
10
|
+
| AST::TypeParam
|
11
|
+
| AST::Declarations::Class::Super
|
12
|
+
| AST::Declarations::Module::Self
|
13
|
+
| AST::Directives::t
|
14
|
+
| AST::Directives::Use::clause
|
15
|
+
|
16
|
+
# The buffer the location points to
|
17
|
+
#
|
18
|
+
attr_reader buffer: Buffer
|
19
|
+
|
20
|
+
# Array of _top-level_ declarations.
|
21
|
+
#
|
22
|
+
attr_reader decls: Array[AST::Declarations::t]
|
23
|
+
|
24
|
+
# Array of directives.
|
25
|
+
#
|
26
|
+
attr_reader dirs: Array[AST::Directives::t]
|
27
|
+
|
28
|
+
def initialize: (buffer: Buffer, decls: Array[AST::Declarations::t], dirs: Array[AST::Directives::t]) -> void
|
29
|
+
|
30
|
+
# Returns list of components.
|
31
|
+
# Inner component comes first.
|
32
|
+
#
|
33
|
+
def find: (line: Integer, column: Integer) -> Array[component]
|
34
|
+
|
35
|
+
# Returns pair of the inner most symbol and outer components.
|
36
|
+
# It ensures the array starts with a AST/type component.
|
37
|
+
#
|
38
|
+
def find2: (line: Integer, column: Integer) -> [Symbol?, Array[component]]?
|
39
|
+
|
40
|
+
private
|
41
|
+
|
42
|
+
def find_in_directive: (Integer pos, AST::Directives::t, Array[component]) -> bool
|
43
|
+
|
44
|
+
def find_in_decl: (Integer pos, decl: AST::Declarations::t, array: Array[component]) -> bool
|
45
|
+
|
46
|
+
def find_in_member: (Integer pos, member: AST::Members::t, array: Array[component]) -> bool
|
47
|
+
|
48
|
+
def find_in_method_type: (Integer pos, method_type: MethodType, array: Array[component]) -> bool
|
49
|
+
|
50
|
+
def find_in_type: (Integer pos, type: Types::t, array: Array[component]) -> bool
|
51
|
+
|
52
|
+
def find_in_type_param: (Integer pos, type_param: AST::TypeParam, array: Array[component]) -> bool
|
53
|
+
|
54
|
+
def find_in_loc: (Integer pos, location: Location[untyped, untyped]?, array: Array[component]) -> bool
|
55
|
+
|
56
|
+
def test_loc: (Integer pos, location: Location[untyped, untyped]?) -> bool
|
57
|
+
end
|
58
|
+
end
|