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
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
use Prism::Comment
|
|
2
|
+
|
|
3
|
+
module RBS
|
|
4
|
+
module AST
|
|
5
|
+
module Ruby
|
|
6
|
+
# CommentBlock is a collection of comments
|
|
7
|
+
#
|
|
8
|
+
# ```ruby
|
|
9
|
+
# # Comment1 < block1
|
|
10
|
+
# # Comment2 <
|
|
11
|
+
#
|
|
12
|
+
# # Comment3 < block2
|
|
13
|
+
# ```
|
|
14
|
+
#
|
|
15
|
+
# A comment block is a *leading* block or *trailing* block.
|
|
16
|
+
#
|
|
17
|
+
# ```ruby
|
|
18
|
+
# # This is leading block.
|
|
19
|
+
# # This is the second line of the leading block.
|
|
20
|
+
#
|
|
21
|
+
# foo # This is trailing block.
|
|
22
|
+
# # This is second line of the trailing block.
|
|
23
|
+
# ```
|
|
24
|
+
#
|
|
25
|
+
# A leading block is a comment block where all of the comments are at the start of the line content.
|
|
26
|
+
# A trailing block is a comment block where the first comment of the block has something at the line before the comment.
|
|
27
|
+
#
|
|
28
|
+
class CommentBlock
|
|
29
|
+
attr_reader name: Pathname
|
|
30
|
+
|
|
31
|
+
# Sub buffer of the contents of the comments
|
|
32
|
+
#
|
|
33
|
+
attr_reader comment_buffer: Buffer
|
|
34
|
+
|
|
35
|
+
attr_reader offsets: Array[
|
|
36
|
+
[
|
|
37
|
+
Comment,
|
|
38
|
+
Integer, # -- prefix size
|
|
39
|
+
]
|
|
40
|
+
]
|
|
41
|
+
|
|
42
|
+
def initialize: (Buffer source_buffer, Array[Comment]) -> void
|
|
43
|
+
|
|
44
|
+
# Build comment block instances
|
|
45
|
+
def self.build: (Buffer, Array[Comment]) -> Array[instance]
|
|
46
|
+
|
|
47
|
+
# Returns true if the comment block is a *leading* comment, which is attached to the successor node
|
|
48
|
+
def leading?: () -> bool
|
|
49
|
+
|
|
50
|
+
# Returns true if the comment block is a *trailing* comment, which is attached to the predecessor node
|
|
51
|
+
def trailing?: () -> bool
|
|
52
|
+
|
|
53
|
+
# The line number of the first comment in the block
|
|
54
|
+
def start_line: () -> Integer
|
|
55
|
+
|
|
56
|
+
# The line number of the last comment in the block
|
|
57
|
+
def end_line: () -> Integer
|
|
58
|
+
|
|
59
|
+
# The character index of `#comment_buffer` at the start of the lines
|
|
60
|
+
#
|
|
61
|
+
def line_starts: () -> Array[Integer]
|
|
62
|
+
|
|
63
|
+
# Returns the text content of the comment
|
|
64
|
+
def text: (Integer index) -> String
|
|
65
|
+
|
|
66
|
+
# Yields paragraph and annotation
|
|
67
|
+
#
|
|
68
|
+
# A paragraph is a sequence of lines that are separated by annotations.
|
|
69
|
+
# An annotation starts with a line starting with `@rbs` or `:`, and may continue with lines that has more leading spaces.
|
|
70
|
+
#
|
|
71
|
+
# ```
|
|
72
|
+
# # Line 1 ^ Paragraph 1
|
|
73
|
+
# # Line 2 |
|
|
74
|
+
# # |
|
|
75
|
+
# # Line 3 v
|
|
76
|
+
# # @rbs ... < Annotation 1
|
|
77
|
+
# # @rbs ... ^ Annotation 2
|
|
78
|
+
# # ... |
|
|
79
|
+
# # |
|
|
80
|
+
# # ... v
|
|
81
|
+
# # ^ Paragraph 2
|
|
82
|
+
# # Line 4 |
|
|
83
|
+
# # Line 5 v
|
|
84
|
+
# ```
|
|
85
|
+
#
|
|
86
|
+
def each_paragraph: (Array[Symbol] variables) { (Location | AST::Ruby::Annotations::leading_annotation | AnnotationSyntaxError) -> void } -> void
|
|
87
|
+
| (Array[Symbol] variables) -> Enumerator[Location | AST::Ruby::Annotations::leading_annotation | AnnotationSyntaxError]
|
|
88
|
+
|
|
89
|
+
# Returns a trailing annotation if it exists
|
|
90
|
+
#
|
|
91
|
+
# * Returns `nil` if the block is not a type annotation
|
|
92
|
+
# * Returns an annotation if the block has a type annotation
|
|
93
|
+
# * Returns AnnotationSyntaxError if the annotation has a syntax error
|
|
94
|
+
#
|
|
95
|
+
def trailing_annotation: (Array[Symbol] variables) -> (AST::Ruby::Annotations::trailing_annotation | AnnotationSyntaxError | nil)
|
|
96
|
+
|
|
97
|
+
class AnnotationSyntaxError
|
|
98
|
+
attr_reader location: Location
|
|
99
|
+
|
|
100
|
+
attr_reader error: ParsingError
|
|
101
|
+
|
|
102
|
+
def initialize: (Location, ParsingError) -> void
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
private def yield_paragraph: (Integer start_line, Integer current_line, Array[Symbol] variables) { (Location | AST::Ruby::Annotations::leading_annotation | AnnotationSyntaxError) -> void } -> void
|
|
106
|
+
|
|
107
|
+
private def yield_annotation: (Integer start_line, Integer end_line, Integer current_line, Array[Symbol] variables) { (Location | AST::Ruby::Annotations::leading_annotation | AnnotationSyntaxError) -> void } -> void
|
|
108
|
+
|
|
109
|
+
private def parse_annotation_lines: (Integer start_line, Integer end_line, Array[Symbol] variables) -> (AST::Ruby::Annotations::leading_annotation | AnnotationSyntaxError)
|
|
110
|
+
|
|
111
|
+
def comments: () -> Array[Comment]
|
|
112
|
+
|
|
113
|
+
def line_location: (Integer start_line, Integer end_line) -> Location
|
|
114
|
+
|
|
115
|
+
def location: () -> Location
|
|
116
|
+
|
|
117
|
+
private def leading_annotation?: (Integer index) -> bool
|
|
118
|
+
|
|
119
|
+
# Returns an comment object that contains the docs of from the comment block
|
|
120
|
+
#
|
|
121
|
+
# It ignores type annotations and syntax errors.
|
|
122
|
+
#
|
|
123
|
+
def as_comment: () -> AST::Comment?
|
|
124
|
+
end
|
|
125
|
+
end
|
|
126
|
+
end
|
|
127
|
+
end
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
module RBS
|
|
2
|
+
module AST
|
|
3
|
+
module Ruby
|
|
4
|
+
module Declarations
|
|
5
|
+
type t = ClassDecl | ModuleDecl | ConstantDecl | ClassModuleAliasDecl
|
|
6
|
+
|
|
7
|
+
class Base
|
|
8
|
+
attr_reader buffer: Buffer
|
|
9
|
+
|
|
10
|
+
include Helpers::ConstantHelper
|
|
11
|
+
include Helpers::LocationHelper
|
|
12
|
+
|
|
13
|
+
def initialize: (Buffer) -> void
|
|
14
|
+
|
|
15
|
+
def type_fingerprint: () -> untyped
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
class ClassDecl < Base
|
|
19
|
+
class SuperClass
|
|
20
|
+
attr_reader operator_location: Location
|
|
21
|
+
|
|
22
|
+
attr_reader type_name_location: Location
|
|
23
|
+
|
|
24
|
+
attr_reader type_name: TypeName
|
|
25
|
+
|
|
26
|
+
attr_reader type_annotation: Annotations::TypeApplicationAnnotation?
|
|
27
|
+
|
|
28
|
+
def type_args: () -> Array[Types::t]
|
|
29
|
+
|
|
30
|
+
alias name type_name
|
|
31
|
+
|
|
32
|
+
alias args type_args
|
|
33
|
+
|
|
34
|
+
def initialize: (Location type_name_location, Location operator_location, TypeName, RBS::AST::Ruby::Annotations::TypeApplicationAnnotation?) -> void
|
|
35
|
+
|
|
36
|
+
def location: () -> Location
|
|
37
|
+
|
|
38
|
+
def type_fingerprint: () -> untyped
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
type member = t | Members::t
|
|
42
|
+
|
|
43
|
+
attr_reader class_name: TypeName
|
|
44
|
+
|
|
45
|
+
attr_reader node: Prism::ClassNode
|
|
46
|
+
|
|
47
|
+
attr_reader super_class: SuperClass?
|
|
48
|
+
|
|
49
|
+
attr_reader members: Array[member]
|
|
50
|
+
|
|
51
|
+
def initialize: (Buffer, TypeName, Prism::ClassNode, SuperClass?) -> void
|
|
52
|
+
|
|
53
|
+
def each_decl: () { (t) -> void } -> void
|
|
54
|
+
| () -> Enumerator[t]
|
|
55
|
+
|
|
56
|
+
def type_params: () -> Array[AST::TypeParam]
|
|
57
|
+
|
|
58
|
+
def location: () -> Location
|
|
59
|
+
|
|
60
|
+
def name_location: () -> Location
|
|
61
|
+
|
|
62
|
+
def type_fingerprint: () -> untyped
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
class ModuleDecl < Base
|
|
66
|
+
type member = t | Members::t
|
|
67
|
+
|
|
68
|
+
attr_reader module_name: TypeName
|
|
69
|
+
|
|
70
|
+
attr_reader node: Prism::ModuleNode
|
|
71
|
+
|
|
72
|
+
attr_reader members: Array[member]
|
|
73
|
+
|
|
74
|
+
def initialize: (Buffer, TypeName, Prism::ModuleNode) -> void
|
|
75
|
+
|
|
76
|
+
def each_decl: () { (t) -> void } -> void
|
|
77
|
+
| () -> Enumerator[t]
|
|
78
|
+
|
|
79
|
+
def type_params: () -> Array[AST::TypeParam]
|
|
80
|
+
|
|
81
|
+
def location: () -> Location
|
|
82
|
+
|
|
83
|
+
def self_types: () -> Array[AST::Declarations::Module::Self]
|
|
84
|
+
|
|
85
|
+
def name_location: () -> Location
|
|
86
|
+
|
|
87
|
+
def type_fingerprint: () -> untyped
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
class ConstantDecl < Base
|
|
91
|
+
type node = Prism::ConstantWriteNode | Prism::ConstantPathWriteNode
|
|
92
|
+
|
|
93
|
+
attr_reader leading_comment: CommentBlock?
|
|
94
|
+
|
|
95
|
+
attr_reader constant_name: TypeName
|
|
96
|
+
|
|
97
|
+
attr_reader node: node
|
|
98
|
+
|
|
99
|
+
attr_reader type_annotation: Annotations::NodeTypeAssertion?
|
|
100
|
+
|
|
101
|
+
def initialize: (Buffer, TypeName, node, CommentBlock?, Annotations::NodeTypeAssertion?) -> void
|
|
102
|
+
|
|
103
|
+
def location: () -> Location
|
|
104
|
+
|
|
105
|
+
def name_location: () -> Location
|
|
106
|
+
|
|
107
|
+
# Returns the type of the constant
|
|
108
|
+
#
|
|
109
|
+
# - When type_anntoation is given, it returns the type from the annotation.
|
|
110
|
+
# - When type_annotation is not given, it returns infered type from the right-hand-side of the constant assignment
|
|
111
|
+
# - Or it returns `untyped` type
|
|
112
|
+
#
|
|
113
|
+
def type: () -> Types::t
|
|
114
|
+
|
|
115
|
+
# Returns the comment content extracted from the leading comment block
|
|
116
|
+
#
|
|
117
|
+
def comment: () -> AST::Comment?
|
|
118
|
+
|
|
119
|
+
def type_fingerprint: () -> untyped
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
class ClassModuleAliasDecl < Base
|
|
123
|
+
type node = Prism::ConstantWriteNode | Prism::ConstantPathWriteNode
|
|
124
|
+
|
|
125
|
+
type annotation = Annotations::ClassAliasAnnotation | Annotations::ModuleAliasAnnotation
|
|
126
|
+
|
|
127
|
+
attr_reader node: node
|
|
128
|
+
|
|
129
|
+
attr_reader leading_comment: CommentBlock?
|
|
130
|
+
|
|
131
|
+
attr_reader new_name: TypeName
|
|
132
|
+
|
|
133
|
+
# The infered old name from the right-hand side of the constant declaration
|
|
134
|
+
#
|
|
135
|
+
# - `nil` if the annotation has the type name
|
|
136
|
+
#
|
|
137
|
+
attr_reader infered_old_name: TypeName?
|
|
138
|
+
|
|
139
|
+
attr_reader annotation: annotation
|
|
140
|
+
|
|
141
|
+
def initialize: (Buffer, node, TypeName, TypeName?, CommentBlock?, annotation) -> void
|
|
142
|
+
|
|
143
|
+
def name_location: () -> Location
|
|
144
|
+
|
|
145
|
+
def location: () -> Location
|
|
146
|
+
|
|
147
|
+
# Returns the old name of the class/module alias
|
|
148
|
+
#
|
|
149
|
+
def old_name: () -> TypeName
|
|
150
|
+
|
|
151
|
+
def comment: () -> Comment?
|
|
152
|
+
|
|
153
|
+
def type_fingerprint: () -> untyped
|
|
154
|
+
end
|
|
155
|
+
end
|
|
156
|
+
end
|
|
157
|
+
end
|
|
158
|
+
end
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
module RBS
|
|
2
|
+
module AST
|
|
3
|
+
module Ruby
|
|
4
|
+
module Members
|
|
5
|
+
class Base
|
|
6
|
+
attr_reader buffer: Buffer
|
|
7
|
+
|
|
8
|
+
def initialize: (Buffer) -> void
|
|
9
|
+
|
|
10
|
+
include Helpers::LocationHelper
|
|
11
|
+
|
|
12
|
+
def type_fingerprint: () -> untyped
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
type t = DefMember
|
|
16
|
+
| IncludeMember | ExtendMember | PrependMember
|
|
17
|
+
| AttrReaderMember | AttrWriterMember | AttrAccessorMember
|
|
18
|
+
| InstanceVariableMember
|
|
19
|
+
| ModuleSelfMember
|
|
20
|
+
|
|
21
|
+
class MethodTypeAnnotation
|
|
22
|
+
class DocStyle
|
|
23
|
+
type param_type_annotation = Annotations::ParamTypeAnnotation
|
|
24
|
+
| Annotations::SplatParamTypeAnnotation
|
|
25
|
+
| Annotations::DoubleSplatParamTypeAnnotation
|
|
26
|
+
| Annotations::BlockParamTypeAnnotation
|
|
27
|
+
|
|
28
|
+
attr_accessor return_type_annotation: Annotations::ReturnTypeAnnotation | Annotations::NodeTypeAssertion | nil
|
|
29
|
+
|
|
30
|
+
attr_reader required_positionals: Array[Annotations::ParamTypeAnnotation | Symbol]
|
|
31
|
+
attr_reader optional_positionals: Array[Annotations::ParamTypeAnnotation | Symbol]
|
|
32
|
+
attr_accessor rest_positionals: Annotations::SplatParamTypeAnnotation | Symbol | true | nil
|
|
33
|
+
attr_reader trailing_positionals: Array[Annotations::ParamTypeAnnotation | Symbol]
|
|
34
|
+
attr_reader required_keywords: Hash[Symbol, Annotations::ParamTypeAnnotation | Symbol]
|
|
35
|
+
attr_reader optional_keywords: Hash[Symbol, Annotations::ParamTypeAnnotation | Symbol]
|
|
36
|
+
attr_accessor rest_keywords: Annotations::DoubleSplatParamTypeAnnotation | Symbol | true | nil
|
|
37
|
+
attr_accessor block: Annotations::BlockParamTypeAnnotation | Symbol | true | nil
|
|
38
|
+
|
|
39
|
+
def initialize: () -> void
|
|
40
|
+
|
|
41
|
+
def self.build: (Array[param_type_annotation], Annotations::ReturnTypeAnnotation | Annotations::NodeTypeAssertion | nil, Prism::DefNode) -> [DocStyle, Array[param_type_annotation]]
|
|
42
|
+
|
|
43
|
+
def all_param_annotations: () -> Array[param_type_annotation | Symbol | true | nil]
|
|
44
|
+
|
|
45
|
+
def map_type_name: () { (TypeName) -> TypeName } -> self
|
|
46
|
+
|
|
47
|
+
def method_type: () -> MethodType
|
|
48
|
+
|
|
49
|
+
def type_fingerprint: () -> untyped
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
type type_annotations = DocStyle | Array[Annotations::ColonMethodTypeAnnotation | Annotations::MethodTypesAnnotation] | nil
|
|
53
|
+
|
|
54
|
+
attr_reader type_annotations: type_annotations
|
|
55
|
+
|
|
56
|
+
def initialize: (type_annotations: type_annotations) -> void
|
|
57
|
+
|
|
58
|
+
def map_type_name: { (TypeName) -> TypeName } -> self
|
|
59
|
+
|
|
60
|
+
# Returns the method type annotations from the comment block
|
|
61
|
+
#
|
|
62
|
+
# Returns a tuple of `DefAnnotations` object, array of unused leading annotations, and unused trailing annotation.
|
|
63
|
+
#
|
|
64
|
+
def self.build: (CommentBlock? leading_block, CommentBlock? trailing_block, Array[Symbol], Prism::DefNode) -> [
|
|
65
|
+
MethodTypeAnnotation,
|
|
66
|
+
Array[Annotations::leading_annotation | CommentBlock::AnnotationSyntaxError],
|
|
67
|
+
Annotations::trailing_annotation | CommentBlock::AnnotationSyntaxError | nil
|
|
68
|
+
]
|
|
69
|
+
|
|
70
|
+
# Returns `true` if it doesn't have any annotation
|
|
71
|
+
def empty?: () -> bool
|
|
72
|
+
|
|
73
|
+
# Returns the method type overloads
|
|
74
|
+
#
|
|
75
|
+
def overloads: () -> Array[AST::Members::MethodDefinition::Overload]
|
|
76
|
+
|
|
77
|
+
def overloading?: () -> bool
|
|
78
|
+
|
|
79
|
+
def type_fingerprint: () -> untyped
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
class DefMember < Base
|
|
83
|
+
class Overload = AST::Members::MethodDefinition::Overload
|
|
84
|
+
|
|
85
|
+
attr_reader name: Symbol
|
|
86
|
+
attr_reader node: Prism::DefNode
|
|
87
|
+
attr_reader kind: :instance | :singleton
|
|
88
|
+
attr_reader method_type: MethodTypeAnnotation
|
|
89
|
+
attr_reader leading_comment: CommentBlock?
|
|
90
|
+
|
|
91
|
+
def initialize: (Buffer, Symbol name, Prism::DefNode node, MethodTypeAnnotation, CommentBlock? leading_comment, ?kind: :instance | :singleton) -> void
|
|
92
|
+
|
|
93
|
+
def singleton?: () -> bool
|
|
94
|
+
|
|
95
|
+
def instance?: () -> bool
|
|
96
|
+
|
|
97
|
+
def location: () -> Location
|
|
98
|
+
|
|
99
|
+
def overloads: () -> Array[Overload]
|
|
100
|
+
|
|
101
|
+
def overloading?: () -> bool
|
|
102
|
+
|
|
103
|
+
def annotations: () -> Array[AST::Annotation]
|
|
104
|
+
|
|
105
|
+
def name_location: () -> Location
|
|
106
|
+
|
|
107
|
+
def type_fingerprint: () -> untyped
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
class MixinMember < Base
|
|
111
|
+
attr_reader node: Prism::CallNode
|
|
112
|
+
|
|
113
|
+
attr_reader module_name: TypeName
|
|
114
|
+
|
|
115
|
+
attr_reader annotation: Annotations::TypeApplicationAnnotation | nil
|
|
116
|
+
|
|
117
|
+
def initialize: (Buffer, Prism::CallNode, TypeName, Annotations::TypeApplicationAnnotation | nil) -> void
|
|
118
|
+
|
|
119
|
+
def location: () -> Location
|
|
120
|
+
|
|
121
|
+
def name_location: () -> Location
|
|
122
|
+
|
|
123
|
+
def type_args: () -> Array[Types::t]
|
|
124
|
+
|
|
125
|
+
def type_fingerprint: () -> untyped
|
|
126
|
+
end
|
|
127
|
+
|
|
128
|
+
class IncludeMember < MixinMember
|
|
129
|
+
end
|
|
130
|
+
|
|
131
|
+
class ExtendMember < MixinMember
|
|
132
|
+
end
|
|
133
|
+
|
|
134
|
+
class PrependMember < MixinMember
|
|
135
|
+
end
|
|
136
|
+
|
|
137
|
+
class AttributeMember < Base
|
|
138
|
+
attr_reader node: Prism::CallNode
|
|
139
|
+
|
|
140
|
+
attr_reader name_nodes: Array[Prism::SymbolNode]
|
|
141
|
+
|
|
142
|
+
attr_reader type_annotation: Annotations::NodeTypeAssertion?
|
|
143
|
+
|
|
144
|
+
attr_reader leading_comment: CommentBlock?
|
|
145
|
+
|
|
146
|
+
def initialize: (Buffer, Prism::CallNode, Array[Prism::SymbolNode] name_nodes, RBS::AST::Ruby::CommentBlock? leading_comment, Annotations::NodeTypeAssertion? type_annotation) -> void
|
|
147
|
+
|
|
148
|
+
def names: () -> Array[Symbol]
|
|
149
|
+
|
|
150
|
+
def location: () -> Location
|
|
151
|
+
|
|
152
|
+
def name_locations: () -> Array[Location]
|
|
153
|
+
|
|
154
|
+
def type: () -> Types::t?
|
|
155
|
+
|
|
156
|
+
def type_fingerprint: () -> untyped
|
|
157
|
+
end
|
|
158
|
+
|
|
159
|
+
class AttrReaderMember < AttributeMember
|
|
160
|
+
end
|
|
161
|
+
|
|
162
|
+
class AttrWriterMember < AttributeMember
|
|
163
|
+
end
|
|
164
|
+
|
|
165
|
+
class AttrAccessorMember < AttributeMember
|
|
166
|
+
end
|
|
167
|
+
|
|
168
|
+
class InstanceVariableMember < Base
|
|
169
|
+
attr_reader annotation: Annotations::InstanceVariableAnnotation
|
|
170
|
+
|
|
171
|
+
def initialize: (Buffer, Annotations::InstanceVariableAnnotation) -> void
|
|
172
|
+
|
|
173
|
+
def name: () -> Symbol
|
|
174
|
+
|
|
175
|
+
def type: () -> Types::t
|
|
176
|
+
|
|
177
|
+
def location: () -> Location
|
|
178
|
+
|
|
179
|
+
def type_fingerprint: () -> untyped
|
|
180
|
+
end
|
|
181
|
+
|
|
182
|
+
class ModuleSelfMember < Base
|
|
183
|
+
attr_reader annotation: Annotations::ModuleSelfAnnotation
|
|
184
|
+
|
|
185
|
+
def initialize: (Buffer, Annotations::ModuleSelfAnnotation) -> void
|
|
186
|
+
|
|
187
|
+
def name: () -> TypeName
|
|
188
|
+
|
|
189
|
+
def args: () -> Array[Types::t]
|
|
190
|
+
|
|
191
|
+
def location: () -> Location
|
|
192
|
+
|
|
193
|
+
def type_fingerprint: () -> untyped
|
|
194
|
+
end
|
|
195
|
+
end
|
|
196
|
+
end
|
|
197
|
+
end
|
|
198
|
+
end
|
data/sig/buffer.rbs
ADDED
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
module RBS
|
|
2
|
+
class Buffer
|
|
3
|
+
# Location in a buffer.
|
|
4
|
+
# A pair of line number (1 origin) and column number (0 origin).
|
|
5
|
+
#
|
|
6
|
+
type loc = [Integer, Integer]
|
|
7
|
+
|
|
8
|
+
# Name to identify Buffer.
|
|
9
|
+
attr_reader name: Pathname
|
|
10
|
+
|
|
11
|
+
# The content of the buffer.
|
|
12
|
+
attr_reader content: String
|
|
13
|
+
|
|
14
|
+
attr_reader parent: [Buffer, Array[Range[Integer]]]?
|
|
15
|
+
|
|
16
|
+
def initialize: (name: Pathname name, content: String content) -> void
|
|
17
|
+
| (content: String content, parent: [Buffer, Array[Range[Integer]]] parent) -> void
|
|
18
|
+
|
|
19
|
+
# Array of lines of the content, without the EOL
|
|
20
|
+
#
|
|
21
|
+
# ```rb
|
|
22
|
+
# buffer = Buffer.new(name: name, content: "123\nabc")
|
|
23
|
+
# buffer.lines # => ["123", "abc"]
|
|
24
|
+
# ```
|
|
25
|
+
#
|
|
26
|
+
# If the input has EOL at the end of the file, the `lines` has an empty string at the end.
|
|
27
|
+
#
|
|
28
|
+
# ```rb
|
|
29
|
+
# buffer = Buffer.new(name: name, content: "123\nabc\n")
|
|
30
|
+
# buffer.lines # => ["123", "abc", ""]
|
|
31
|
+
# ```
|
|
32
|
+
#
|
|
33
|
+
def lines: () -> Array[String]
|
|
34
|
+
|
|
35
|
+
@ranges: Array[Range[Integer]]?
|
|
36
|
+
# Array of ranges that stores the ranges of the each line, without the EOL
|
|
37
|
+
#
|
|
38
|
+
# ```rb
|
|
39
|
+
# buffer = Buffer.new(name: name, content: "123\nabc\n")
|
|
40
|
+
# buffer.ranges # => [0...3, 4...7, 8...8]
|
|
41
|
+
# ```
|
|
42
|
+
#
|
|
43
|
+
def ranges: () -> Array[Range[Integer]]
|
|
44
|
+
|
|
45
|
+
# Returns the number of the lines
|
|
46
|
+
def line_count: () -> Integer
|
|
47
|
+
|
|
48
|
+
# Translate position to location.
|
|
49
|
+
def pos_to_loc: (Integer pos) -> loc
|
|
50
|
+
|
|
51
|
+
# Translate location to position.
|
|
52
|
+
def loc_to_pos: (loc loc) -> Integer
|
|
53
|
+
|
|
54
|
+
def last_position: () -> Integer
|
|
55
|
+
|
|
56
|
+
# Translate `Prism::Location` to `RBS::Location` attached to this buffer
|
|
57
|
+
#
|
|
58
|
+
# It assumes the `Prism::Location` has a source which is equivalent to `self`.
|
|
59
|
+
#
|
|
60
|
+
def rbs_location: (Prism::Location) -> Location
|
|
61
|
+
| (Prism::Location, Prism::Location) -> Location
|
|
62
|
+
|
|
63
|
+
# Translate a byte offset (into the top buffer's source) to a character offset.
|
|
64
|
+
#
|
|
65
|
+
# Resolution is delegated to the top buffer, which keeps a sparse cache of
|
|
66
|
+
# resolved (byte, char) pairs so successive calls scan only the delta from the
|
|
67
|
+
# nearest cached pair. Amortizes to O(content_size) across all calls; a single
|
|
68
|
+
# call is one byteslice + length.
|
|
69
|
+
#
|
|
70
|
+
def character_offset: (Integer byte_offset) -> Integer
|
|
71
|
+
|
|
72
|
+
# Sparse cache backing `#character_offset`: a pair `[byte_keys, char_values]`
|
|
73
|
+
# kept in ascending byte order to support binary search.
|
|
74
|
+
@character_offset_cache: [Array[Integer], Array[Integer]]?
|
|
75
|
+
|
|
76
|
+
# Construct a buffer from substrings of this buffer.
|
|
77
|
+
#
|
|
78
|
+
# The returned buffer contains lines from given ranges.
|
|
79
|
+
#
|
|
80
|
+
# ```rb
|
|
81
|
+
# buffer = Buffer.new(name: name, content: <<TEXT)
|
|
82
|
+
# 12345
|
|
83
|
+
# abcde
|
|
84
|
+
# ABCDE
|
|
85
|
+
# TEXT
|
|
86
|
+
#
|
|
87
|
+
# buffer.sub_buffer(lines: [0...1, 2...3]) # => Buffer with content = 1\n34
|
|
88
|
+
# buffer.sub_buffer(lines: [5..7]) # => Raises an error because the range contains newline
|
|
89
|
+
# ```
|
|
90
|
+
#
|
|
91
|
+
# `byte_lines_hint:` is an optional performance hint: byte ranges corresponding
|
|
92
|
+
# to `lines:`. When provided, slicing uses `byteslice` (O(slice_size) per line)
|
|
93
|
+
# instead of `content[char_range]`, which on a multi-byte string is O(content_size)
|
|
94
|
+
# per call. Result is identical either way.
|
|
95
|
+
#
|
|
96
|
+
%a{pure} def sub_buffer: (lines: Array[Range[Integer]], ?byte_lines_hint: Array[Range[Integer]]?) -> Buffer
|
|
97
|
+
|
|
98
|
+
%a{pure} def parent_buffer: () -> Buffer?
|
|
99
|
+
|
|
100
|
+
%a{pure} def parent_position: (Integer) -> Integer?
|
|
101
|
+
|
|
102
|
+
%a{pure} def absolute_position: (Integer) -> Integer?
|
|
103
|
+
|
|
104
|
+
%a{pure} def top_buffer: () -> Buffer
|
|
105
|
+
|
|
106
|
+
%a{pure} def detach: () -> Buffer
|
|
107
|
+
end
|
|
108
|
+
end
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
module RBS
|
|
2
|
+
module BuiltinNames
|
|
3
|
+
class Name
|
|
4
|
+
attr_reader name: TypeName
|
|
5
|
+
|
|
6
|
+
@singleton_type: Types::t?
|
|
7
|
+
|
|
8
|
+
def initialize: (name: TypeName) -> void
|
|
9
|
+
|
|
10
|
+
def to_s: () -> String
|
|
11
|
+
|
|
12
|
+
def instance_type: (*Types::t) -> Types::ClassInstance
|
|
13
|
+
|
|
14
|
+
def instance_type?: (Types::t) -> bool
|
|
15
|
+
|
|
16
|
+
def singleton_type: () -> Types::ClassSingleton
|
|
17
|
+
|
|
18
|
+
def singleton_type?: (Types::t) -> bool
|
|
19
|
+
|
|
20
|
+
def self.define: (Symbol, ?namespace: Namespace) -> instance
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
BasicObject: Name
|
|
24
|
+
Object: Name
|
|
25
|
+
Kernel: Name
|
|
26
|
+
String: Name
|
|
27
|
+
Comparable: Name
|
|
28
|
+
Enumerable: Name
|
|
29
|
+
Class: Name
|
|
30
|
+
Module: Name
|
|
31
|
+
Array: Name
|
|
32
|
+
Hash: Name
|
|
33
|
+
Range: Name
|
|
34
|
+
Enumerator: Name
|
|
35
|
+
Set: Name
|
|
36
|
+
Symbol: Name
|
|
37
|
+
Integer: Name
|
|
38
|
+
Float: Name
|
|
39
|
+
Regexp: Name
|
|
40
|
+
TrueClass: Name
|
|
41
|
+
FalseClass: Name
|
|
42
|
+
Numeric: Name
|
|
43
|
+
end
|
|
44
|
+
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
module RBS
|
|
2
|
+
class CLI
|
|
3
|
+
class ColoredIO
|
|
4
|
+
attr_reader stdout: CLI::_IO
|
|
5
|
+
def initialize: (stdout: CLI::_IO) -> void
|
|
6
|
+
def puts_green: (String) -> void
|
|
7
|
+
def puts_red: (String) -> void
|
|
8
|
+
def puts: (?String) -> void
|
|
9
|
+
|
|
10
|
+
private def can_display_colors?: () -> bool
|
|
11
|
+
private def are_colors_supported?: () -> bool
|
|
12
|
+
private def are_colors_disabled?: () -> bool
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
data/sig/cli/diff.rbs
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
module RBS
|
|
2
|
+
class CLI
|
|
3
|
+
class Diff
|
|
4
|
+
@stdout: _IO
|
|
5
|
+
@stderr: _IO
|
|
6
|
+
|
|
7
|
+
def initialize: (?stdout: _IO, ?stderr: _IO) -> void
|
|
8
|
+
|
|
9
|
+
def run: (library_options: RBS::CLI::LibraryOptions, argv: Array[String]) -> Integer
|
|
10
|
+
|
|
11
|
+
def run_diff: (RBS::Diff) -> void
|
|
12
|
+
def run_markdown: (RBS::Diff) -> void
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|