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/namespace.rbs
ADDED
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
module RBS
|
|
2
|
+
# Namespace instance represents a _prefix of module names_.
|
|
3
|
+
#
|
|
4
|
+
# ```
|
|
5
|
+
# vvvvvvvvvvvvvv TypeName
|
|
6
|
+
# RBS::Namespace
|
|
7
|
+
# ^^^^^ Namespace
|
|
8
|
+
#
|
|
9
|
+
# vvvvvvvvvv TypeName
|
|
10
|
+
# RBS::Types
|
|
11
|
+
# ^^^^^ Namespace
|
|
12
|
+
#
|
|
13
|
+
# vvvvvvvvvvvvvvvvv TypeName
|
|
14
|
+
# RBS::Types::Union
|
|
15
|
+
# ^^^^^^^^^^^^ Namespace
|
|
16
|
+
# ```
|
|
17
|
+
#
|
|
18
|
+
# Note that `Namespace` is an RBS specific concept and there is no corresponding concept in Ruby.
|
|
19
|
+
#
|
|
20
|
+
# There are _absolute_ and _relative_ namespaces.
|
|
21
|
+
#
|
|
22
|
+
# ```
|
|
23
|
+
# Namespace(::RBS::) # Absolute namespace
|
|
24
|
+
# Namespace( RBS::) # Relative namespace
|
|
25
|
+
# ```
|
|
26
|
+
#
|
|
27
|
+
# It also defines two special namespaces.
|
|
28
|
+
#
|
|
29
|
+
# ```
|
|
30
|
+
# :: # _Root_ namespace
|
|
31
|
+
# # _Empty_ namespace
|
|
32
|
+
# ```
|
|
33
|
+
#
|
|
34
|
+
class Namespace
|
|
35
|
+
attr_reader path: Array[Symbol]
|
|
36
|
+
|
|
37
|
+
def initialize: (path: Array[Symbol], absolute: boolish) -> void
|
|
38
|
+
|
|
39
|
+
@absolute: bool
|
|
40
|
+
|
|
41
|
+
@parent: Namespace?
|
|
42
|
+
|
|
43
|
+
@hash: Integer?
|
|
44
|
+
|
|
45
|
+
self.@root: Namespace?
|
|
46
|
+
|
|
47
|
+
self.@empty: Namespace?
|
|
48
|
+
|
|
49
|
+
self.@intern_mutex: Mutex
|
|
50
|
+
|
|
51
|
+
# Per-`absolute` flag tries of nested Hashes keyed on path Symbols,
|
|
52
|
+
# with the cached Namespace stored under the `INTERN_LEAF` sentinel
|
|
53
|
+
# at each path's terminal node.
|
|
54
|
+
self.@intern_trie_absolute: Hash[Symbol | Module, untyped]
|
|
55
|
+
|
|
56
|
+
self.@intern_trie_relative: Hash[Symbol | Module, untyped]
|
|
57
|
+
|
|
58
|
+
INTERN_LEAF: Module
|
|
59
|
+
|
|
60
|
+
# Returns an interned `Namespace` instance.
|
|
61
|
+
#
|
|
62
|
+
# Subsequent calls with structurally equal `path` and `absolute` arguments
|
|
63
|
+
# return the same object. The internal `path` array is duplicated and
|
|
64
|
+
# frozen before being cached.
|
|
65
|
+
def self.[]: (Array[Symbol] path, boolish absolute) -> Namespace
|
|
66
|
+
|
|
67
|
+
# Returns new _empty_ namespace.
|
|
68
|
+
def self.empty: () -> Namespace
|
|
69
|
+
|
|
70
|
+
# Returns new _root_ namespace.
|
|
71
|
+
def self.root: () -> Namespace
|
|
72
|
+
|
|
73
|
+
# Concat two namespaces.
|
|
74
|
+
#
|
|
75
|
+
# ```rb
|
|
76
|
+
# Namespace("Foo::") + Namespace("Bar::") # => Foo::Bar::
|
|
77
|
+
# Namespace("::Foo::") + Namespace("Bar::") # => ::Foo::Bar::
|
|
78
|
+
# ```
|
|
79
|
+
#
|
|
80
|
+
# If `other` is an absolute namespace, it returns `other`.
|
|
81
|
+
#
|
|
82
|
+
# ```rb
|
|
83
|
+
# Namespace("Foo::") + Namespace("::Bar::") # => ::Bar::
|
|
84
|
+
# ```
|
|
85
|
+
def +: (Namespace other) -> Namespace
|
|
86
|
+
|
|
87
|
+
# Add one path component to self.
|
|
88
|
+
#
|
|
89
|
+
# ```rb
|
|
90
|
+
# Namespace("Foo::").append(:Bar) # => Namespace("Foo::Bar::")
|
|
91
|
+
# ```
|
|
92
|
+
def append: (Symbol component) -> Namespace
|
|
93
|
+
|
|
94
|
+
# Returns parent namespace.
|
|
95
|
+
# Raises error there is no parent namespace.
|
|
96
|
+
#
|
|
97
|
+
# ```rb
|
|
98
|
+
# Namespace("::A").parent # => Namespace("::")
|
|
99
|
+
# Namespace("::").parent # raises error
|
|
100
|
+
# Namespace("A::B").parent # => Namespace("A")
|
|
101
|
+
# ```
|
|
102
|
+
def parent: () -> Namespace
|
|
103
|
+
|
|
104
|
+
# Returns true if self is absolute namespace.
|
|
105
|
+
def absolute?: () -> bool
|
|
106
|
+
|
|
107
|
+
# Returns true if self is relative namespace.
|
|
108
|
+
def relative?: () -> bool
|
|
109
|
+
|
|
110
|
+
# Returns absolute namespace.
|
|
111
|
+
#
|
|
112
|
+
# ```rb
|
|
113
|
+
# Namespace("A").absolute! # => Namespace("::A")
|
|
114
|
+
# Namespace("::A").absolute! # => Namespace("::A")
|
|
115
|
+
# ```
|
|
116
|
+
def absolute!: () -> Namespace
|
|
117
|
+
|
|
118
|
+
# Returns _relative_ namespace.
|
|
119
|
+
#
|
|
120
|
+
def relative!: () -> Namespace
|
|
121
|
+
|
|
122
|
+
def empty?: () -> bool
|
|
123
|
+
|
|
124
|
+
# Equality is defined by its structure.
|
|
125
|
+
#
|
|
126
|
+
def ==: (untyped other) -> bool
|
|
127
|
+
|
|
128
|
+
alias eql? ==
|
|
129
|
+
|
|
130
|
+
# Hash is defined based on its structure.
|
|
131
|
+
#
|
|
132
|
+
def hash: () -> Integer
|
|
133
|
+
|
|
134
|
+
# Returns a pair of parent namespace and a symbol of last component.
|
|
135
|
+
#
|
|
136
|
+
# ```rb
|
|
137
|
+
# Namespace("::A::B::C").split # => [Namespace("::A::B::"), :C]
|
|
138
|
+
# ```
|
|
139
|
+
def split: () -> [Namespace, Symbol]?
|
|
140
|
+
|
|
141
|
+
def to_s: () -> String
|
|
142
|
+
|
|
143
|
+
# Construct a type name which points to the same name type.
|
|
144
|
+
#
|
|
145
|
+
def to_type_name: () -> TypeName
|
|
146
|
+
|
|
147
|
+
def self.parse: (String string) -> Namespace
|
|
148
|
+
|
|
149
|
+
# Iterate over Namespace for each element in ascending order.
|
|
150
|
+
#
|
|
151
|
+
# ```rb
|
|
152
|
+
# Namespace.parse("::A::B::C").ascend {|ns| p ns }
|
|
153
|
+
# # => ::A::B::C
|
|
154
|
+
# # => ::A::B
|
|
155
|
+
# # => ::A
|
|
156
|
+
# # => ::(root)
|
|
157
|
+
# ```
|
|
158
|
+
def ascend: () { (Namespace) -> void } -> void
|
|
159
|
+
| () -> Enumerator[Namespace, void]
|
|
160
|
+
end
|
|
161
|
+
end
|
data/sig/parser.rbs
ADDED
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
module RBS
|
|
2
|
+
class Parser
|
|
3
|
+
# Result of `Parser.lex`
|
|
4
|
+
class LexResult
|
|
5
|
+
attr_reader buffer: Buffer
|
|
6
|
+
attr_reader value: Array[Token]
|
|
7
|
+
|
|
8
|
+
def initialize: (buffer: Buffer, value: Array[Token]) -> void
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
# Represents a token per result of `Parser.lex`.
|
|
12
|
+
class Token
|
|
13
|
+
attr_reader type: Symbol
|
|
14
|
+
attr_reader location: Location[untyped, untyped]
|
|
15
|
+
|
|
16
|
+
def initialize: (type: Symbol, location: Location[untyped, untyped]) -> void
|
|
17
|
+
def value: () -> String
|
|
18
|
+
def comment?: () -> bool
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
# Parse a method type and return it
|
|
22
|
+
#
|
|
23
|
+
# When `byte_range` keyword is specified, it starts parsing from the `begin` to the `end` of the range.
|
|
24
|
+
#
|
|
25
|
+
# ```ruby
|
|
26
|
+
# RBS::Parser.parse_method_type("() -> void") # => `() -> void`
|
|
27
|
+
# RBS::Parser.parse_method_type("() -> void", byte_range: 0...) # => `() -> void`
|
|
28
|
+
# RBS::Parser.parse_method_type("() -> void () -> String", byte_range: 11...) # => `() -> String`
|
|
29
|
+
# RBS::Parser.parse_method_type("() -> void () -> String", byte_range: 23...) # => nil
|
|
30
|
+
# ```
|
|
31
|
+
#
|
|
32
|
+
# When `require_eof` is `true`, an error is raised if more tokens are left in the input.
|
|
33
|
+
# (Defaults to `false`.)
|
|
34
|
+
#
|
|
35
|
+
# ```ruby
|
|
36
|
+
# RBS::Parser.parse_method_type("() -> void () -> String", require_eof: false) # => `() -> void`
|
|
37
|
+
# RBS::Parser.parse_method_type("() -> void () -> String", require_eof: true) # => Raises an error
|
|
38
|
+
#
|
|
39
|
+
# RBS::Parser.parse_method_type("", require_eof: true) # => nil
|
|
40
|
+
# ```
|
|
41
|
+
#
|
|
42
|
+
def self.parse_method_type: (Buffer | String, ?byte_range: Range[Integer?], ?variables: Array[Symbol], ?require_eof: bool) -> MethodType?
|
|
43
|
+
| %a{deprecated: Use `byte_range:` keyword instead of `range:`} (Buffer | String, range: Range[Integer?], ?variables: Array[Symbol], ?require_eof: bool) -> MethodType?
|
|
44
|
+
|
|
45
|
+
# Parse a type and return it
|
|
46
|
+
#
|
|
47
|
+
# When `byte_range` keyword is specified, it starts parsing from the `begin` to the `end` of the range.
|
|
48
|
+
#
|
|
49
|
+
# ```ruby
|
|
50
|
+
# RBS::Parser.parse_type("String") # => `String`
|
|
51
|
+
# RBS::Parser.parse_type("String", byte_range: 0...) # => `String`
|
|
52
|
+
# RBS::Parser.parse_type("String Integer", byte_range: 7...) # => `Integer`
|
|
53
|
+
# RBS::Parser.parse_type("String Integer", byte_range: 14...) # => nil
|
|
54
|
+
# ```
|
|
55
|
+
#
|
|
56
|
+
# When `require_eof` is `true`, an error is raised if more tokens are left in the input.
|
|
57
|
+
# (Defaults to `false`.)
|
|
58
|
+
#
|
|
59
|
+
# ```ruby
|
|
60
|
+
# RBS::Parser.parse_type("String untyped", require_eof: false) # => `String`
|
|
61
|
+
# RBS::Parser.parse_type("String untyped", require_eof: true) # => Raises an error
|
|
62
|
+
#
|
|
63
|
+
# RBS::Parser.parse_type("", require_eof: true) # => nil
|
|
64
|
+
# ```
|
|
65
|
+
#
|
|
66
|
+
# The `void_allowed` keyword controls whether `void` is allowed as a type.
|
|
67
|
+
#
|
|
68
|
+
# ```ruby
|
|
69
|
+
# RBS::Parser.parse_type("void", void_allowed: true) # => `void`
|
|
70
|
+
# RBS::Parser.parse_type("void", void_allowed: false) # => Raises an syntax error
|
|
71
|
+
# ```
|
|
72
|
+
#
|
|
73
|
+
# The `self_allowed` keyword controls whether `self` is allowed as a type.
|
|
74
|
+
#
|
|
75
|
+
# ```ruby
|
|
76
|
+
# RBS::Parser.parse_type("self", self_allowed: true) # => `self`
|
|
77
|
+
# RBS::Parser.parse_type("self", self_allowed: false) # => Raises an syntax error
|
|
78
|
+
# ```
|
|
79
|
+
#
|
|
80
|
+
def self.parse_type: (Buffer | String, ?byte_range: Range[Integer?], ?variables: Array[Symbol], ?require_eof: bool, ?void_allowed: bool, ?self_allowed: bool, ?classish_allowed: bool) -> Types::t?
|
|
81
|
+
| %a{deprecated: Use `byte_range:` keyword instead of `range:`} (Buffer | String, range: Range[Integer?], ?variables: Array[Symbol], ?require_eof: bool, ?void_allowed: bool, ?self_allowed: bool, ?classish_allowed: bool) -> Types::t?
|
|
82
|
+
|
|
83
|
+
# Parse whole RBS file and return an array of declarations
|
|
84
|
+
#
|
|
85
|
+
def self.parse_signature: (Buffer | String) -> [Buffer, Array[AST::Directives::t], Array[AST::Declarations::t]]
|
|
86
|
+
|
|
87
|
+
# Parse a list of type parameters and return it
|
|
88
|
+
#
|
|
89
|
+
# ```ruby
|
|
90
|
+
# RBS::Parser.parse_type_params("") # => nil
|
|
91
|
+
# RBS::Parser.parse_type_params("[U, V]") # => `[:U, :V]`
|
|
92
|
+
# RBS::Parser.parse_type_params("[in U, V < Integer]") # => `[:U, :V]`
|
|
93
|
+
# ```
|
|
94
|
+
#
|
|
95
|
+
# When `module_type_params` is `false`, an error is raised if `unchecked`, `in` or `out` are used.
|
|
96
|
+
#
|
|
97
|
+
# ```ruby
|
|
98
|
+
# RBS::Parser.parse_type_params("[unchecked U]", module_type_params: false) # => Raises an error
|
|
99
|
+
# RBS::Parser.parse_type_params("[out U]", module_type_params: false) # => Raises an error
|
|
100
|
+
# RBS::Parser.parse_type_params("[in U]", module_type_params: false) # => Raises an error
|
|
101
|
+
# ```
|
|
102
|
+
#
|
|
103
|
+
def self.parse_type_params: (Buffer | String, ?module_type_params: bool) -> Array[AST::TypeParam]
|
|
104
|
+
|
|
105
|
+
# Returns the magic comment from the buffer
|
|
106
|
+
#
|
|
107
|
+
def self.magic_comment: (Buffer) -> AST::Directives::ResolveTypeNames?
|
|
108
|
+
|
|
109
|
+
# Parse whole RBS file and return result.
|
|
110
|
+
#
|
|
111
|
+
# ```ruby
|
|
112
|
+
# RBS::Parser.lex("# Comment\nmodule A\nend\n").value.map(&:type)
|
|
113
|
+
# # => [:tLINECOMMENT, :kMODULE, :tUIDENT, :kEND, :pEOF]
|
|
114
|
+
# ```
|
|
115
|
+
def self.lex: (Buffer | String) -> LexResult
|
|
116
|
+
|
|
117
|
+
KEYWORDS: Hash[String, bot]
|
|
118
|
+
|
|
119
|
+
# Parse a leading annotation and return it
|
|
120
|
+
#
|
|
121
|
+
# Raises an exception if the source text contains a syntax error.
|
|
122
|
+
#
|
|
123
|
+
def self.parse_inline_leading_annotation: (Buffer | String, Range[Integer?], ?variables: Array[Symbol]) -> AST::Ruby::Annotations::leading_annotation
|
|
124
|
+
|
|
125
|
+
# Parse a leading annotation and return it
|
|
126
|
+
#
|
|
127
|
+
# Raises an exception if the source text contains a syntax error.
|
|
128
|
+
#
|
|
129
|
+
def self.parse_inline_trailing_annotation: (Buffer | String, Range[Integer?], ?variables: Array[Symbol]) -> AST::Ruby::Annotations::trailing_annotation
|
|
130
|
+
|
|
131
|
+
private
|
|
132
|
+
|
|
133
|
+
def self.buffer: (String | Buffer source) -> Buffer
|
|
134
|
+
|
|
135
|
+
def self.byte_range: (Range[Integer?] char_range, String content) -> Range[Integer?]
|
|
136
|
+
|
|
137
|
+
def self._parse_type: (Buffer, Integer start_pos, Integer end_pos, Array[Symbol] variables, bool require_eof, bool void_allowed, bool self_allowed, bool classish_allowed) -> Types::t?
|
|
138
|
+
|
|
139
|
+
def self._parse_method_type: (Buffer, Integer start_pos, Integer end_pos, Array[Symbol] variables, bool require_eof) -> MethodType?
|
|
140
|
+
|
|
141
|
+
def self._parse_signature: (Buffer, Integer start_pos, Integer end_pos) -> [Array[AST::Directives::t], Array[AST::Declarations::t]]
|
|
142
|
+
|
|
143
|
+
# Parse and serialize the result to the binary format consumed by
|
|
144
|
+
# RBS::WASM::Deserializer (see ext/rbs_extension/main.c and
|
|
145
|
+
# docs/wasm_serialization.md). The `_to_bytes` variants exist so the
|
|
146
|
+
# round-trip can be exercised on CRuby.
|
|
147
|
+
def self._parse_type_to_bytes: (Buffer, Integer start_pos, Integer end_pos, Array[Symbol] variables, bool require_eof, bool void_allowed, bool self_allowed, bool classish_allowed) -> String?
|
|
148
|
+
|
|
149
|
+
def self._parse_method_type_to_bytes: (Buffer, Integer start_pos, Integer end_pos, Array[Symbol] variables, bool require_eof) -> String?
|
|
150
|
+
|
|
151
|
+
def self._parse_signature_to_bytes: (Buffer, Integer start_pos, Integer end_pos) -> String
|
|
152
|
+
|
|
153
|
+
def self._parse_type_params: (Buffer, Integer start_pos, Integer end_pos, bool module_type_params) -> Array[AST::TypeParam]
|
|
154
|
+
|
|
155
|
+
def self._lex: (Buffer, Integer end_pos) -> Array[[Symbol, Location[untyped, untyped]]]
|
|
156
|
+
|
|
157
|
+
def self._parse_inline_leading_annotation: (Buffer, Integer start_pos, Integer end_pos, Array[Symbol] variables) -> AST::Ruby::Annotations::leading_annotation
|
|
158
|
+
|
|
159
|
+
def self._parse_inline_trailing_annotation: (Buffer, Integer start_pos, Integer end_pos, Array[Symbol] variables) -> AST::Ruby::Annotations::trailing_annotation
|
|
160
|
+
|
|
161
|
+
class LocatedValue
|
|
162
|
+
end
|
|
163
|
+
end
|
|
164
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
module RBS
|
|
2
|
+
module Prototype
|
|
3
|
+
module Helpers
|
|
4
|
+
type node = RubyVM::AbstractSyntaxTree::Node
|
|
5
|
+
|
|
6
|
+
def parse_comments: (String, include_trailing: bool) -> Hash[Integer, AST::Comment]
|
|
7
|
+
|
|
8
|
+
def block_from_body: (node) -> Types::Block?
|
|
9
|
+
|
|
10
|
+
def each_node: (Array[untyped] nodes) { (node) -> void } -> void
|
|
11
|
+
|
|
12
|
+
def each_child: (node) { (node child) -> void } -> void
|
|
13
|
+
|
|
14
|
+
def any_node?: (node, ?nodes: Array[node]) { (node) -> bool } -> Array[node]?
|
|
15
|
+
|
|
16
|
+
def keyword_hash?: (node) -> bool
|
|
17
|
+
|
|
18
|
+
# Returns a symbol if the node is a symbol literal node
|
|
19
|
+
#
|
|
20
|
+
def symbol_literal_node?: (node) -> Symbol?
|
|
21
|
+
|
|
22
|
+
def args_from_node: (node?) -> Array[untyped]
|
|
23
|
+
|
|
24
|
+
def untyped: () -> Types::Bases::Any
|
|
25
|
+
|
|
26
|
+
@untyped: Types::Bases::Any
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
module RBS
|
|
2
|
+
module Prototype
|
|
3
|
+
class NodeUsage
|
|
4
|
+
include Helpers
|
|
5
|
+
|
|
6
|
+
type node = RubyVM::AbstractSyntaxTree::Node
|
|
7
|
+
|
|
8
|
+
attr_reader node: node
|
|
9
|
+
|
|
10
|
+
attr_reader conditional_nodes: Set[node]
|
|
11
|
+
|
|
12
|
+
def initialize: (node) -> void
|
|
13
|
+
|
|
14
|
+
def calculate: (node, conditional: bool) -> void
|
|
15
|
+
|
|
16
|
+
def each_conditional_node: () { (node) -> void } -> void
|
|
17
|
+
| () -> Enumerator[node, void]
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
module RBS
|
|
2
|
+
module Prototype
|
|
3
|
+
class RB
|
|
4
|
+
include Helpers
|
|
5
|
+
|
|
6
|
+
class Context
|
|
7
|
+
type method_kind = :singleton | :singleton_instance | :instance
|
|
8
|
+
|
|
9
|
+
attr_accessor module_function: bool
|
|
10
|
+
|
|
11
|
+
attr_accessor singleton: bool
|
|
12
|
+
|
|
13
|
+
attr_accessor namespace: Namespace
|
|
14
|
+
|
|
15
|
+
attr_accessor in_def: bool
|
|
16
|
+
|
|
17
|
+
def initialize: (module_function: bool, singleton: bool, namespace: Namespace, in_def: bool) -> void
|
|
18
|
+
|
|
19
|
+
def method_kind: () -> method_kind
|
|
20
|
+
|
|
21
|
+
def attribute_kind: () -> (:singleton | :instance)
|
|
22
|
+
|
|
23
|
+
def enter_namespace: (Namespace) -> Context
|
|
24
|
+
|
|
25
|
+
def update: (?module_function: bool, ?singleton: bool, ?in_def: bool) -> Context
|
|
26
|
+
|
|
27
|
+
def self.initial: (?namespace: Namespace) -> Context
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
type decl = AST::Declarations::t | AST::Members::t
|
|
31
|
+
|
|
32
|
+
attr_reader source_decls: Array[decl]
|
|
33
|
+
|
|
34
|
+
def initialize: () -> void
|
|
35
|
+
|
|
36
|
+
def decls: () -> Array[AST::Declarations::t]
|
|
37
|
+
|
|
38
|
+
def parse: (String) -> void
|
|
39
|
+
|
|
40
|
+
def process: (untyped node, decls: Array[AST::Declarations::t | AST::Members::t], comments: Hash[Integer, AST::Comment], context: Context) -> void
|
|
41
|
+
|
|
42
|
+
def process_children: (RubyVM::AbstractSyntaxTree::Node node, decls: Array[decl], comments: Hash[Integer, AST::Comment], context: Context) -> void
|
|
43
|
+
|
|
44
|
+
# Returns a type name that represents the name of the constant.
|
|
45
|
+
# `node` must be _constant_ node, `CONST`, `COLON2`, or `COLON3` node.
|
|
46
|
+
#
|
|
47
|
+
def const_to_name!: (RubyVM::AbstractSyntaxTree::Node node, ?context: Context?) -> TypeName
|
|
48
|
+
|
|
49
|
+
# Returns a type name that represents the name of the constant.
|
|
50
|
+
# `node` can be `SELF` for `extend self` pattern.
|
|
51
|
+
#
|
|
52
|
+
def const_to_name: (RubyVM::AbstractSyntaxTree::Node? node, context: Context) -> TypeName?
|
|
53
|
+
|
|
54
|
+
def literal_to_symbol: (RubyVM::AbstractSyntaxTree::Node node) -> Symbol?
|
|
55
|
+
|
|
56
|
+
def function_type_from_body: (RubyVM::AbstractSyntaxTree::Node node, Symbol def_name) -> Types::Function
|
|
57
|
+
|
|
58
|
+
def function_return_type_from_body: (RubyVM::AbstractSyntaxTree::Node node) -> Types::t
|
|
59
|
+
|
|
60
|
+
def body_type: (RubyVM::AbstractSyntaxTree::Node node) -> Types::t
|
|
61
|
+
|
|
62
|
+
def if_unless_type: (RubyVM::AbstractSyntaxTree::Node node) -> Types::t
|
|
63
|
+
|
|
64
|
+
def block_type: (RubyVM::AbstractSyntaxTree::Node node) -> Types::t
|
|
65
|
+
|
|
66
|
+
def literal_to_type: (RubyVM::AbstractSyntaxTree::Node node) -> Types::t
|
|
67
|
+
|
|
68
|
+
def types_to_union_type: (Array[Types::t] types) -> Types::t
|
|
69
|
+
|
|
70
|
+
def range_element_type: (Array[Types::t] types) -> Types::t
|
|
71
|
+
|
|
72
|
+
def param_type: (RubyVM::AbstractSyntaxTree::Node node, ?default: Types::Bases::Any) -> Types::t
|
|
73
|
+
|
|
74
|
+
# backward compatible
|
|
75
|
+
alias node_type param_type
|
|
76
|
+
|
|
77
|
+
def private: () -> AST::Members::Private
|
|
78
|
+
|
|
79
|
+
@private: AST::Members::Private?
|
|
80
|
+
|
|
81
|
+
def public: () -> AST::Members::Public
|
|
82
|
+
|
|
83
|
+
@public: AST::Members::Public?
|
|
84
|
+
|
|
85
|
+
def current_accessibility: (Array[decl] decls, ?Integer index) -> (AST::Members::Private | AST::Members::Public)
|
|
86
|
+
|
|
87
|
+
def remove_unnecessary_accessibility_methods!: (Array[decl]) -> void
|
|
88
|
+
|
|
89
|
+
def is_accessibility?: (decl) -> bool
|
|
90
|
+
|
|
91
|
+
def find_def_index_by_name: (Array[decl] decls, Symbol name) -> [Integer, AST::Members::MethodDefinition | AST::Members::AttrReader | AST::Members::AttrWriter]?
|
|
92
|
+
|
|
93
|
+
def sort_members!: (Array[decl] decls) -> void
|
|
94
|
+
end
|
|
95
|
+
end
|
|
96
|
+
end
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
module RBS
|
|
2
|
+
module Prototype
|
|
3
|
+
class RBI
|
|
4
|
+
include Helpers
|
|
5
|
+
|
|
6
|
+
attr_reader decls: Array[AST::Declarations::t]
|
|
7
|
+
|
|
8
|
+
type module_decl = AST::Declarations::Class | AST::Declarations::Module
|
|
9
|
+
|
|
10
|
+
# A stack representing the module nesting structure in the Ruby code
|
|
11
|
+
attr_reader modules: Array[module_decl]
|
|
12
|
+
|
|
13
|
+
# Last subsequent `sig` calls
|
|
14
|
+
attr_reader last_sig: Array[RubyVM::AbstractSyntaxTree::Node]?
|
|
15
|
+
|
|
16
|
+
def initialize: () -> void
|
|
17
|
+
|
|
18
|
+
def parse: (String) -> void
|
|
19
|
+
|
|
20
|
+
def nested_name: (RubyVM::AbstractSyntaxTree::Node name) -> TypeName
|
|
21
|
+
|
|
22
|
+
def current_namespace: () -> Namespace
|
|
23
|
+
|
|
24
|
+
def push_class: (
|
|
25
|
+
RubyVM::AbstractSyntaxTree::Node name,
|
|
26
|
+
RubyVM::AbstractSyntaxTree::Node super_class,
|
|
27
|
+
comment: AST::Comment?
|
|
28
|
+
) { () -> void } -> void
|
|
29
|
+
|
|
30
|
+
def push_module: (RubyVM::AbstractSyntaxTree::Node name, comment: AST::Comment?) { () -> void } -> void
|
|
31
|
+
|
|
32
|
+
# The inner most module/class definition, returns `nil` on toplevel
|
|
33
|
+
def current_module: () -> module_decl?
|
|
34
|
+
|
|
35
|
+
# The inner most module/class definition, raises on toplevel
|
|
36
|
+
def current_module!: () -> module_decl
|
|
37
|
+
|
|
38
|
+
# Put a `sig` call to current list.
|
|
39
|
+
def push_sig: (RubyVM::AbstractSyntaxTree::Node node) -> void
|
|
40
|
+
|
|
41
|
+
# Clear the `sig` call list
|
|
42
|
+
def pop_sig: () -> Array[RubyVM::AbstractSyntaxTree::Node]?
|
|
43
|
+
|
|
44
|
+
def join_comments: (Array[RubyVM::AbstractSyntaxTree::Node] nodes, Hash[Integer, AST::Comment] comments) -> AST::Comment
|
|
45
|
+
|
|
46
|
+
def process: (RubyVM::AbstractSyntaxTree::Node node, comments: Hash[Integer, AST::Comment], ?outer: Array[RubyVM::AbstractSyntaxTree::Node]) -> void
|
|
47
|
+
|
|
48
|
+
def method_type: (RubyVM::AbstractSyntaxTree::Node? args_node, RubyVM::AbstractSyntaxTree::Node? type_node, variables: Array[AST::TypeParam], overloads: Integer) -> MethodType?
|
|
49
|
+
|
|
50
|
+
def parse_params: (RubyVM::AbstractSyntaxTree::Node args_node, RubyVM::AbstractSyntaxTree::Node args, MethodType method_type, variables: Array[AST::TypeParam], overloads: Integer) -> MethodType
|
|
51
|
+
|
|
52
|
+
def type_of: (RubyVM::AbstractSyntaxTree::Node type_node, variables: Array[AST::TypeParam]) -> Types::t
|
|
53
|
+
|
|
54
|
+
def type_of0: (RubyVM::AbstractSyntaxTree::Node type_node, variables: Array[AST::TypeParam]) -> Types::t
|
|
55
|
+
|
|
56
|
+
def proc_type?: (RubyVM::AbstractSyntaxTree::Node type_node) -> bool
|
|
57
|
+
|
|
58
|
+
def call_node?: (RubyVM::AbstractSyntaxTree::Node node, name: Symbol, ?receiver: ^(RubyVM::AbstractSyntaxTree::Node) -> bool, ?args: ^(RubyVM::AbstractSyntaxTree::Node) -> bool) -> bool
|
|
59
|
+
|
|
60
|
+
# Receives a constant node and returns `TypeName` instance
|
|
61
|
+
def const_to_name: (RubyVM::AbstractSyntaxTree::Node node) -> TypeName
|
|
62
|
+
|
|
63
|
+
# Receives `:ARRAY` or `:LIST` node and yields the child nodes.
|
|
64
|
+
def each_arg: (RubyVM::AbstractSyntaxTree::Node array) { (RubyVM::AbstractSyntaxTree::Node) -> void } -> void
|
|
65
|
+
| (RubyVM::AbstractSyntaxTree::Node array) -> Enumerator[RubyVM::AbstractSyntaxTree::Node, void]
|
|
66
|
+
|
|
67
|
+
# Receives node and yields the child nodes.
|
|
68
|
+
def each_child: (RubyVM::AbstractSyntaxTree::Node node) { (RubyVM::AbstractSyntaxTree::Node) -> void } -> void
|
|
69
|
+
| (RubyVM::AbstractSyntaxTree::Node node) -> Enumerator[RubyVM::AbstractSyntaxTree::Node, void]
|
|
70
|
+
|
|
71
|
+
# Receives a keyword `:HASH` node and returns hash instance.
|
|
72
|
+
def node_to_hash: (RubyVM::AbstractSyntaxTree::Node node) -> Hash[Symbol, RubyVM::AbstractSyntaxTree::Node]?
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
end
|