rbs 4.1.0.pre.2-java
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.clang-format +75 -0
- data/.clangd +2 -0
- data/.github/dependabot.yml +24 -0
- data/.github/workflows/bundle-update.yml +63 -0
- data/.github/workflows/c-check.yml +61 -0
- data/.github/workflows/comments.yml +37 -0
- data/.github/workflows/dependabot.yml +30 -0
- data/.github/workflows/jruby.yml +67 -0
- data/.github/workflows/milestone.yml +83 -0
- data/.github/workflows/ruby.yml +158 -0
- data/.github/workflows/rust.yml +184 -0
- data/.github/workflows/truffleruby.yml +54 -0
- data/.github/workflows/typecheck.yml +39 -0
- data/.github/workflows/wasm.yml +53 -0
- data/.github/workflows/windows.yml +49 -0
- data/.gitignore +38 -0
- data/.rubocop.yml +72 -0
- data/BSDL +22 -0
- data/CHANGELOG.md +2292 -0
- data/COPYING +56 -0
- data/README.md +240 -0
- data/Rakefile +869 -0
- data/Steepfile +53 -0
- data/config.yml +913 -0
- data/core/array.rbs +4142 -0
- data/core/basic_object.rbs +376 -0
- data/core/binding.rbs +148 -0
- data/core/builtin.rbs +278 -0
- data/core/class.rbs +223 -0
- data/core/comparable.rbs +192 -0
- data/core/complex.rbs +812 -0
- data/core/constants.rbs +96 -0
- data/core/data.rbs +415 -0
- data/core/dir.rbs +993 -0
- data/core/encoding.rbs +1368 -0
- data/core/enumerable.rbs +2506 -0
- data/core/enumerator/arithmetic_sequence.rbs +70 -0
- data/core/enumerator/product.rbs +92 -0
- data/core/enumerator.rbs +705 -0
- data/core/env.rbs +6 -0
- data/core/errno.rbs +682 -0
- data/core/errors.rbs +789 -0
- data/core/exception.rbs +485 -0
- data/core/false_class.rbs +82 -0
- data/core/fiber.rbs +570 -0
- data/core/fiber_error.rbs +11 -0
- data/core/file.rbs +2045 -0
- data/core/file_constants.rbs +463 -0
- data/core/file_stat.rbs +534 -0
- data/core/file_test.rbs +331 -0
- data/core/float.rbs +1316 -0
- data/core/gc.rbs +788 -0
- data/core/global_variables.rbs +184 -0
- data/core/hash.rbs +2183 -0
- data/core/integer.rbs +1374 -0
- data/core/io/buffer.rbs +995 -0
- data/core/io/wait.rbs +48 -0
- data/core/io.rbs +3472 -0
- data/core/kernel.rbs +3172 -0
- data/core/marshal.rbs +207 -0
- data/core/match_data.rbs +637 -0
- data/core/math.rbs +770 -0
- data/core/method.rbs +422 -0
- data/core/module.rbs +1856 -0
- data/core/nil_class.rbs +210 -0
- data/core/numeric.rbs +832 -0
- data/core/object.rbs +108 -0
- data/core/object_space/weak_key_map.rbs +166 -0
- data/core/object_space.rbs +197 -0
- data/core/pathname.rbs +1322 -0
- data/core/proc.rbs +905 -0
- data/core/process.rbs +2316 -0
- data/core/ractor.rbs +924 -0
- data/core/random.rbs +255 -0
- data/core/range.rbs +1209 -0
- data/core/rational.rbs +502 -0
- data/core/rb_config.rbs +88 -0
- data/core/rbs/ops.rbs +154 -0
- data/core/rbs/unnamed/argf.rbs +1236 -0
- data/core/rbs/unnamed/env_class.rbs +1214 -0
- data/core/rbs/unnamed/main_class.rbs +123 -0
- data/core/rbs/unnamed/random.rbs +186 -0
- data/core/refinement.rbs +59 -0
- data/core/regexp.rbs +1974 -0
- data/core/ruby.rbs +53 -0
- data/core/ruby_vm.rbs +809 -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 +109 -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 +1105 -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 +293 -0
- data/core/set.rbs +751 -0
- data/core/signal.rbs +110 -0
- data/core/string.rbs +5532 -0
- data/core/struct.rbs +668 -0
- data/core/symbol.rbs +482 -0
- data/core/thread.rbs +1826 -0
- data/core/thread_group.rbs +79 -0
- data/core/time.rbs +1793 -0
- data/core/trace_point.rbs +483 -0
- data/core/true_class.rbs +98 -0
- data/core/unbound_method.rbs +337 -0
- data/core/warning.rbs +87 -0
- data/docs/CONTRIBUTING.md +107 -0
- data/docs/aliases.md +79 -0
- data/docs/architecture.md +110 -0
- data/docs/collection.md +192 -0
- data/docs/config.md +171 -0
- data/docs/data_and_struct.md +86 -0
- data/docs/encoding.md +56 -0
- data/docs/gem.md +56 -0
- data/docs/inline.md +634 -0
- data/docs/rbs_by_example.md +309 -0
- data/docs/repo.md +125 -0
- data/docs/rust.md +96 -0
- data/docs/sigs.md +167 -0
- data/docs/stdlib.md +147 -0
- data/docs/syntax.md +940 -0
- data/docs/tools.md +17 -0
- data/docs/type_fingerprint.md +21 -0
- data/docs/wasm_serialization.md +80 -0
- data/exe/rbs +7 -0
- data/ext/rbs_extension/ast_translation.c +1855 -0
- data/ext/rbs_extension/ast_translation.h +41 -0
- data/ext/rbs_extension/class_constants.c +187 -0
- data/ext/rbs_extension/class_constants.h +104 -0
- data/ext/rbs_extension/compat.h +10 -0
- data/ext/rbs_extension/extconf.rb +40 -0
- data/ext/rbs_extension/legacy_location.c +294 -0
- data/ext/rbs_extension/legacy_location.h +82 -0
- data/ext/rbs_extension/main.c +613 -0
- data/ext/rbs_extension/rbs_extension.h +16 -0
- data/ext/rbs_extension/rbs_string_bridging.c +9 -0
- data/ext/rbs_extension/rbs_string_bridging.h +24 -0
- data/goodcheck.yml +91 -0
- data/include/rbs/ast.h +1047 -0
- data/include/rbs/defines.h +99 -0
- data/include/rbs/lexer.h +207 -0
- data/include/rbs/location.h +40 -0
- data/include/rbs/parser.h +153 -0
- data/include/rbs/serialize.h +39 -0
- data/include/rbs/string.h +47 -0
- data/include/rbs/util/rbs_allocator.h +59 -0
- data/include/rbs/util/rbs_assert.h +20 -0
- data/include/rbs/util/rbs_buffer.h +83 -0
- data/include/rbs/util/rbs_constant_pool.h +155 -0
- data/include/rbs/util/rbs_encoding.h +282 -0
- data/include/rbs/util/rbs_unescape.h +24 -0
- data/include/rbs.h +14 -0
- data/lib/rbs/ancestor_graph.rb +92 -0
- data/lib/rbs/annotate/annotations.rb +199 -0
- data/lib/rbs/annotate/formatter.rb +82 -0
- data/lib/rbs/annotate/rdoc_annotator.rb +398 -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 +472 -0
- data/lib/rbs/ast/directives.rb +49 -0
- data/lib/rbs/ast/members.rb +451 -0
- data/lib/rbs/ast/ruby/annotations.rb +451 -0
- data/lib/rbs/ast/ruby/comment_block.rb +247 -0
- data/lib/rbs/ast/ruby/declarations.rb +291 -0
- data/lib/rbs/ast/ruby/helpers/constant_helper.rb +28 -0
- data/lib/rbs/ast/ruby/helpers/location_helper.rb +15 -0
- data/lib/rbs/ast/ruby/members.rb +762 -0
- data/lib/rbs/ast/type_param.rb +235 -0
- data/lib/rbs/ast/visitor.rb +137 -0
- data/lib/rbs/buffer.rb +189 -0
- data/lib/rbs/builtin_names.rb +58 -0
- data/lib/rbs/cli/colored_io.rb +48 -0
- data/lib/rbs/cli/diff.rb +84 -0
- data/lib/rbs/cli/validate.rb +294 -0
- data/lib/rbs/cli.rb +1253 -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 +269 -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 +265 -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 +415 -0
- data/lib/rbs/definition_builder/ancestor_builder.rb +678 -0
- data/lib/rbs/definition_builder/method_builder.rb +295 -0
- data/lib/rbs/definition_builder.rb +1054 -0
- data/lib/rbs/diff.rb +131 -0
- data/lib/rbs/environment/class_entry.rb +69 -0
- data/lib/rbs/environment/module_entry.rb +66 -0
- data/lib/rbs/environment/use_map.rb +77 -0
- data/lib/rbs/environment.rb +1028 -0
- data/lib/rbs/environment_loader.rb +167 -0
- data/lib/rbs/environment_walker.rb +155 -0
- data/lib/rbs/errors.rb +634 -0
- data/lib/rbs/factory.rb +18 -0
- data/lib/rbs/file_finder.rb +28 -0
- data/lib/rbs/inline_parser/comment_association.rb +117 -0
- data/lib/rbs/inline_parser.rb +568 -0
- data/lib/rbs/location_aux.rb +170 -0
- data/lib/rbs/locator.rb +247 -0
- data/lib/rbs/method_type.rb +145 -0
- data/lib/rbs/namespace.rb +154 -0
- data/lib/rbs/parser/lex_result.rb +15 -0
- data/lib/rbs/parser/token.rb +23 -0
- data/lib/rbs/parser_aux.rb +142 -0
- data/lib/rbs/prototype/helpers.rb +197 -0
- data/lib/rbs/prototype/node_usage.rb +99 -0
- data/lib/rbs/prototype/rb.rb +816 -0
- data/lib/rbs/prototype/rbi.rb +625 -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 +680 -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 +167 -0
- data/lib/rbs/rewriter.rb +70 -0
- data/lib/rbs/sorter.rb +198 -0
- data/lib/rbs/source.rb +99 -0
- data/lib/rbs/substitution.rb +83 -0
- data/lib/rbs/subtractor.rb +204 -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 +457 -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 +122 -0
- data/lib/rbs/types.rb +1604 -0
- data/lib/rbs/unit_test/convertibles.rb +177 -0
- data/lib/rbs/unit_test/spy.rb +138 -0
- data/lib/rbs/unit_test/type_assertions.rb +383 -0
- data/lib/rbs/unit_test/with_aliases.rb +145 -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/wasm/deserializer.rb +213 -0
- data/lib/rbs/wasm/jars/asm-analysis.jar +0 -0
- data/lib/rbs/wasm/jars/asm-commons.jar +0 -0
- data/lib/rbs/wasm/jars/asm-tree.jar +0 -0
- data/lib/rbs/wasm/jars/asm-util.jar +0 -0
- data/lib/rbs/wasm/jars/asm.jar +0 -0
- data/lib/rbs/wasm/jars/compiler.jar +0 -0
- data/lib/rbs/wasm/jars/log.jar +0 -0
- data/lib/rbs/wasm/jars/runtime.jar +0 -0
- data/lib/rbs/wasm/jars/wasi.jar +0 -0
- data/lib/rbs/wasm/jars/wasm.jar +0 -0
- data/lib/rbs/wasm/location.rb +61 -0
- data/lib/rbs/wasm/parser.rb +137 -0
- data/lib/rbs/wasm/rbs_parser.wasm +0 -0
- data/lib/rbs/wasm/runtime.rb +217 -0
- data/lib/rbs/wasm/serialization_schema.rb +110 -0
- data/lib/rbs/writer.rb +424 -0
- data/lib/rbs.rb +117 -0
- data/lib/rdoc/discover.rb +20 -0
- data/lib/rdoc_plugin/parser.rb +163 -0
- data/rbs.gemspec +68 -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 +52 -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 +85 -0
- data/sig/annotate/rdoc_source.rbs +32 -0
- data/sig/annotation.rbs +27 -0
- data/sig/ast/ruby/annotations.rbs +470 -0
- data/sig/ast/ruby/comment_block.rbs +127 -0
- data/sig/ast/ruby/declarations.rbs +158 -0
- data/sig/ast/ruby/helpers/constant_helper.rbs +11 -0
- data/sig/ast/ruby/helpers/location_helper.rbs +15 -0
- data/sig/ast/ruby/members.rbs +198 -0
- data/sig/buffer.rbs +108 -0
- data/sig/builtin_names.rbs +44 -0
- data/sig/cli/colored_io.rbs +15 -0
- data/sig/cli/diff.rbs +15 -0
- data/sig/cli/validate.rbs +47 -0
- data/sig/cli.rbs +89 -0
- data/sig/collection/cleaner.rbs +13 -0
- data/sig/collection/config/lockfile.rbs +74 -0
- data/sig/collection/config/lockfile_generator.rbs +68 -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 +274 -0
- data/sig/definition.rbs +232 -0
- data/sig/definition_builder.rbs +181 -0
- data/sig/diff.rbs +28 -0
- data/sig/directives.rbs +77 -0
- data/sig/environment/class_entry.rbs +50 -0
- data/sig/environment/module_entry.rbs +50 -0
- data/sig/environment.rbs +286 -0
- data/sig/environment_loader.rbs +111 -0
- data/sig/environment_walker.rbs +65 -0
- data/sig/errors.rbs +408 -0
- data/sig/factory.rbs +5 -0
- data/sig/file_finder.rbs +28 -0
- data/sig/inline_parser/comment_association.rbs +71 -0
- data/sig/inline_parser.rbs +126 -0
- data/sig/location.rbs +135 -0
- data/sig/locator.rbs +56 -0
- data/sig/manifest.yaml +5 -0
- data/sig/members.rbs +258 -0
- data/sig/method_builder.rbs +89 -0
- data/sig/method_types.rbs +58 -0
- data/sig/namespace.rbs +161 -0
- data/sig/parser.rbs +164 -0
- data/sig/prototype/helpers.rbs +29 -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 +61 -0
- data/sig/rewriter.rbs +45 -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/source.rbs +48 -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 +115 -0
- data/sig/typename.rbs +89 -0
- data/sig/types.rbs +578 -0
- data/sig/unit_test/convertibles.rbs +154 -0
- data/sig/unit_test/spy.rbs +22 -0
- data/sig/unit_test/type_assertions.rbs +211 -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/wasm/deserializer.rbs +66 -0
- data/sig/wasm/serialization_schema.rbs +13 -0
- data/sig/writer.rbs +127 -0
- data/src/ast.c +1628 -0
- data/src/lexer.c +3217 -0
- data/src/lexer.re +155 -0
- data/src/lexstate.c +217 -0
- data/src/location.c +31 -0
- data/src/parser.c +4255 -0
- data/src/serialize.c +958 -0
- data/src/string.c +41 -0
- data/src/util/rbs_allocator.c +162 -0
- data/src/util/rbs_assert.c +19 -0
- data/src/util/rbs_buffer.c +54 -0
- data/src/util/rbs_constant_pool.c +268 -0
- data/src/util/rbs_encoding.c +21308 -0
- data/src/util/rbs_unescape.c +167 -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 +1647 -0
- data/stdlib/bigdecimal-math/0/big_math.rbs +280 -0
- data/stdlib/bigdecimal-math/0/manifest.yaml +2 -0
- data/stdlib/cgi/0/core.rbs +911 -0
- data/stdlib/cgi/0/manifest.yaml +4 -0
- data/stdlib/cgi-escape/0/escape.rbs +171 -0
- data/stdlib/coverage/0/coverage.rbs +266 -0
- data/stdlib/csv/0/csv.rbs +3776 -0
- data/stdlib/csv/0/manifest.yaml +3 -0
- data/stdlib/date/0/date.rbs +1598 -0
- data/stdlib/date/0/date_time.rbs +617 -0
- data/stdlib/date/0/time.rbs +26 -0
- data/stdlib/dbm/0/dbm.rbs +421 -0
- data/stdlib/delegate/0/delegator.rbs +187 -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 +344 -0
- data/stdlib/digest/0/digest.rbs +687 -0
- data/stdlib/erb/0/erb.rbs +933 -0
- data/stdlib/etc/0/etc.rbs +884 -0
- data/stdlib/fileutils/0/fileutils.rbs +1753 -0
- data/stdlib/find/0/find.rbs +49 -0
- data/stdlib/forwardable/0/forwardable.rbs +271 -0
- data/stdlib/io-console/0/io-console.rbs +414 -0
- data/stdlib/ipaddr/0/ipaddr.rbs +436 -0
- data/stdlib/json/0/json.rbs +1963 -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 +5580 -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 +470 -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 +433 -0
- data/stdlib/open3/0/open3.rbs +606 -0
- data/stdlib/openssl/0/manifest.yaml +3 -0
- data/stdlib/openssl/0/openssl.rbs +12231 -0
- data/stdlib/optparse/0/optparse.rbs +1734 -0
- data/stdlib/pathname/0/pathname.rbs +36 -0
- data/stdlib/pp/0/manifest.yaml +2 -0
- data/stdlib/pp/0/pp.rbs +301 -0
- data/stdlib/prettyprint/0/prettyprint.rbs +383 -0
- data/stdlib/pstore/0/pstore.rbs +608 -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 +455 -0
- data/stdlib/psych/0/store.rbs +57 -0
- data/stdlib/pty/0/pty.rbs +240 -0
- data/stdlib/random-formatter/0/random-formatter.rbs +277 -0
- data/stdlib/rdoc/0/code_object.rbs +52 -0
- data/stdlib/rdoc/0/comment.rbs +61 -0
- data/stdlib/rdoc/0/context.rbs +153 -0
- data/stdlib/rdoc/0/markup.rbs +117 -0
- data/stdlib/rdoc/0/options.rbs +76 -0
- data/stdlib/rdoc/0/parser.rbs +56 -0
- data/stdlib/rdoc/0/rdoc.rbs +393 -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 +1787 -0
- data/stdlib/ripper/0/ripper.rbs +1654 -0
- data/stdlib/securerandom/0/manifest.yaml +2 -0
- data/stdlib/securerandom/0/securerandom.rbs +49 -0
- data/stdlib/shellwords/0/shellwords.rbs +229 -0
- data/stdlib/singleton/0/singleton.rbs +134 -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 +94 -0
- data/stdlib/socket/0/socket.rbs +4170 -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 +87 -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 +1681 -0
- data/stdlib/strscan/0/string_scanner.rbs +1648 -0
- data/stdlib/tempfile/0/tempfile.rbs +483 -0
- data/stdlib/time/0/time.rbs +434 -0
- data/stdlib/timeout/0/timeout.rbs +137 -0
- data/stdlib/tmpdir/0/tmpdir.rbs +69 -0
- data/stdlib/tsort/0/cyclic.rbs +8 -0
- data/stdlib/tsort/0/interfaces.rbs +20 -0
- data/stdlib/tsort/0/tsort.rbs +410 -0
- data/stdlib/uri/0/common.rbs +621 -0
- data/stdlib/uri/0/file.rbs +118 -0
- data/stdlib/uri/0/ftp.rbs +13 -0
- data/stdlib/uri/0/generic.rbs +1116 -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 +211 -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 +168 -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 +201 -0
- data/wasm/README.md +59 -0
- data/wasm/rbs_wasm.c +411 -0
- metadata +660 -0
data/sig/location.rbs
ADDED
|
@@ -0,0 +1,135 @@
|
|
|
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 = untyped, in OptionalChildKeys = untyped]
|
|
8
|
+
# The buffer this location points on.
|
|
9
|
+
attr_reader buffer (): Buffer
|
|
10
|
+
|
|
11
|
+
# The absolute start index of character the range starts from
|
|
12
|
+
#
|
|
13
|
+
# It returns the index in the `buffer.top_buffer`.
|
|
14
|
+
#
|
|
15
|
+
attr_reader start_pos (): Integer
|
|
16
|
+
|
|
17
|
+
# The absolute end index of character the range ends at
|
|
18
|
+
#
|
|
19
|
+
# It returns the index in the `buffer.top_buffer`.
|
|
20
|
+
#
|
|
21
|
+
attr_reader end_pos (): Integer
|
|
22
|
+
|
|
23
|
+
def initialize: (Buffer, Integer start_pos, Integer end_pos) -> void
|
|
24
|
+
|
|
25
|
+
def self.new: (Buffer, Integer start_pos, Integer end_pos) -> instance
|
|
26
|
+
| (buffer: Buffer, start_pos: Integer, end_pos: Integer) -> instance
|
|
27
|
+
|
|
28
|
+
def inspect: () -> String
|
|
29
|
+
|
|
30
|
+
# Returns the name of the buffer.
|
|
31
|
+
def name: () -> untyped
|
|
32
|
+
|
|
33
|
+
# The *raw* index of character the range starts from.
|
|
34
|
+
attr_reader _start_pos (): Integer
|
|
35
|
+
|
|
36
|
+
# The *raw* index of character the range ends at.
|
|
37
|
+
attr_reader _end_pos (): Integer
|
|
38
|
+
|
|
39
|
+
# Line of the `start_pos` (1 origin, absolute)
|
|
40
|
+
attr_reader start_line (): Integer
|
|
41
|
+
|
|
42
|
+
# Column of the `start_pos` (0 origin, absolute)
|
|
43
|
+
attr_reader start_column (): Integer
|
|
44
|
+
|
|
45
|
+
# Line of the `end_pos` (1 origin, absolute)
|
|
46
|
+
attr_reader end_line (): Integer
|
|
47
|
+
|
|
48
|
+
# Column of the `end_pos` (0 origin, absolute)
|
|
49
|
+
attr_reader end_column (): Integer
|
|
50
|
+
|
|
51
|
+
# The absolute line-column pair of the start position
|
|
52
|
+
#
|
|
53
|
+
attr_reader start_loc (): Buffer::loc
|
|
54
|
+
|
|
55
|
+
@start_loc: Buffer::loc?
|
|
56
|
+
|
|
57
|
+
# The absolute line-column pair of the end position
|
|
58
|
+
#
|
|
59
|
+
attr_reader end_loc (): Buffer::loc
|
|
60
|
+
|
|
61
|
+
@end_loc: Buffer::loc?
|
|
62
|
+
|
|
63
|
+
# The absolute range of the start and end position
|
|
64
|
+
attr_reader range (): Range[Integer]
|
|
65
|
+
|
|
66
|
+
@range: Range[Integer]?
|
|
67
|
+
|
|
68
|
+
# A substring of buffer associated to the location.
|
|
69
|
+
def source: () -> String
|
|
70
|
+
|
|
71
|
+
@source: String?
|
|
72
|
+
|
|
73
|
+
def to_s: () -> String
|
|
74
|
+
|
|
75
|
+
# Returns a string representation suitable for terminal output.
|
|
76
|
+
#
|
|
77
|
+
# Location.to_string(loc) # => a.rb:1:0...3:4
|
|
78
|
+
# Location.to_string(nil) # => *:*:*..*:*
|
|
79
|
+
#
|
|
80
|
+
def self.to_string: (Location[untyped, untyped]? location, ?default: ::String default) -> String
|
|
81
|
+
|
|
82
|
+
def ==: (untyped other) -> bool
|
|
83
|
+
|
|
84
|
+
include _ToJson
|
|
85
|
+
|
|
86
|
+
def add_optional_child: (OptionalChildKeys name, Range[Integer]? range) -> void
|
|
87
|
+
|
|
88
|
+
def add_required_child: (RequiredChildKeys name, Range[Integer] range) -> void
|
|
89
|
+
|
|
90
|
+
# Returns `Location` instance for given _child_ name.
|
|
91
|
+
#
|
|
92
|
+
# # @type var loc: Location::WithChildren[:name, :args]
|
|
93
|
+
# loc[:name] # => Location
|
|
94
|
+
# loc[:args] # => may be nil
|
|
95
|
+
#
|
|
96
|
+
# Note that passing unknown symbol raises an error even if the child is _optional_.
|
|
97
|
+
# You need explicitly set `nil` for absent optional children.
|
|
98
|
+
#
|
|
99
|
+
def []: (RequiredChildKeys) -> Location[bot, bot]
|
|
100
|
+
| (OptionalChildKeys) -> Location[bot, bot]?
|
|
101
|
+
| (Symbol) -> Location[bot, bot]?
|
|
102
|
+
|
|
103
|
+
alias aref []
|
|
104
|
+
|
|
105
|
+
def each_optional_key: () { (Symbol) -> void } -> void
|
|
106
|
+
| () -> Enumerator[Symbol, void]
|
|
107
|
+
|
|
108
|
+
def each_required_key: () { (Symbol) -> void } -> void
|
|
109
|
+
| () -> Enumerator[Symbol, void]
|
|
110
|
+
|
|
111
|
+
def optional_key?: (Symbol) -> bool
|
|
112
|
+
|
|
113
|
+
def required_key?: (Symbol) -> bool
|
|
114
|
+
|
|
115
|
+
def key?: (Symbol) -> bool
|
|
116
|
+
|
|
117
|
+
# Returns the location of the buffer, but the buffer is detached from the parent buffer
|
|
118
|
+
#
|
|
119
|
+
def local_location: () -> self
|
|
120
|
+
|
|
121
|
+
# Returns the source of `#local_location`
|
|
122
|
+
#
|
|
123
|
+
def local_source: () -> String
|
|
124
|
+
|
|
125
|
+
private
|
|
126
|
+
|
|
127
|
+
def _add_required_child: (RequiredChildKeys name, Integer start_pos, Integer end_pos) -> void
|
|
128
|
+
def _add_optional_child: (OptionalChildKeys name, Integer start_pos, Integer end_pos) -> void
|
|
129
|
+
def _add_optional_no_child: (OptionalChildKeys name) -> void
|
|
130
|
+
def _optional_keys: () -> Array[Symbol]
|
|
131
|
+
def _required_keys: () -> Array[Symbol]
|
|
132
|
+
|
|
133
|
+
WithChildren: singleton(Location)
|
|
134
|
+
end
|
|
135
|
+
end
|
data/sig/locator.rbs
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
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
|
+
def find_in_directive: (Integer pos, AST::Directives::t, Array[component]) -> bool
|
|
41
|
+
|
|
42
|
+
def find_in_decl: (Integer pos, decl: AST::Declarations::t, array: Array[component]) -> bool
|
|
43
|
+
|
|
44
|
+
def find_in_member: (Integer pos, member: AST::Members::t, array: Array[component]) -> bool
|
|
45
|
+
|
|
46
|
+
def find_in_method_type: (Integer pos, method_type: MethodType, array: Array[component]) -> bool
|
|
47
|
+
|
|
48
|
+
def find_in_type: (Integer pos, type: Types::t, array: Array[component]) -> bool
|
|
49
|
+
|
|
50
|
+
def find_in_type_param: (Integer pos, type_param: AST::TypeParam, array: Array[component]) -> bool
|
|
51
|
+
|
|
52
|
+
def find_in_loc: (Integer pos, location: Location[untyped, untyped]?, array: Array[component]) -> bool
|
|
53
|
+
|
|
54
|
+
def test_loc: (Integer pos, location: Location[untyped, untyped]?) -> bool
|
|
55
|
+
end
|
|
56
|
+
end
|
data/sig/manifest.yaml
ADDED
data/sig/members.rbs
ADDED
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
module RBS
|
|
2
|
+
module AST
|
|
3
|
+
module Members
|
|
4
|
+
type t = MethodDefinition
|
|
5
|
+
| InstanceVariable | ClassInstanceVariable | ClassVariable
|
|
6
|
+
| Include | Extend | Prepend
|
|
7
|
+
| AttrReader | AttrWriter | AttrAccessor
|
|
8
|
+
| Public | Private
|
|
9
|
+
| Alias
|
|
10
|
+
|
|
11
|
+
# Base class for members.
|
|
12
|
+
class Base
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
type visibility = :public | :private
|
|
16
|
+
|
|
17
|
+
class MethodDefinition < Base
|
|
18
|
+
class Overload
|
|
19
|
+
attr_reader method_type: MethodType
|
|
20
|
+
|
|
21
|
+
attr_reader annotations: Array[Annotation]
|
|
22
|
+
|
|
23
|
+
def initialize: (method_type: MethodType, annotations: Array[Annotation]) -> void
|
|
24
|
+
|
|
25
|
+
def ==: (untyped) -> bool
|
|
26
|
+
|
|
27
|
+
def hash: () -> Integer
|
|
28
|
+
|
|
29
|
+
alias eql? ==
|
|
30
|
+
|
|
31
|
+
def update: (?annotations: Array[Annotation], ?method_type: MethodType) -> Overload
|
|
32
|
+
|
|
33
|
+
def sub: (Substitution) -> Overload
|
|
34
|
+
|
|
35
|
+
include _ToJson
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
type kind = :instance | :singleton | :singleton_instance
|
|
39
|
+
|
|
40
|
+
# def foo: () -> void
|
|
41
|
+
# ^^^ keyword
|
|
42
|
+
# ^^^ name
|
|
43
|
+
#
|
|
44
|
+
# private def self.bar: () -> void | ...
|
|
45
|
+
# ^^^^^^^ visibility
|
|
46
|
+
# ^^^ keyword
|
|
47
|
+
# ^^^^^ kind
|
|
48
|
+
# ^^^ name
|
|
49
|
+
# ^^^ overloading
|
|
50
|
+
#
|
|
51
|
+
type loc = Location[:keyword | :name, :kind | :overloading | :visibility]
|
|
52
|
+
|
|
53
|
+
attr_reader name: Symbol
|
|
54
|
+
attr_reader kind: kind
|
|
55
|
+
attr_reader overloads: Array[Overload]
|
|
56
|
+
attr_reader annotations: Array[Annotation]
|
|
57
|
+
attr_reader location: loc?
|
|
58
|
+
attr_reader comment: Comment?
|
|
59
|
+
attr_reader overloading: bool
|
|
60
|
+
attr_reader visibility: visibility?
|
|
61
|
+
|
|
62
|
+
def initialize: (name: Symbol, kind: kind, overloads: Array[Overload], annotations: Array[Annotation], location: loc?, comment: Comment?, overloading: bool, visibility: visibility?) -> void
|
|
63
|
+
|
|
64
|
+
include _HashEqual
|
|
65
|
+
include _ToJson
|
|
66
|
+
|
|
67
|
+
# Returns true if the `def` is to define instance method
|
|
68
|
+
def instance?: () -> bool
|
|
69
|
+
|
|
70
|
+
# Returns true if the `def` is to define singleton method
|
|
71
|
+
def singleton?: () -> bool
|
|
72
|
+
|
|
73
|
+
# Returns true if the `def` is overloading (== with `...`)
|
|
74
|
+
#
|
|
75
|
+
def overloading?: () -> bool
|
|
76
|
+
|
|
77
|
+
def update: (?name: Symbol, ?kind: kind, ?overloads: Array[Overload], ?annotations: Array[Annotation], ?location: loc?, ?comment: Comment?, ?overloading: bool, ?visibility: visibility?) -> MethodDefinition
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
module Var
|
|
81
|
+
# @foo: String
|
|
82
|
+
# ^^^^ name
|
|
83
|
+
# ^ colon
|
|
84
|
+
#
|
|
85
|
+
# self.@all: Array[String]
|
|
86
|
+
# ^^^^^ kind
|
|
87
|
+
# ^^^^ name
|
|
88
|
+
# ^ colon
|
|
89
|
+
#
|
|
90
|
+
type loc = Location[:name | :colon, :kind]
|
|
91
|
+
|
|
92
|
+
attr_reader name: Symbol
|
|
93
|
+
attr_reader type: Types::t
|
|
94
|
+
attr_reader location: loc?
|
|
95
|
+
attr_reader comment: Comment?
|
|
96
|
+
|
|
97
|
+
def initialize: (name: Symbol, type: Types::t, location: loc?, comment: Comment?) -> void
|
|
98
|
+
|
|
99
|
+
include _HashEqual
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
class InstanceVariable < Base
|
|
103
|
+
include Var
|
|
104
|
+
include _ToJson
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
class ClassInstanceVariable < Base
|
|
108
|
+
include Var
|
|
109
|
+
include _ToJson
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
class ClassVariable < Base
|
|
113
|
+
include Var
|
|
114
|
+
include _ToJson
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
module Mixin
|
|
118
|
+
# include Foo
|
|
119
|
+
# ^^^^^^^ keyword
|
|
120
|
+
# ^^^ name
|
|
121
|
+
#
|
|
122
|
+
# include Array[String]
|
|
123
|
+
# ^^^^^^^ keyword
|
|
124
|
+
# ^^^^^ name
|
|
125
|
+
# ^^^^^^^^ args
|
|
126
|
+
#
|
|
127
|
+
type loc = Location[:name | :keyword, :args]
|
|
128
|
+
|
|
129
|
+
attr_reader name: TypeName
|
|
130
|
+
attr_reader args: Array[Types::t]
|
|
131
|
+
attr_reader annotations: Array[Annotation]
|
|
132
|
+
attr_reader location: loc?
|
|
133
|
+
attr_reader comment: Comment?
|
|
134
|
+
|
|
135
|
+
def initialize: (name: TypeName, args: Array[Types::t], annotations: Array[Annotation], location: loc?, comment: Comment?) -> void
|
|
136
|
+
|
|
137
|
+
include _HashEqual
|
|
138
|
+
end
|
|
139
|
+
|
|
140
|
+
class Include < Base
|
|
141
|
+
include Mixin
|
|
142
|
+
include _ToJson
|
|
143
|
+
end
|
|
144
|
+
|
|
145
|
+
class Extend < Base
|
|
146
|
+
include Mixin
|
|
147
|
+
include _ToJson
|
|
148
|
+
end
|
|
149
|
+
|
|
150
|
+
class Prepend < Base
|
|
151
|
+
include Mixin
|
|
152
|
+
include _ToJson
|
|
153
|
+
end
|
|
154
|
+
|
|
155
|
+
module Attribute
|
|
156
|
+
type kind = :instance | :singleton
|
|
157
|
+
|
|
158
|
+
# attr_reader name: String
|
|
159
|
+
# ^^^^^^^^^^^ keyword
|
|
160
|
+
# ^^^^ name
|
|
161
|
+
# ^ colon
|
|
162
|
+
#
|
|
163
|
+
# public attr_accessor self.name (@foo) : String
|
|
164
|
+
# ^^^^^^ visibility
|
|
165
|
+
# ^^^^^^^^^^^^^ keyword
|
|
166
|
+
# ^^^^^ kind
|
|
167
|
+
# ^^^^ name
|
|
168
|
+
# ^^^^^^ ivar
|
|
169
|
+
# ^^^^ ivar_name
|
|
170
|
+
# ^ colon
|
|
171
|
+
#
|
|
172
|
+
type loc = Location[:keyword | :name | :colon, :kind | :ivar | :ivar_name | :visibility]
|
|
173
|
+
|
|
174
|
+
attr_reader name: Symbol
|
|
175
|
+
attr_reader type: Types::t
|
|
176
|
+
attr_reader kind: kind
|
|
177
|
+
attr_reader ivar_name: Symbol | false | nil
|
|
178
|
+
attr_reader annotations: Array[Annotation]
|
|
179
|
+
attr_reader location: loc?
|
|
180
|
+
attr_reader comment: Comment?
|
|
181
|
+
attr_reader visibility: visibility?
|
|
182
|
+
|
|
183
|
+
def initialize: (name: Symbol, type: Types::t, ivar_name: Symbol | false | nil, kind: kind, annotations: Array[Annotation], location: loc?, comment: Comment?, ?visibility: visibility?) -> void
|
|
184
|
+
|
|
185
|
+
include _HashEqual
|
|
186
|
+
|
|
187
|
+
def update: (?name: Symbol, ?type: Types::t, ?ivar_name: Symbol | false | nil, ?kind: kind, ?annotations: Array[Annotation], ?location: loc?, ?comment: Comment?, ?visibility: visibility?) -> instance
|
|
188
|
+
end
|
|
189
|
+
|
|
190
|
+
class AttrReader < Base
|
|
191
|
+
include Attribute
|
|
192
|
+
include _ToJson
|
|
193
|
+
end
|
|
194
|
+
|
|
195
|
+
class AttrAccessor < Base
|
|
196
|
+
include Attribute
|
|
197
|
+
include _ToJson
|
|
198
|
+
end
|
|
199
|
+
|
|
200
|
+
class AttrWriter < Base
|
|
201
|
+
include Attribute
|
|
202
|
+
include _ToJson
|
|
203
|
+
end
|
|
204
|
+
|
|
205
|
+
module LocationOnly
|
|
206
|
+
attr_reader location: Location[bot, bot]?
|
|
207
|
+
|
|
208
|
+
def initialize: (location: Location[bot, bot]?) -> void
|
|
209
|
+
|
|
210
|
+
include _HashEqual
|
|
211
|
+
end
|
|
212
|
+
|
|
213
|
+
class Public < Base
|
|
214
|
+
include LocationOnly
|
|
215
|
+
include _ToJson
|
|
216
|
+
end
|
|
217
|
+
|
|
218
|
+
class Private < Base
|
|
219
|
+
include LocationOnly
|
|
220
|
+
include _ToJson
|
|
221
|
+
end
|
|
222
|
+
|
|
223
|
+
class Alias < Base
|
|
224
|
+
type kind = :instance | :singleton
|
|
225
|
+
|
|
226
|
+
# alias foo bar
|
|
227
|
+
# ^^^^^ keyword
|
|
228
|
+
# ^^^ new_name
|
|
229
|
+
# ^^^ old_name
|
|
230
|
+
#
|
|
231
|
+
# alias self.foo self.bar
|
|
232
|
+
# ^^^^^ keyword
|
|
233
|
+
# ^^^^^ new_kind
|
|
234
|
+
# ^^^ new_name
|
|
235
|
+
# ^^^^^ old_kind
|
|
236
|
+
# ^^^ old_name
|
|
237
|
+
#
|
|
238
|
+
type loc = Location[:keyword | :new_name | :old_name, :new_kind | :old_kind]
|
|
239
|
+
|
|
240
|
+
attr_reader new_name: Symbol
|
|
241
|
+
attr_reader old_name: Symbol
|
|
242
|
+
attr_reader kind: kind
|
|
243
|
+
attr_reader annotations: Array[Annotation]
|
|
244
|
+
attr_reader location: loc?
|
|
245
|
+
attr_reader comment: Comment?
|
|
246
|
+
|
|
247
|
+
def initialize: (new_name: Symbol, old_name: Symbol, kind: kind, annotations: Array[Annotation], location: loc?, comment: Comment?) -> void
|
|
248
|
+
|
|
249
|
+
include _HashEqual
|
|
250
|
+
include _ToJson
|
|
251
|
+
|
|
252
|
+
def instance?: () -> bool
|
|
253
|
+
|
|
254
|
+
def singleton?: () -> bool
|
|
255
|
+
end
|
|
256
|
+
end
|
|
257
|
+
end
|
|
258
|
+
end
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
module RBS
|
|
2
|
+
class DefinitionBuilder
|
|
3
|
+
# MethodBuilder calculates the sequence of methods available on given type
|
|
4
|
+
#
|
|
5
|
+
# The sequence are sorted topologically.
|
|
6
|
+
#
|
|
7
|
+
class MethodBuilder
|
|
8
|
+
# Set of methods defined in a type.
|
|
9
|
+
#
|
|
10
|
+
class Methods
|
|
11
|
+
type instance_type = Types::ClassInstance | Types::ClassSingleton | Types::Interface
|
|
12
|
+
|
|
13
|
+
# Definition of a method in the type
|
|
14
|
+
#
|
|
15
|
+
# The Definition object allows invalid method definition so that more than one _original_ definitions may exist.
|
|
16
|
+
#
|
|
17
|
+
class Definition
|
|
18
|
+
type original = AST::Members::MethodDefinition | AST::Members::Alias | AST::Members::AttrAccessor | AST::Members::AttrWriter | AST::Members::AttrReader
|
|
19
|
+
| AST::Ruby::Members::DefMember | AST::Ruby::Members::AttrReaderMember | AST::Ruby::Members::AttrWriterMember | AST::Ruby::Members::AttrAccessorMember
|
|
20
|
+
|
|
21
|
+
type overloading_definition = AST::Members::MethodDefinition | AST::Ruby::Members::DefMember
|
|
22
|
+
|
|
23
|
+
type accessibility = RBS::Definition::accessibility
|
|
24
|
+
|
|
25
|
+
attr_reader name: Symbol
|
|
26
|
+
attr_reader type: instance_type
|
|
27
|
+
attr_reader originals: Array[original]
|
|
28
|
+
attr_reader overloads: Array[overloading_definition]
|
|
29
|
+
attr_reader accessibilities: Array[accessibility]
|
|
30
|
+
|
|
31
|
+
def initialize: (name: Symbol, type: instance_type, originals: Array[original], overloads: Array[overloading_definition], accessibilities: Array[accessibility]) -> void
|
|
32
|
+
|
|
33
|
+
def original: () -> original?
|
|
34
|
+
|
|
35
|
+
def accessibility: () -> accessibility
|
|
36
|
+
|
|
37
|
+
def self.empty: (name: Symbol, type: instance_type) -> Definition
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
attr_reader type: instance_type
|
|
41
|
+
attr_reader methods: Hash[Symbol, Definition]
|
|
42
|
+
|
|
43
|
+
def initialize: (type: instance_type) -> void
|
|
44
|
+
|
|
45
|
+
def validate!: () -> self
|
|
46
|
+
|
|
47
|
+
def each: () { (Definition) -> void } -> void
|
|
48
|
+
| () -> Enumerator[Definition, void]
|
|
49
|
+
|
|
50
|
+
class Sorter
|
|
51
|
+
include TSort[Definition]
|
|
52
|
+
|
|
53
|
+
attr_reader methods: Hash[Symbol, Definition]
|
|
54
|
+
|
|
55
|
+
def initialize: (Hash[Symbol, Definition]) -> void
|
|
56
|
+
|
|
57
|
+
def tsort_each_node: { (Definition) -> void } -> void
|
|
58
|
+
|
|
59
|
+
def tsort_each_child: (Definition) { (Definition) -> void } -> void
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
attr_reader env: Environment
|
|
64
|
+
attr_reader instance_methods: Hash[TypeName, Methods]
|
|
65
|
+
attr_reader singleton_methods: Hash[TypeName, Methods]
|
|
66
|
+
attr_reader interface_methods: Hash[TypeName, Methods]
|
|
67
|
+
|
|
68
|
+
def initialize: (env: Environment) -> void
|
|
69
|
+
|
|
70
|
+
def build_instance: (TypeName) -> Methods
|
|
71
|
+
|
|
72
|
+
def build_singleton: (TypeName) -> Methods
|
|
73
|
+
|
|
74
|
+
def build_interface: (TypeName) -> Methods
|
|
75
|
+
|
|
76
|
+
def build_alias: (Methods, Methods::instance_type, member: AST::Members::Alias) -> void
|
|
77
|
+
|
|
78
|
+
def build_attribute: (Methods, Methods::instance_type, member: AST::Members::AttrAccessor | AST::Members::AttrReader | AST::Members::AttrWriter, accessibility: Definition::accessibility) -> void
|
|
79
|
+
|
|
80
|
+
def build_ruby_attribute: (Methods, Methods::instance_type, member: AST::Ruby::Members::AttrReaderMember | AST::Ruby::Members::AttrWriterMember | AST::Ruby::Members::AttrAccessorMember, accessibility: Definition::accessibility) -> void
|
|
81
|
+
|
|
82
|
+
def build_method: (Methods, Methods::instance_type, member: AST::Members::MethodDefinition | AST::Ruby::Members::DefMember, accessibility: Definition::accessibility) -> void
|
|
83
|
+
|
|
84
|
+
def each_rbs_member_with_accessibility: (Array[AST::Members::t | AST::Declarations::t], ?accessibility: Definition::accessibility) { (AST::Members::t | AST::Declarations::t, Definition::accessibility) -> void } -> void
|
|
85
|
+
|
|
86
|
+
def update: (env: Environment, except: _Each[TypeName]) -> MethodBuilder
|
|
87
|
+
end
|
|
88
|
+
end
|
|
89
|
+
end
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
module RBS
|
|
2
|
+
class MethodType
|
|
3
|
+
# () -> void
|
|
4
|
+
# ^^^^^^^^^^ type
|
|
5
|
+
#
|
|
6
|
+
# [A] () { () -> A } -> A
|
|
7
|
+
# ^^^ type_params
|
|
8
|
+
# ^^^^^^^^^^^^^^^^^^^ type
|
|
9
|
+
#
|
|
10
|
+
type def_loc = Location[:type, :type_params]
|
|
11
|
+
|
|
12
|
+
type attr_loc = AST::Members::Attribute::loc
|
|
13
|
+
|
|
14
|
+
type loc = def_loc | attr_loc
|
|
15
|
+
|
|
16
|
+
attr_reader type_params: Array[AST::TypeParam]
|
|
17
|
+
attr_reader type: Types::function
|
|
18
|
+
attr_reader block: Types::Block?
|
|
19
|
+
attr_reader location: loc?
|
|
20
|
+
|
|
21
|
+
def initialize: (type_params: Array[AST::TypeParam], type: Types::function, block: Types::Block?, location: loc?) -> void
|
|
22
|
+
|
|
23
|
+
def ==: (untyped other) -> bool
|
|
24
|
+
|
|
25
|
+
include _ToJson
|
|
26
|
+
|
|
27
|
+
# Substitute type variables to some types.
|
|
28
|
+
# Takes care of type parameter bounds.
|
|
29
|
+
#
|
|
30
|
+
def sub: (Substitution) -> MethodType
|
|
31
|
+
|
|
32
|
+
def update: (?type_params: Array[AST::TypeParam], ?type: Types::function, ?block: Types::Block?, ?location: loc?) -> MethodType
|
|
33
|
+
|
|
34
|
+
def free_variables: (?Set[Symbol] set) -> Set[Symbol]
|
|
35
|
+
|
|
36
|
+
# Apply the mapping included in the MethodType.
|
|
37
|
+
#
|
|
38
|
+
# Note that type bound in generics parameter is not handled by this method.
|
|
39
|
+
# You may want to use `#map_type_bound` explicitly, or `#sub` for simple substitution.
|
|
40
|
+
#
|
|
41
|
+
def map_type: () { (Types::t) -> Types::t } -> MethodType
|
|
42
|
+
|
|
43
|
+
def map_type_bound: () { (Types::t) -> Types::t } -> MethodType
|
|
44
|
+
|
|
45
|
+
def each_type: () { (Types::t) -> void } -> void
|
|
46
|
+
| () -> Enumerator[Types::t, void]
|
|
47
|
+
|
|
48
|
+
def to_s: () -> String
|
|
49
|
+
|
|
50
|
+
def type_param_names: () -> Array[Symbol]
|
|
51
|
+
|
|
52
|
+
def has_self_type?: () -> bool
|
|
53
|
+
|
|
54
|
+
def has_classish_type?: () -> bool
|
|
55
|
+
|
|
56
|
+
def with_nonreturn_void?: () -> bool
|
|
57
|
+
end
|
|
58
|
+
end
|