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/errors.rbs
ADDED
|
@@ -0,0 +1,408 @@
|
|
|
1
|
+
module RBS
|
|
2
|
+
interface _MethodName
|
|
3
|
+
def kind: () -> (:instance | :singleton)
|
|
4
|
+
|
|
5
|
+
def type_name: () -> TypeName
|
|
6
|
+
|
|
7
|
+
def method_name: () -> Symbol
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
module MethodNameHelper : _MethodName
|
|
11
|
+
def method_name_string: () -> String
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
# Error class for errors defined in RBS.
|
|
15
|
+
#
|
|
16
|
+
class BaseError < StandardError
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
interface _Location
|
|
20
|
+
%a{pure} def location: () -> Location[untyped, untyped]?
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
module DetailedMessageable : _Location, Exception
|
|
24
|
+
def detailed_message: (?highlight: boolish, **untyped) -> String
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
# Error class for errors raised during parsing.
|
|
28
|
+
#
|
|
29
|
+
class ParsingError < BaseError
|
|
30
|
+
include DetailedMessageable
|
|
31
|
+
|
|
32
|
+
attr_reader location: Location[untyped, untyped]
|
|
33
|
+
attr_reader error_message: String
|
|
34
|
+
attr_reader token_type: String
|
|
35
|
+
|
|
36
|
+
def initialize: (Location[untyped, untyped], String error_message, String token_type) -> void
|
|
37
|
+
|
|
38
|
+
def error_value: () -> String
|
|
39
|
+
|
|
40
|
+
def token_str: () -> String
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
class Parser
|
|
44
|
+
SemanticsError: singleton(ParsingError)
|
|
45
|
+
SyntaxError: singleton(ParsingError)
|
|
46
|
+
LexerError: singleton(ParsingError)
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
# Error class for errors raised during loading environments.
|
|
50
|
+
#
|
|
51
|
+
class LoadingError < BaseError
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
# Error class for errors raised during building definitions.
|
|
55
|
+
#
|
|
56
|
+
class DefinitionError < BaseError
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
class InvalidTypeApplicationError < DefinitionError
|
|
60
|
+
attr_reader type_name: TypeName
|
|
61
|
+
attr_reader args: Array[Types::t]
|
|
62
|
+
attr_reader params: Array[Symbol]
|
|
63
|
+
attr_reader type_params: Array[AST::TypeParam]
|
|
64
|
+
attr_reader location: Location[untyped, untyped]?
|
|
65
|
+
|
|
66
|
+
def initialize: (type_name: TypeName, args: Array[Types::t], params: Array[AST::TypeParam], location: Location[untyped, untyped]?) -> void
|
|
67
|
+
|
|
68
|
+
def self.check!: (type_name: TypeName, args: Array[Types::t], params: Array[AST::TypeParam], location: Location[untyped, untyped]?) -> void
|
|
69
|
+
|
|
70
|
+
def self.check2!: (env: Environment, type_name: TypeName, args: Array[Types::t], location: Location[untyped, untyped]?) -> void
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
class RecursiveAncestorError < DefinitionError
|
|
74
|
+
attr_reader ancestors: Array[Definition::Ancestor::t]
|
|
75
|
+
attr_reader location: Location[untyped, untyped]?
|
|
76
|
+
|
|
77
|
+
def initialize: (ancestors: Array[Definition::Ancestor::t], location: Location[untyped, untyped]?) -> void
|
|
78
|
+
|
|
79
|
+
def self.check!: (Definition::Ancestor::t, ancestors: Array[Definition::Ancestor::t], location: Location[untyped, untyped]?) -> void
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
class NoTypeFoundError < DefinitionError
|
|
83
|
+
include DetailedMessageable
|
|
84
|
+
|
|
85
|
+
attr_reader type_name: TypeName
|
|
86
|
+
attr_reader location: Location[untyped, untyped]?
|
|
87
|
+
|
|
88
|
+
def initialize: (type_name: TypeName, location: Location[untyped, untyped]?) -> void
|
|
89
|
+
|
|
90
|
+
def self.check!: (TypeName, env: Environment, location: Location[untyped, untyped]?) -> TypeName
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
class NoSuperclassFoundError < DefinitionError
|
|
94
|
+
attr_reader type_name: TypeName
|
|
95
|
+
attr_reader location: Location[untyped, untyped]?
|
|
96
|
+
|
|
97
|
+
def initialize: (type_name: TypeName, location: Location[untyped, untyped]?) -> void
|
|
98
|
+
|
|
99
|
+
def self.check!: (TypeName, env: Environment, location: Location[untyped, untyped]?) -> void
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
class NoSelfTypeFoundError < DefinitionError
|
|
103
|
+
include DetailedMessageable
|
|
104
|
+
|
|
105
|
+
attr_reader type_name: TypeName
|
|
106
|
+
attr_reader location: Location[untyped, untyped]?
|
|
107
|
+
|
|
108
|
+
def initialize: (type_name: TypeName, location: Location[untyped, untyped]?) -> void
|
|
109
|
+
|
|
110
|
+
# The type name in `self` is automatically normalized
|
|
111
|
+
#
|
|
112
|
+
def self.check!: (AST::Declarations::Module::Self, env: Environment) -> void
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
class NoMixinFoundError < DefinitionError
|
|
116
|
+
include DetailedMessageable
|
|
117
|
+
|
|
118
|
+
type member = AST::Members::t | AST::Ruby::Members::IncludeMember | AST::Ruby::Members::ExtendMember | AST::Ruby::Members::PrependMember
|
|
119
|
+
|
|
120
|
+
attr_reader type_name: TypeName
|
|
121
|
+
attr_reader member: member
|
|
122
|
+
|
|
123
|
+
def initialize: (type_name: TypeName, member: member) -> void
|
|
124
|
+
|
|
125
|
+
def location: () -> Location[untyped, untyped]?
|
|
126
|
+
|
|
127
|
+
def self.check!: (TypeName, env: Environment, member: member) -> void
|
|
128
|
+
end
|
|
129
|
+
|
|
130
|
+
class DuplicatedMethodDefinitionError < DefinitionError
|
|
131
|
+
include DetailedMessageable
|
|
132
|
+
|
|
133
|
+
type ty = Types::ClassSingleton | Types::ClassInstance | Types::Interface
|
|
134
|
+
type original = DefinitionBuilder::MethodBuilder::Methods::Definition::original
|
|
135
|
+
|
|
136
|
+
attr_reader type: ty
|
|
137
|
+
attr_reader method_name: Symbol
|
|
138
|
+
attr_reader members: Array[original]
|
|
139
|
+
|
|
140
|
+
def initialize: (type: ty, method_name: Symbol, members: Array[original]) -> void
|
|
141
|
+
|
|
142
|
+
def type_name: () -> TypeName
|
|
143
|
+
|
|
144
|
+
def qualified_method_name: () -> String
|
|
145
|
+
|
|
146
|
+
def location: () -> Location[untyped, untyped]?
|
|
147
|
+
|
|
148
|
+
def other_locations: () -> Array[Location[untyped, untyped]?]
|
|
149
|
+
end
|
|
150
|
+
|
|
151
|
+
# An interface mixin causes a duplication of a method definition
|
|
152
|
+
#
|
|
153
|
+
# ```rbs
|
|
154
|
+
# interface _Foo1
|
|
155
|
+
# def foo: () -> void
|
|
156
|
+
# end
|
|
157
|
+
#
|
|
158
|
+
# interface _Foo2
|
|
159
|
+
# def foo: () -> void
|
|
160
|
+
# end
|
|
161
|
+
#
|
|
162
|
+
# class Foo
|
|
163
|
+
# include _Foo1
|
|
164
|
+
# include _Foo2 # <= The error will be reported here (or the line of _Foo1)
|
|
165
|
+
# end
|
|
166
|
+
# ```
|
|
167
|
+
#
|
|
168
|
+
class DuplicatedInterfaceMethodDefinitionError < DefinitionError
|
|
169
|
+
include DetailedMessageable
|
|
170
|
+
|
|
171
|
+
type ty = Types::ClassSingleton | Types::ClassInstance | Types::Interface
|
|
172
|
+
type mixin_member = AST::Members::Include | AST::Members::Extend
|
|
173
|
+
|
|
174
|
+
attr_reader type: ty
|
|
175
|
+
attr_reader method_name: Symbol
|
|
176
|
+
attr_reader member: mixin_member
|
|
177
|
+
|
|
178
|
+
def initialize: (type: ty, method_name: Symbol, member: mixin_member) -> void
|
|
179
|
+
|
|
180
|
+
def type_name: () -> TypeName
|
|
181
|
+
|
|
182
|
+
def qualified_method_name: () -> String
|
|
183
|
+
|
|
184
|
+
def location: () -> AST::Members::Mixin::loc?
|
|
185
|
+
end
|
|
186
|
+
|
|
187
|
+
class VariableDuplicationError < DefinitionError
|
|
188
|
+
include DetailedMessageable
|
|
189
|
+
|
|
190
|
+
attr_reader type_name: TypeName
|
|
191
|
+
attr_reader variable_name: Symbol
|
|
192
|
+
attr_reader location: Location[untyped, untyped]?
|
|
193
|
+
|
|
194
|
+
def initialize: (type_name: TypeName, variable_name: Symbol, location: Location[untyped, untyped]?) -> void
|
|
195
|
+
def kind: () -> String
|
|
196
|
+
end
|
|
197
|
+
|
|
198
|
+
class InstanceVariableDuplicationError < VariableDuplicationError
|
|
199
|
+
def kind: () -> String
|
|
200
|
+
end
|
|
201
|
+
|
|
202
|
+
class ClassInstanceVariableDuplicationError < VariableDuplicationError
|
|
203
|
+
def kind: () -> String
|
|
204
|
+
end
|
|
205
|
+
|
|
206
|
+
# The `alias` member declares an alias from unknown method
|
|
207
|
+
#
|
|
208
|
+
class UnknownMethodAliasError < DefinitionError
|
|
209
|
+
include DetailedMessageable
|
|
210
|
+
|
|
211
|
+
attr_reader type_name: TypeName
|
|
212
|
+
attr_reader original_name: Symbol
|
|
213
|
+
attr_reader aliased_name: Symbol
|
|
214
|
+
attr_reader location: Location[untyped, untyped]?
|
|
215
|
+
|
|
216
|
+
def initialize: (type_name: TypeName, original_name: Symbol, aliased_name: Symbol, location: Location[untyped, untyped]?) -> void
|
|
217
|
+
end
|
|
218
|
+
|
|
219
|
+
class SuperclassMismatchError < DefinitionError
|
|
220
|
+
attr_reader name: TypeName
|
|
221
|
+
attr_reader entry: Environment::ClassEntry
|
|
222
|
+
|
|
223
|
+
def initialize: (name: TypeName, entry: Environment::ClassEntry) -> void
|
|
224
|
+
end
|
|
225
|
+
|
|
226
|
+
# The *overloading* method definition cannot find *non-overloading* method definition
|
|
227
|
+
#
|
|
228
|
+
class InvalidOverloadMethodError < DefinitionError
|
|
229
|
+
include DetailedMessageable
|
|
230
|
+
|
|
231
|
+
type member = AST::Members::MethodDefinition | AST::Ruby::Members::DefMember
|
|
232
|
+
|
|
233
|
+
attr_reader type_name: TypeName
|
|
234
|
+
attr_reader method_name: Symbol
|
|
235
|
+
attr_reader kind: :instance | :singleton
|
|
236
|
+
attr_reader members: Array[member]
|
|
237
|
+
|
|
238
|
+
def initialize: (type_name: TypeName, method_name: Symbol, kind: :instance | :singleton, members: Array[member]) -> void
|
|
239
|
+
|
|
240
|
+
def location: () -> AST::Members::MethodDefinition::loc?
|
|
241
|
+
end
|
|
242
|
+
|
|
243
|
+
class GenericParameterMismatchError < LoadingError
|
|
244
|
+
type decl = AST::Declarations::Class | AST::Declarations::Module
|
|
245
|
+
| AST::Ruby::Declarations::ClassDecl | AST::Ruby::Declarations::ModuleDecl
|
|
246
|
+
|
|
247
|
+
attr_reader name: TypeName
|
|
248
|
+
attr_reader decl: decl
|
|
249
|
+
|
|
250
|
+
def initialize: (name: TypeName, decl: decl, ?location: Location) -> void
|
|
251
|
+
end
|
|
252
|
+
|
|
253
|
+
class DuplicatedDeclarationError < LoadingError
|
|
254
|
+
type declaration = AST::Declarations::t | AST::Ruby::Declarations::t
|
|
255
|
+
|
|
256
|
+
attr_reader name: TypeName | Symbol
|
|
257
|
+
attr_reader decls: Array[declaration]
|
|
258
|
+
|
|
259
|
+
def initialize: (TypeName | Symbol, *declaration) -> void
|
|
260
|
+
end
|
|
261
|
+
|
|
262
|
+
class InvalidVarianceAnnotationError < DefinitionError
|
|
263
|
+
include DetailedMessageable
|
|
264
|
+
|
|
265
|
+
attr_reader type_name: TypeName
|
|
266
|
+
attr_reader param: AST::TypeParam
|
|
267
|
+
attr_reader location: Location[untyped, untyped]?
|
|
268
|
+
|
|
269
|
+
def initialize: (type_name: TypeName, param: AST::TypeParam, location: Location[untyped, untyped]?) -> void
|
|
270
|
+
end
|
|
271
|
+
|
|
272
|
+
class RecursiveAliasDefinitionError < DefinitionError
|
|
273
|
+
include DetailedMessageable
|
|
274
|
+
|
|
275
|
+
type ty = Types::ClassInstance | Types::ClassSingleton | Types::Interface
|
|
276
|
+
type defn = DefinitionBuilder::MethodBuilder::Methods::Definition
|
|
277
|
+
|
|
278
|
+
attr_reader type: ty
|
|
279
|
+
attr_reader defs: Array[defn]
|
|
280
|
+
|
|
281
|
+
def initialize: (type: ty, defs: Array[defn]) -> void
|
|
282
|
+
|
|
283
|
+
def location: () -> Location[untyped, untyped]?
|
|
284
|
+
end
|
|
285
|
+
|
|
286
|
+
# MixinClassError is raised if a include/prepend/extend has a class (not a module) to mix-in
|
|
287
|
+
#
|
|
288
|
+
class MixinClassError < DefinitionError
|
|
289
|
+
include DetailedMessageable
|
|
290
|
+
|
|
291
|
+
type member = AST::Members::Include | AST::Members::Prepend | AST::Members::Extend
|
|
292
|
+
| AST::Ruby::Members::IncludeMember | AST::Ruby::Members::PrependMember | AST::Ruby::Members::ExtendMember
|
|
293
|
+
|
|
294
|
+
attr_reader type_name: TypeName
|
|
295
|
+
attr_reader member: member
|
|
296
|
+
|
|
297
|
+
def initialize: (type_name: TypeName, member: member) -> void
|
|
298
|
+
|
|
299
|
+
def location: () -> Location[untyped, untyped]?
|
|
300
|
+
|
|
301
|
+
def self.check!: (type_name: TypeName, env: Environment, member: member) -> void
|
|
302
|
+
|
|
303
|
+
def member_name: (member) -> TypeName
|
|
304
|
+
|
|
305
|
+
def mixin_name: () -> String
|
|
306
|
+
end
|
|
307
|
+
|
|
308
|
+
# InheritModuleError is raised if a class definition inherits a module (not a class)
|
|
309
|
+
#
|
|
310
|
+
class InheritModuleError < DefinitionError
|
|
311
|
+
type super_class = AST::Declarations::Class::Super | AST::Ruby::Declarations::ClassDecl::SuperClass
|
|
312
|
+
|
|
313
|
+
include DetailedMessageable
|
|
314
|
+
|
|
315
|
+
attr_reader super_decl: super_class
|
|
316
|
+
|
|
317
|
+
def initialize: (super_class) -> void
|
|
318
|
+
|
|
319
|
+
def location: () -> Location[untyped, untyped]?
|
|
320
|
+
|
|
321
|
+
# Confirms if `super` inherits specifies a class
|
|
322
|
+
#
|
|
323
|
+
# Automatically normalize the name of super.
|
|
324
|
+
#
|
|
325
|
+
def self.check!: (super_class, env: Environment) -> void
|
|
326
|
+
end
|
|
327
|
+
|
|
328
|
+
class RecursiveTypeAliasError < BaseError
|
|
329
|
+
include DetailedMessageable
|
|
330
|
+
|
|
331
|
+
attr_reader alias_names: Array[TypeName]
|
|
332
|
+
attr_reader location: Location[untyped, untyped]?
|
|
333
|
+
|
|
334
|
+
def initialize: (alias_names: Array[TypeName], location: Location[untyped, untyped]?) -> void
|
|
335
|
+
|
|
336
|
+
def name: () -> String
|
|
337
|
+
end
|
|
338
|
+
|
|
339
|
+
class NonregularTypeAliasError < BaseError
|
|
340
|
+
include DetailedMessageable
|
|
341
|
+
|
|
342
|
+
# Diagnostic reported from `TypeAliasRegularity`.
|
|
343
|
+
attr_reader diagnostic: TypeAliasRegularity::Diagnostic
|
|
344
|
+
|
|
345
|
+
# Location of the definition.
|
|
346
|
+
attr_reader location: Location[untyped, untyped]?
|
|
347
|
+
|
|
348
|
+
def initialize: (diagnostic: TypeAliasRegularity::Diagnostic, location: Location[untyped, untyped]?) -> void
|
|
349
|
+
end
|
|
350
|
+
|
|
351
|
+
class CyclicTypeParameterBound < BaseError
|
|
352
|
+
include DetailedMessageable
|
|
353
|
+
|
|
354
|
+
attr_reader location: Location[untyped, untyped]?
|
|
355
|
+
|
|
356
|
+
# Array of parameters which contains cyclic dependencies.
|
|
357
|
+
attr_reader params: Array[AST::TypeParam]
|
|
358
|
+
|
|
359
|
+
# Type name
|
|
360
|
+
attr_reader type_name: TypeName
|
|
361
|
+
|
|
362
|
+
# Method name
|
|
363
|
+
attr_reader method_name: Symbol?
|
|
364
|
+
|
|
365
|
+
def initialize: (type_name: TypeName, method_name: Symbol?, params: Array[AST::TypeParam], location: Location[untyped, untyped]?) -> void
|
|
366
|
+
end
|
|
367
|
+
|
|
368
|
+
# A module/class alias declaration has inconsistent right-hand-side
|
|
369
|
+
#
|
|
370
|
+
# ```rbs
|
|
371
|
+
# module Foo = Object # Error
|
|
372
|
+
# class Bar = Kernel # Error
|
|
373
|
+
# ```
|
|
374
|
+
#
|
|
375
|
+
class InconsistentClassModuleAliasError < BaseError
|
|
376
|
+
include DetailedMessageable
|
|
377
|
+
|
|
378
|
+
attr_reader alias_entry: Environment::ModuleAliasEntry | Environment::ClassAliasEntry
|
|
379
|
+
|
|
380
|
+
def initialize: (Environment::ModuleAliasEntry | Environment::ClassAliasEntry) -> void
|
|
381
|
+
|
|
382
|
+
def location: () -> AST::Declarations::AliasDecl::loc?
|
|
383
|
+
end
|
|
384
|
+
|
|
385
|
+
# A module/class alias declaration is cyclic
|
|
386
|
+
#
|
|
387
|
+
class CyclicClassAliasDefinitionError < BaseError
|
|
388
|
+
include DetailedMessageable
|
|
389
|
+
|
|
390
|
+
attr_reader alias_entry: Environment::ModuleAliasEntry | Environment::ClassAliasEntry
|
|
391
|
+
|
|
392
|
+
def initialize: (Environment::ModuleAliasEntry | Environment::ClassAliasEntry) -> void
|
|
393
|
+
|
|
394
|
+
def location: () -> AST::Declarations::AliasDecl::loc?
|
|
395
|
+
end
|
|
396
|
+
|
|
397
|
+
class TypeParamDefaultReferenceError < BaseError
|
|
398
|
+
include DetailedMessageable
|
|
399
|
+
|
|
400
|
+
attr_reader type_param: AST::TypeParam
|
|
401
|
+
|
|
402
|
+
def initialize: (AST::TypeParam, location: Location[untyped, untyped]?) -> void
|
|
403
|
+
|
|
404
|
+
attr_reader location: Location[untyped, untyped]?
|
|
405
|
+
|
|
406
|
+
def self.check!: (Array[AST::TypeParam]) -> void
|
|
407
|
+
end
|
|
408
|
+
end
|
data/sig/factory.rbs
ADDED
data/sig/file_finder.rbs
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
module RBS
|
|
2
|
+
module FileFinder
|
|
3
|
+
# Enumerate RBS files under path
|
|
4
|
+
#
|
|
5
|
+
# When `path` is a file, it yields the path.
|
|
6
|
+
#
|
|
7
|
+
# ```rb
|
|
8
|
+
# FileFinder.each_file(Pathname("foo.rbs")) {} # => yields `foo.rbs`
|
|
9
|
+
# ```
|
|
10
|
+
#
|
|
11
|
+
# When `path` is a directory, it yields all `.rbs` files under the directory, recursively.
|
|
12
|
+
#
|
|
13
|
+
# * Skips files under directory starting with `_`, if `skip_hidden` is `true`
|
|
14
|
+
# * Yields files under directory starting with `_` even if `skip_hidden` is true, when the `_` directory is given explicitly, and `immediate:` is `true`
|
|
15
|
+
#
|
|
16
|
+
# ```rb
|
|
17
|
+
# FileFinder.each_file(Pathname("sig"), skip_hidden: false) {} # => yields all `.rbs` files under `sig`
|
|
18
|
+
# FileFinder.each_file(Pathname("sig"), skip_hidden: true) {} # => yields all `.rbs` files under `sig`, skips `_` directories
|
|
19
|
+
#
|
|
20
|
+
# FileFinder.each_file(Pathname("_hidden"), skip_hidden: true) {} # => yields all `.rbs` files under `_hidden`, skips other `_` directories
|
|
21
|
+
# ```
|
|
22
|
+
#
|
|
23
|
+
# `immediate` keyword is unused and left for API compatibility.
|
|
24
|
+
#
|
|
25
|
+
def self?.each_file: (Pathname path, ?immediate: top, skip_hidden: boolish) { (Pathname) -> void } -> void
|
|
26
|
+
| (Pathname path, ?immediate: top, skip_hidden: boolish) -> Enumerator[Pathname, void]
|
|
27
|
+
end
|
|
28
|
+
end
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
use RBS::AST::Ruby::CommentBlock
|
|
2
|
+
|
|
3
|
+
module RBS
|
|
4
|
+
class InlineParser
|
|
5
|
+
# CommentAssociation manages the association between `Prism::Node` and `CommentBlock`
|
|
6
|
+
#
|
|
7
|
+
class CommentAssociation
|
|
8
|
+
attr_reader blocks: Array[CommentBlock]
|
|
9
|
+
|
|
10
|
+
attr_reader start_line_map: Hash[Integer, CommentBlock]
|
|
11
|
+
|
|
12
|
+
attr_reader end_line_map: Hash[Integer, CommentBlock]
|
|
13
|
+
|
|
14
|
+
# CommentBlocks that are already associated to a node, which cannot be associated to another node again
|
|
15
|
+
#
|
|
16
|
+
attr_reader associated_blocks: Set[CommentBlock]
|
|
17
|
+
|
|
18
|
+
def self.build: (Buffer, Prism::Result) -> instance
|
|
19
|
+
|
|
20
|
+
def initialize: (Array[CommentBlock]) -> void
|
|
21
|
+
|
|
22
|
+
class Reference
|
|
23
|
+
attr_reader block: CommentBlock
|
|
24
|
+
|
|
25
|
+
@associated_blocks: Set[CommentBlock]
|
|
26
|
+
|
|
27
|
+
def initialize: (CommentBlock, Set[CommentBlock]) -> void
|
|
28
|
+
|
|
29
|
+
def associate!: () -> self
|
|
30
|
+
|
|
31
|
+
def associated?: () -> bool
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
# Returns an unassociated CommentBlock that can be associated to given node
|
|
35
|
+
#
|
|
36
|
+
# Automatically updates association status.
|
|
37
|
+
#
|
|
38
|
+
def leading_block!: (Prism::Node) -> CommentBlock?
|
|
39
|
+
|
|
40
|
+
# Returns a Reference that is associated to given node
|
|
41
|
+
#
|
|
42
|
+
# Updates association explicitly through the reference.
|
|
43
|
+
#
|
|
44
|
+
def leading_block: (Prism::Node) -> Reference?
|
|
45
|
+
|
|
46
|
+
# Returns a CommentBlock that is associated to given node, or by its location
|
|
47
|
+
#
|
|
48
|
+
# Update association status.
|
|
49
|
+
#
|
|
50
|
+
def trailing_block!: (Prism::Node | Prism::Location) -> CommentBlock?
|
|
51
|
+
|
|
52
|
+
# Returns a Reference that is associated to given node, or by its location
|
|
53
|
+
#
|
|
54
|
+
# Updates association explicitly through the reference.
|
|
55
|
+
#
|
|
56
|
+
def trailing_block: (Prism::Node | Prism::Location) -> Reference?
|
|
57
|
+
|
|
58
|
+
# Yields leading CommentBlocks that is enclosed in the given node
|
|
59
|
+
#
|
|
60
|
+
# Note that `enclosed_blocks` works only after all of the *leading* blocks inside the node is associated.
|
|
61
|
+
#
|
|
62
|
+
# Update association status.
|
|
63
|
+
#
|
|
64
|
+
def each_enclosed_block: (Prism::Node) { (CommentBlock) -> void } -> void
|
|
65
|
+
| (Prism::Node) -> Enumerator[CommentBlock]
|
|
66
|
+
|
|
67
|
+
def each_unassociated_block: () { (CommentBlock) -> void } -> void
|
|
68
|
+
| () -> Enumerator[CommentBlock]
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
end
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
use RBS::AST::Ruby::Declarations
|
|
2
|
+
|
|
3
|
+
module RBS
|
|
4
|
+
class InlineParser
|
|
5
|
+
class Result
|
|
6
|
+
attr_reader buffer: Buffer
|
|
7
|
+
attr_reader prism_result: Prism::ParseResult
|
|
8
|
+
attr_reader declarations: Array[AST::Ruby::Declarations::t]
|
|
9
|
+
attr_reader diagnostics: Array[Diagnostic::t]
|
|
10
|
+
|
|
11
|
+
def initialize: (Buffer, Prism::ParseResult) -> void
|
|
12
|
+
|
|
13
|
+
def type_fingerprint: () -> untyped
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
module Diagnostic
|
|
17
|
+
class Base
|
|
18
|
+
attr_reader message: String
|
|
19
|
+
|
|
20
|
+
attr_reader location: Location
|
|
21
|
+
|
|
22
|
+
def initialize: (Location, String) -> void
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
class NotImplementedYet < Base
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
class NonConstantClassName < Base
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
class NonConstantModuleName < Base
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
class NonConstantSuperClassName < Base
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
class TopLevelMethodDefinition < Base
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
class TopLevelAttributeDefinition < Base
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
class UnusedInlineAnnotation < Base
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
class AnnotationSyntaxError < Base
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
class MixinMultipleArguments < Base
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
class MixinNonConstantModule < Base
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
class AttributeNonSymbolName < Base
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
class NonConstantConstantDeclaration < Base
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
class ClassModuleAliasDeclarationMissingTypeName < Base
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
type t = NotImplementedYet
|
|
65
|
+
| NonConstantClassName | NonConstantModuleName | NonConstantSuperClassName
|
|
66
|
+
| TopLevelMethodDefinition | TopLevelAttributeDefinition
|
|
67
|
+
| UnusedInlineAnnotation | AnnotationSyntaxError
|
|
68
|
+
| MixinMultipleArguments | MixinNonConstantModule
|
|
69
|
+
| AttributeNonSymbolName
|
|
70
|
+
| NonConstantConstantDeclaration
|
|
71
|
+
| ClassModuleAliasDeclarationMissingTypeName
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
def self.parse: (Buffer, Prism::ParseResult) -> Result
|
|
75
|
+
|
|
76
|
+
class Parser < Prism::Visitor
|
|
77
|
+
type module_context = Declarations::ClassDecl | Declarations::ModuleDecl
|
|
78
|
+
|
|
79
|
+
include AST::Ruby::Helpers::ConstantHelper
|
|
80
|
+
|
|
81
|
+
include AST::Ruby::Helpers::LocationHelper
|
|
82
|
+
|
|
83
|
+
attr_reader comments: CommentAssociation
|
|
84
|
+
|
|
85
|
+
attr_reader result: Result
|
|
86
|
+
|
|
87
|
+
attr_reader module_nesting: Array[module_context]
|
|
88
|
+
|
|
89
|
+
def initialize: (Result) -> void
|
|
90
|
+
|
|
91
|
+
def buffer: () -> Buffer
|
|
92
|
+
|
|
93
|
+
%a{pure} def current_module: () -> module_context?
|
|
94
|
+
|
|
95
|
+
%a{pure} def current_module!: () -> module_context
|
|
96
|
+
|
|
97
|
+
def diagnostics: () -> Array[Diagnostic::t]
|
|
98
|
+
|
|
99
|
+
def push_module_nesting: [T] (module_context) { () -> T } -> T
|
|
100
|
+
|
|
101
|
+
# Returns `true` if the node is a comment block including `@rbs skip` annotation
|
|
102
|
+
#
|
|
103
|
+
# Doesn't update the `association` flag if returning `false`.
|
|
104
|
+
#
|
|
105
|
+
def skip_node?: (Prism::Node) -> bool
|
|
106
|
+
|
|
107
|
+
def insert_declaration: (module_context) -> void
|
|
108
|
+
|
|
109
|
+
def report_unused_annotation: (*AST::Ruby::Annotations::t | nil | AST::Ruby::CommentBlock::AnnotationSyntaxError) -> void
|
|
110
|
+
|
|
111
|
+
def report_unused_block: (AST::Ruby::CommentBlock) -> void
|
|
112
|
+
|
|
113
|
+
def visit_class_or_module_body: (module_context, Prism::ClassNode | Prism::ModuleNode) -> void
|
|
114
|
+
|
|
115
|
+
private
|
|
116
|
+
|
|
117
|
+
def parse_mixin_call: (Prism::CallNode) -> void
|
|
118
|
+
|
|
119
|
+
def parse_attribute_call: (Prism::CallNode) -> void
|
|
120
|
+
|
|
121
|
+
def parse_constant_declaration: (Prism::ConstantWriteNode | Prism::ConstantPathWriteNode) -> void
|
|
122
|
+
|
|
123
|
+
def parse_super_class: (Prism::node, Prism::Location) -> Declarations::ClassDecl::SuperClass?
|
|
124
|
+
end
|
|
125
|
+
end
|
|
126
|
+
end
|