rbs 2.8.4 → 3.8.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/dependabot.yml +12 -4
- data/.github/workflows/comments.yml +11 -11
- data/.github/workflows/dependabot.yml +30 -0
- data/.github/workflows/ruby.yml +40 -49
- data/.github/workflows/typecheck.yml +36 -0
- data/.github/workflows/windows.yml +28 -0
- data/.gitignore +1 -0
- data/.rubocop.yml +42 -2
- data/CHANGELOG.md +845 -1
- data/README.md +64 -4
- data/Rakefile +198 -18
- data/Steepfile +11 -11
- data/config.yml +311 -0
- data/core/array.rbs +2189 -1914
- data/core/basic_object.rbs +59 -84
- data/core/binding.rbs +7 -69
- data/core/builtin.rbs +210 -11
- data/core/class.rbs +37 -0
- data/core/comparable.rbs +23 -25
- data/core/complex.rbs +449 -227
- data/core/constants.rbs +29 -21
- data/core/data.rbs +415 -0
- data/core/dir.rbs +698 -415
- data/core/encoding.rbs +468 -843
- data/core/enumerable.rbs +495 -455
- data/core/enumerator/product.rbs +92 -0
- data/core/enumerator.rbs +106 -9
- data/core/env.rbs +1 -1
- data/core/errno.rbs +506 -605
- data/core/errors.rbs +15 -17
- data/core/exception.rbs +361 -145
- data/core/false_class.rbs +39 -26
- data/core/fiber.rbs +121 -14
- data/core/file.rbs +1262 -320
- data/core/file_test.rbs +62 -45
- data/core/float.rbs +187 -208
- data/core/gc.rbs +446 -196
- data/core/global_variables.rbs +29 -29
- data/core/hash.rbs +242 -349
- data/core/integer.rbs +246 -308
- data/core/io/buffer.rbs +373 -122
- data/core/io/wait.rbs +29 -17
- data/core/io.rbs +1881 -1518
- data/core/kernel.rbs +2116 -1538
- data/core/marshal.rbs +24 -14
- data/core/match_data.rbs +413 -166
- data/core/math.rbs +531 -291
- data/core/method.rbs +101 -32
- data/core/module.rbs +228 -64
- data/core/nil_class.rbs +106 -47
- data/core/numeric.rbs +206 -292
- data/core/object.rbs +73 -1168
- data/core/object_space/weak_key_map.rbs +166 -0
- data/core/object_space.rbs +5 -3
- data/core/proc.rbs +280 -39
- data/core/process.rbs +1318 -658
- data/core/ractor.rbs +200 -134
- data/core/random.rbs +21 -4
- data/core/range.rbs +309 -153
- data/core/rational.rbs +4 -12
- data/core/rb_config.rbs +64 -43
- data/core/rbs/unnamed/argf.rbs +411 -147
- data/core/rbs/unnamed/env_class.rbs +137 -253
- data/core/rbs/unnamed/random.rbs +49 -26
- data/core/refinement.rbs +16 -1
- data/core/regexp.rbs +1568 -862
- data/core/ruby_vm.rbs +719 -7
- data/core/rubygems/config_file.rbs +3 -0
- data/core/rubygems/errors.rbs +69 -6
- data/core/rubygems/rubygems.rbs +71 -17
- data/core/rubygems/version.rbs +11 -7
- data/{stdlib/set/0 → core}/set.rbs +80 -91
- data/core/signal.rbs +14 -8
- data/core/string.rbs +1732 -1607
- data/core/struct.rbs +467 -95
- data/core/symbol.rbs +215 -245
- data/core/thread.rbs +133 -89
- data/core/thread_group.rbs +9 -9
- data/core/time.rbs +1141 -841
- data/core/trace_point.rbs +181 -121
- data/core/true_class.rbs +58 -32
- data/core/unbound_method.rbs +103 -30
- data/core/warning.rbs +50 -5
- data/docs/CONTRIBUTING.md +1 -1
- data/docs/architecture.md +110 -0
- data/docs/collection.md +59 -5
- data/docs/data_and_struct.md +86 -0
- data/docs/gem.md +57 -0
- data/docs/rbs_by_example.md +16 -35
- data/docs/repo.md +1 -1
- data/docs/sigs.md +7 -7
- data/docs/stdlib.md +63 -5
- data/docs/syntax.md +255 -61
- data/docs/tools.md +1 -0
- data/ext/rbs_extension/extconf.rb +10 -0
- data/ext/rbs_extension/lexer.c +1741 -1548
- data/ext/rbs_extension/lexer.h +11 -1
- data/ext/rbs_extension/lexer.re +12 -6
- data/ext/rbs_extension/lexstate.c +26 -3
- data/ext/rbs_extension/location.c +119 -111
- data/ext/rbs_extension/location.h +32 -7
- data/ext/rbs_extension/main.c +3 -0
- data/ext/rbs_extension/parser.c +883 -481
- data/ext/rbs_extension/parserstate.c +65 -25
- data/ext/rbs_extension/parserstate.h +13 -3
- data/ext/rbs_extension/rbs_extension.h +1 -10
- data/ext/rbs_extension/unescape.c +7 -47
- data/goodcheck.yml +2 -2
- data/{ext/rbs_extension → include/rbs}/constants.h +26 -15
- data/include/rbs/ruby_objs.h +72 -0
- data/include/rbs.h +7 -0
- data/lib/rbs/annotate/annotations.rb +3 -3
- data/lib/rbs/annotate/formatter.rb +13 -3
- data/lib/rbs/annotate/rdoc_annotator.rb +1 -1
- data/lib/rbs/annotate/rdoc_source.rb +12 -3
- data/lib/rbs/ast/declarations.rb +85 -2
- data/lib/rbs/ast/directives.rb +39 -0
- data/lib/rbs/ast/members.rb +49 -15
- data/lib/rbs/ast/type_param.rb +104 -15
- data/lib/rbs/ast/visitor.rb +137 -0
- data/lib/rbs/buffer.rb +5 -0
- data/lib/rbs/cli/colored_io.rb +48 -0
- data/lib/rbs/cli/diff.rb +83 -0
- data/lib/rbs/cli/validate.rb +356 -0
- data/lib/rbs/cli.rb +253 -143
- data/lib/rbs/collection/cleaner.rb +8 -1
- data/lib/rbs/collection/config/lockfile.rb +92 -0
- data/lib/rbs/collection/config/lockfile_generator.rb +154 -65
- data/lib/rbs/collection/config.rb +19 -46
- data/lib/rbs/collection/installer.rb +12 -13
- data/lib/rbs/collection/sources/base.rb +2 -2
- data/lib/rbs/collection/sources/git.rb +146 -69
- data/lib/rbs/collection/sources/local.rb +81 -0
- data/lib/rbs/collection/sources/rubygems.rb +10 -12
- data/lib/rbs/collection/sources/stdlib.rb +14 -13
- data/lib/rbs/collection/sources.rb +15 -2
- data/lib/rbs/collection.rb +2 -1
- data/lib/rbs/definition.rb +13 -16
- data/lib/rbs/definition_builder/ancestor_builder.rb +100 -24
- data/lib/rbs/definition_builder/method_builder.rb +4 -4
- data/lib/rbs/definition_builder.rb +489 -584
- data/lib/rbs/diff.rb +125 -0
- data/lib/rbs/environment/use_map.rb +77 -0
- data/lib/rbs/environment.rb +406 -105
- data/lib/rbs/environment_loader.rb +48 -44
- data/lib/rbs/environment_walker.rb +1 -1
- data/lib/rbs/errors.rb +175 -56
- data/lib/rbs/file_finder.rb +28 -0
- data/lib/rbs/location_aux.rb +8 -7
- data/lib/rbs/locator.rb +37 -15
- data/lib/rbs/method_type.rb +23 -0
- data/lib/rbs/namespace.rb +1 -0
- data/lib/rbs/parser/lex_result.rb +15 -0
- data/lib/rbs/parser/token.rb +23 -0
- data/lib/rbs/parser_aux.rb +22 -13
- data/lib/rbs/prototype/helpers.rb +48 -22
- data/lib/rbs/prototype/node_usage.rb +99 -0
- data/lib/rbs/prototype/rb.rb +125 -31
- data/lib/rbs/prototype/rbi.rb +49 -36
- 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 +273 -159
- data/lib/rbs/resolver/constant_resolver.rb +24 -8
- data/lib/rbs/resolver/type_name_resolver.rb +41 -7
- data/lib/rbs/sorter.rb +153 -123
- data/lib/rbs/substitution.rb +19 -0
- data/lib/rbs/subtractor.rb +201 -0
- data/lib/rbs/test/errors.rb +24 -11
- data/lib/rbs/test/guaranteed.rb +30 -0
- data/lib/rbs/test/hook.rb +45 -40
- data/lib/rbs/test/setup.rb +1 -1
- data/lib/rbs/test/tester.rb +1 -1
- data/lib/rbs/test/type_check.rb +120 -23
- data/lib/rbs/test.rb +6 -3
- data/lib/rbs/type_alias_dependency.rb +13 -3
- data/lib/rbs/type_alias_regularity.rb +21 -14
- data/lib/rbs/type_name.rb +18 -13
- data/lib/rbs/types.rb +352 -18
- data/lib/rbs/unit_test/convertibles.rb +176 -0
- data/lib/rbs/unit_test/spy.rb +136 -0
- data/lib/rbs/unit_test/type_assertions.rb +341 -0
- data/lib/rbs/unit_test/with_aliases.rb +143 -0
- data/lib/rbs/unit_test.rb +6 -0
- data/lib/rbs/validator.rb +55 -30
- data/lib/rbs/variance_calculator.rb +26 -23
- data/lib/rbs/vendorer.rb +3 -3
- data/lib/rbs/version.rb +1 -1
- data/lib/rbs/writer.rb +69 -22
- data/lib/rbs.rb +7 -2
- data/lib/rdoc/discover.rb +1 -1
- data/lib/rdoc_plugin/parser.rb +5 -5
- data/rbs.gemspec +12 -2
- data/schema/decls.json +1 -1
- data/schema/members.json +15 -10
- data/sig/ancestor_builder.rbs +4 -0
- data/sig/ancestor_graph.rbs +22 -2
- data/sig/annotate/formatter.rbs +2 -2
- data/sig/annotate/rdoc_annotater.rbs +1 -1
- data/sig/cli/colored_io.rbs +15 -0
- data/sig/cli/diff.rbs +21 -0
- data/sig/cli/validate.rbs +43 -0
- data/sig/cli.rbs +4 -0
- data/sig/collection/config/lockfile.rbs +74 -0
- data/sig/collection/config/lockfile_generator.rbs +66 -0
- data/sig/collection/config.rbs +5 -48
- data/sig/collection/installer.rbs +1 -1
- data/sig/collection/sources.rbs +105 -33
- data/sig/constant.rbs +1 -1
- data/sig/declarations.rbs +42 -3
- data/sig/definition.rbs +26 -10
- data/sig/definition_builder.rbs +103 -81
- data/sig/diff.rbs +28 -0
- data/sig/directives.rbs +61 -0
- data/sig/environment.rbs +175 -29
- data/sig/environment_loader.rbs +20 -18
- data/sig/errors.rbs +123 -2
- data/sig/file_finder.rbs +28 -0
- data/sig/location.rbs +0 -3
- data/sig/locator.rbs +14 -2
- data/sig/manifest.yaml +0 -1
- data/sig/members.rbs +32 -9
- data/sig/method_types.rbs +10 -4
- data/sig/namespace.rbs +2 -3
- data/sig/parser.rbs +55 -16
- data/sig/prototype/helpers.rbs +4 -0
- data/sig/prototype/node_usage.rbs +20 -0
- data/sig/prototype/rb.rbs +10 -2
- data/sig/prototype/rbi.rbs +2 -0
- data/sig/prototype/runtime.rbs +182 -0
- data/sig/rbs.rbs +1 -1
- data/sig/rdoc/rbs.rbs +4 -0
- data/sig/repository.rbs +7 -5
- data/sig/resolver/constant_resolver.rbs +3 -4
- data/sig/resolver/context.rbs +1 -1
- data/sig/resolver/type_name_resolver.rbs +5 -1
- data/sig/shims/bundler.rbs +38 -0
- data/sig/shims/rubygems.rbs +19 -0
- data/sig/sorter.rbs +23 -5
- data/sig/substitution.rbs +6 -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 +31 -0
- data/sig/type_alias_regularity.rbs +12 -6
- data/sig/type_param.rbs +45 -9
- data/sig/typename.rbs +8 -5
- data/sig/types.rbs +119 -12
- data/sig/unit_test/convertibles.rbs +154 -0
- data/sig/unit_test/spy.rbs +28 -0
- data/sig/unit_test/type_assertions.rbs +194 -0
- data/sig/unit_test/with_aliases.rbs +136 -0
- data/sig/use_map.rbs +35 -0
- data/sig/validator.rbs +12 -5
- data/sig/variance_calculator.rbs +3 -1
- data/sig/vendorer.rbs +1 -1
- data/sig/visitor.rbs +47 -0
- data/sig/writer.rbs +6 -2
- data/src/constants.c +153 -0
- data/src/ruby_objs.c +793 -0
- data/stdlib/base64/0/base64.rbs +298 -45
- data/stdlib/benchmark/0/benchmark.rbs +12 -3
- data/stdlib/bigdecimal/0/big_decimal.rbs +62 -198
- data/stdlib/cgi/0/core.rbs +68 -15
- data/stdlib/cgi/0/manifest.yaml +1 -0
- data/stdlib/coverage/0/coverage.rbs +50 -11
- data/stdlib/csv/0/csv.rbs +90 -119
- data/stdlib/csv/0/manifest.yaml +1 -0
- data/stdlib/date/0/date.rbs +806 -735
- data/stdlib/date/0/date_time.rbs +70 -211
- data/stdlib/dbm/0/dbm.rbs +0 -2
- data/stdlib/delegate/0/delegator.rbs +184 -0
- data/stdlib/delegate/0/kernel.rbs +47 -0
- data/stdlib/delegate/0/simple_delegator.rbs +96 -0
- data/stdlib/did_you_mean/0/did_you_mean.rbs +3 -8
- data/stdlib/digest/0/digest.rbs +48 -35
- data/stdlib/erb/0/erb.rbs +15 -39
- data/stdlib/etc/0/etc.rbs +174 -54
- data/stdlib/fileutils/0/fileutils.rbs +1234 -385
- data/stdlib/forwardable/0/forwardable.rbs +4 -4
- data/stdlib/io-console/0/io-console.rbs +82 -17
- data/stdlib/ipaddr/0/ipaddr.rbs +11 -6
- data/stdlib/json/0/json.rbs +434 -151
- data/stdlib/kconv/0/kconv.rbs +166 -0
- data/stdlib/logger/0/formatter.rbs +0 -2
- data/stdlib/logger/0/log_device.rbs +1 -3
- data/stdlib/logger/0/logger.rbs +465 -328
- data/stdlib/minitest/0/kernel.rbs +2 -2
- data/stdlib/minitest/0/minitest/abstract_reporter.rbs +4 -1
- data/stdlib/minitest/0/minitest/assertion.rbs +1 -0
- data/stdlib/minitest/0/minitest/assertions.rbs +58 -13
- data/stdlib/minitest/0/minitest/backtrace_filter.rbs +7 -0
- data/stdlib/minitest/0/minitest/bench_spec.rbs +8 -8
- data/stdlib/minitest/0/minitest/benchmark.rbs +17 -16
- 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/mock.rbs +9 -5
- data/stdlib/minitest/0/minitest/parallel/executor.rbs +4 -0
- data/stdlib/minitest/0/minitest/parallel/test/class_methods.rbs +0 -1
- data/stdlib/minitest/0/minitest/pride_io.rbs +8 -0
- data/stdlib/minitest/0/minitest/pride_lol.rbs +2 -0
- data/stdlib/minitest/0/minitest/progress_reporter.rbs +1 -1
- data/stdlib/minitest/0/minitest/reportable.rbs +2 -0
- data/stdlib/minitest/0/minitest/runnable.rbs +33 -1
- data/stdlib/minitest/0/minitest/spec/dsl/instance_methods.rbs +1 -1
- data/stdlib/minitest/0/minitest/spec/dsl.rbs +10 -6
- data/stdlib/minitest/0/minitest/spec.rbs +1 -1
- data/stdlib/minitest/0/minitest/statistics_reporter.rbs +5 -0
- data/stdlib/minitest/0/minitest/summary_reporter.rbs +0 -7
- data/stdlib/minitest/0/minitest/test/lifecycle_hooks.rbs +7 -7
- data/stdlib/minitest/0/minitest/test.rbs +7 -14
- data/stdlib/minitest/0/minitest/unexpected_error.rbs +2 -0
- data/stdlib/minitest/0/minitest/unexpected_warning.rbs +6 -0
- data/stdlib/minitest/0/minitest/unit.rbs +1 -2
- data/stdlib/minitest/0/minitest.rbs +41 -892
- data/stdlib/monitor/0/monitor.rbs +91 -10
- data/stdlib/mutex_m/0/mutex_m.rbs +0 -2
- data/stdlib/net-http/0/manifest.yaml +1 -1
- data/stdlib/net-http/0/net-http.rbs +3858 -964
- 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 +35 -5
- data/stdlib/objspace/0/objspace.rbs +40 -18
- data/stdlib/observable/0/observable.rbs +217 -0
- data/stdlib/open-uri/0/manifest.yaml +4 -0
- data/stdlib/open-uri/0/open-uri.rbs +393 -0
- data/stdlib/open3/0/open3.rbs +147 -0
- data/stdlib/openssl/0/manifest.yaml +1 -0
- data/stdlib/openssl/0/openssl.rbs +681 -316
- data/stdlib/optparse/0/optparse.rbs +100 -65
- data/stdlib/pathname/0/pathname.rbs +24 -15
- data/stdlib/pp/0/manifest.yaml +2 -0
- data/stdlib/pp/0/pp.rbs +300 -0
- data/stdlib/prettyprint/0/prettyprint.rbs +2 -6
- data/stdlib/pstore/0/pstore.rbs +370 -156
- data/stdlib/psych/0/core_ext.rbs +12 -0
- data/stdlib/{yaml → psych}/0/dbm.rbs +3 -3
- data/stdlib/psych/0/manifest.yaml +3 -0
- data/stdlib/psych/0/psych.rbs +402 -0
- data/stdlib/{yaml → psych}/0/store.rbs +2 -2
- data/stdlib/pty/0/pty.rbs +63 -11
- data/stdlib/rdoc/0/code_object.rbs +51 -0
- data/stdlib/rdoc/0/comment.rbs +59 -0
- data/stdlib/rdoc/0/context.rbs +153 -0
- data/stdlib/rdoc/0/markup.rbs +117 -0
- data/stdlib/rdoc/0/parser.rbs +56 -0
- data/stdlib/rdoc/0/rdoc.rbs +13 -380
- 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/resolv.rbs +16 -79
- data/stdlib/ripper/0/ripper.rbs +1648 -0
- data/stdlib/securerandom/0/securerandom.rbs +7 -2
- data/stdlib/shellwords/0/shellwords.rbs +11 -12
- data/stdlib/singleton/0/singleton.rbs +0 -3
- data/stdlib/socket/0/addrinfo.rbs +13 -18
- data/stdlib/socket/0/basic_socket.rbs +5 -10
- data/stdlib/socket/0/ip_socket.rbs +0 -2
- data/stdlib/socket/0/socket.rbs +77 -46
- data/stdlib/socket/0/tcp_server.rbs +0 -5
- data/stdlib/socket/0/tcp_socket.rbs +36 -3
- data/stdlib/socket/0/udp_socket.rbs +4 -5
- data/stdlib/socket/0/unix_server.rbs +0 -5
- data/stdlib/socket/0/unix_socket.rbs +2 -4
- data/{core/string_io.rbs → stdlib/stringio/0/stringio.rbs} +188 -107
- data/stdlib/strscan/0/string_scanner.rbs +1269 -425
- data/stdlib/tempfile/0/tempfile.rbs +224 -61
- data/stdlib/time/0/time.rbs +48 -35
- data/stdlib/timeout/0/timeout.rbs +17 -8
- data/stdlib/tmpdir/0/tmpdir.rbs +10 -3
- data/stdlib/tsort/0/tsort.rbs +0 -4
- data/stdlib/uri/0/common.rbs +271 -144
- data/stdlib/uri/0/file.rbs +5 -0
- data/stdlib/uri/0/ftp.rbs +1 -1
- data/stdlib/uri/0/generic.rbs +26 -22
- data/stdlib/uri/0/http.rbs +4 -4
- data/stdlib/uri/0/ldap.rbs +1 -1
- data/stdlib/uri/0/mailto.rbs +84 -0
- data/stdlib/uri/0/rfc2396_parser.rbs +3 -0
- data/stdlib/yaml/0/manifest.yaml +1 -2
- data/stdlib/yaml/0/yaml.rbs +1 -199
- data/stdlib/zlib/0/buf_error.rbs +10 -0
- data/stdlib/zlib/0/data_error.rbs +10 -0
- data/stdlib/zlib/0/deflate.rbs +210 -0
- data/stdlib/zlib/0/error.rbs +20 -0
- data/stdlib/zlib/0/gzip_file/crc_error.rbs +12 -0
- data/stdlib/zlib/0/gzip_file/error.rbs +23 -0
- data/stdlib/zlib/0/gzip_file/length_error.rbs +12 -0
- data/stdlib/zlib/0/gzip_file/no_footer.rbs +11 -0
- data/stdlib/zlib/0/gzip_file.rbs +156 -0
- data/stdlib/zlib/0/gzip_reader.rbs +293 -0
- data/stdlib/zlib/0/gzip_writer.rbs +166 -0
- data/stdlib/zlib/0/inflate.rbs +180 -0
- data/stdlib/zlib/0/mem_error.rbs +10 -0
- data/stdlib/zlib/0/need_dict.rbs +13 -0
- data/stdlib/zlib/0/stream_end.rbs +11 -0
- data/stdlib/zlib/0/stream_error.rbs +11 -0
- data/stdlib/zlib/0/version_error.rbs +11 -0
- data/stdlib/zlib/0/zlib.rbs +1 -3
- data/stdlib/zlib/0/zstream.rbs +200 -0
- data/templates/include/rbs/constants.h.erb +20 -0
- data/templates/include/rbs/ruby_objs.h.erb +10 -0
- data/templates/src/constants.c.erb +36 -0
- data/templates/src/ruby_objs.c.erb +27 -0
- data/templates/template.rb +122 -0
- metadata +136 -36
- data/Gemfile +0 -33
- data/Gemfile.lock +0 -118
- data/core/deprecated.rbs +0 -9
- data/ext/rbs_extension/constants.c +0 -135
- data/ext/rbs_extension/ruby_objs.c +0 -525
- data/ext/rbs_extension/ruby_objs.h +0 -43
- data/lib/rbs/constant_table.rb +0 -167
- data/lib/rbs/parser_compat/lexer_error.rb +0 -6
- data/lib/rbs/parser_compat/located_value.rb +0 -7
- data/lib/rbs/parser_compat/semantics_error.rb +0 -6
- data/lib/rbs/parser_compat/syntax_error.rb +0 -6
- data/lib/rbs/test/spy.rb +0 -6
- data/lib/rbs/type_name_resolver.rb +0 -67
- data/sig/constant_table.rbs +0 -30
- data/sig/shims/abstract_syntax_tree.rbs +0 -25
- data/sig/shims/pp.rbs +0 -3
- data/sig/shims/ripper.rbs +0 -8
- data/sig/shims.rbs +0 -69
- data/sig/type_name_resolver.rbs +0 -26
- data/stdlib/minitest/0/manifest.yaml +0 -2
- data/stdlib/prime/0/integer-extension.rbs +0 -41
- data/stdlib/prime/0/manifest.yaml +0 -2
- data/stdlib/prime/0/prime.rbs +0 -372
data/core/thread.rbs
CHANGED
@@ -226,7 +226,7 @@ class Thread < Object
|
|
226
226
|
# For thread-local variables, please see #thread_variable_get and
|
227
227
|
# #thread_variable_set.
|
228
228
|
#
|
229
|
-
def []: (
|
229
|
+
def []: (interned key) -> untyped
|
230
230
|
|
231
231
|
# <!--
|
232
232
|
# rdoc-file=thread.c
|
@@ -240,7 +240,7 @@ class Thread < Object
|
|
240
240
|
# For thread-local variables, please see #thread_variable_set and
|
241
241
|
# #thread_variable_get.
|
242
242
|
#
|
243
|
-
def []=: (
|
243
|
+
def []=: (interned key, untyped value) -> untyped
|
244
244
|
|
245
245
|
# <!--
|
246
246
|
# rdoc-file=thread.c
|
@@ -382,7 +382,7 @@ class Thread < Object
|
|
382
382
|
# If you're going to subclass Thread, be sure to call super in your `initialize`
|
383
383
|
# method, otherwise a ThreadError will be raised.
|
384
384
|
#
|
385
|
-
def initialize: (*untyped) { (
|
385
|
+
def initialize: (*untyped) { (?) -> void } -> void
|
386
386
|
|
387
387
|
# <!--
|
388
388
|
# rdoc-file=thread.c
|
@@ -485,7 +485,6 @@ class Thread < Object
|
|
485
485
|
# * On Windows it is the thread identifier returned by GetThreadId().
|
486
486
|
# * On other platforms, it raises NotImplementedError.
|
487
487
|
#
|
488
|
-
#
|
489
488
|
# NOTE: If the thread is not associated yet or already deassociated with a
|
490
489
|
# native thread, it returns *nil*. If the Ruby implementation uses M:N thread
|
491
490
|
# model, the ID may change depending on the timing.
|
@@ -614,12 +613,16 @@ class Thread < Object
|
|
614
613
|
#
|
615
614
|
# `"sleep"`
|
616
615
|
# : Returned if this thread is sleeping or waiting on I/O
|
616
|
+
#
|
617
617
|
# `"run"`
|
618
618
|
# : When this thread is executing
|
619
|
+
#
|
619
620
|
# `"aborting"`
|
620
621
|
# : If this thread is aborting
|
622
|
+
#
|
621
623
|
# `false`
|
622
624
|
# : When this thread is terminated normally
|
625
|
+
#
|
623
626
|
# `nil`
|
624
627
|
# : If terminated with an exception.
|
625
628
|
#
|
@@ -676,7 +679,7 @@ class Thread < Object
|
|
676
679
|
# Note that these are not fiber local variables. Please see Thread#[] and
|
677
680
|
# Thread#thread_variable_get for more details.
|
678
681
|
#
|
679
|
-
def thread_variable?: (
|
682
|
+
def thread_variable?: (interned key) -> bool
|
680
683
|
|
681
684
|
# <!--
|
682
685
|
# rdoc-file=thread.c
|
@@ -817,6 +820,15 @@ class Thread < Object
|
|
817
820
|
#
|
818
821
|
def self.abort_on_exception=: (untyped abort_on_exception) -> untyped
|
819
822
|
|
823
|
+
# <!--
|
824
|
+
# rdoc-file=vm_backtrace.c
|
825
|
+
# - Thread.each_caller_location(...) { |loc| ... } -> nil
|
826
|
+
# -->
|
827
|
+
# Yields each frame of the current execution stack as a backtrace location
|
828
|
+
# object.
|
829
|
+
#
|
830
|
+
def self.each_caller_location: () { (Backtrace::Location) -> void } -> nil
|
831
|
+
|
820
832
|
# Wraps the block in a single, VM-global
|
821
833
|
# [Mutex\#synchronize](https://ruby-doc.org/core-2.6.3/Mutex.html#method-i-synchronize)
|
822
834
|
# , returning the value of the block. A thread executing inside the
|
@@ -864,8 +876,10 @@ class Thread < Object
|
|
864
876
|
#
|
865
877
|
# `:immediate`
|
866
878
|
# : Invoke interrupts immediately.
|
879
|
+
#
|
867
880
|
# `:on_blocking`
|
868
881
|
# : Invoke interrupts while *BlockingOperation*.
|
882
|
+
#
|
869
883
|
# `:never`
|
870
884
|
# : Never invoke all interrupts.
|
871
885
|
#
|
@@ -914,30 +928,6 @@ class Thread < Object
|
|
914
928
|
# resource allocation code. Then, the ensure block is where we can safely
|
915
929
|
# deallocate your resources.
|
916
930
|
#
|
917
|
-
# #### Guarding from Timeout::Error
|
918
|
-
#
|
919
|
-
# In the next example, we will guard from the Timeout::Error exception. This
|
920
|
-
# will help prevent from leaking resources when Timeout::Error exceptions occur
|
921
|
-
# during normal ensure clause. For this example we use the help of the standard
|
922
|
-
# library Timeout, from lib/timeout.rb
|
923
|
-
#
|
924
|
-
# require 'timeout'
|
925
|
-
# Thread.handle_interrupt(Timeout::Error => :never) {
|
926
|
-
# timeout(10){
|
927
|
-
# # Timeout::Error doesn't occur here
|
928
|
-
# Thread.handle_interrupt(Timeout::Error => :on_blocking) {
|
929
|
-
# # possible to be killed by Timeout::Error
|
930
|
-
# # while blocking operation
|
931
|
-
# }
|
932
|
-
# # Timeout::Error doesn't occur here
|
933
|
-
# }
|
934
|
-
# }
|
935
|
-
#
|
936
|
-
# In the first part of the `timeout` block, we can rely on Timeout::Error being
|
937
|
-
# ignored. Then in the `Timeout::Error => :on_blocking` block, any operation
|
938
|
-
# that will block the calling thread is susceptible to a Timeout::Error
|
939
|
-
# exception being raised.
|
940
|
-
#
|
941
931
|
# #### Stack control settings
|
942
932
|
#
|
943
933
|
# It's possible to stack multiple levels of ::handle_interrupt blocks in order
|
@@ -962,6 +952,29 @@ class Thread < Object
|
|
962
952
|
#
|
963
953
|
def self.handle_interrupt: (untyped hash) -> untyped
|
964
954
|
|
955
|
+
# <!--
|
956
|
+
# rdoc-file=thread.c
|
957
|
+
# - thr.raise
|
958
|
+
# - thr.raise(string)
|
959
|
+
# - thr.raise(exception [, string [, array]])
|
960
|
+
# -->
|
961
|
+
# Raises an exception from the given thread. The caller does not have to be
|
962
|
+
# `thr`. See Kernel#raise for more information.
|
963
|
+
#
|
964
|
+
# Thread.abort_on_exception = true
|
965
|
+
# a = Thread.new { sleep(200) }
|
966
|
+
# a.raise("Gotcha")
|
967
|
+
#
|
968
|
+
# This will produce:
|
969
|
+
#
|
970
|
+
# prog.rb:3: Gotcha (RuntimeError)
|
971
|
+
# from prog.rb:2:in `initialize'
|
972
|
+
# from prog.rb:2:in `new'
|
973
|
+
# from prog.rb:2
|
974
|
+
#
|
975
|
+
def raise: (?String message) -> nil
|
976
|
+
| (_Exception, ?_ToS message, ?Array[Thread::Backtrace::Location] | Array[String] | nil backtrace) -> nil
|
977
|
+
|
965
978
|
# <!--
|
966
979
|
# rdoc-file=thread.c
|
967
980
|
# - Thread.kill(thread) -> thread
|
@@ -1098,7 +1111,6 @@ class Thread < Object
|
|
1098
1111
|
# However, this might handle the exception much later, or not at all if the
|
1099
1112
|
# Thread is never joined due to the parent thread being blocked, etc.
|
1100
1113
|
#
|
1101
|
-
#
|
1102
1114
|
# See also ::report_on_exception=.
|
1103
1115
|
#
|
1104
1116
|
# There is also an instance level method to set this for a specific thread, see
|
@@ -1146,7 +1158,7 @@ class Thread < Object
|
|
1146
1158
|
# calling `start` in that subclass will not invoke the subclass's `initialize`
|
1147
1159
|
# method.
|
1148
1160
|
#
|
1149
|
-
def self.start: (*untyped args) { (
|
1161
|
+
def self.start: (*untyped args) { (?) -> void } -> instance
|
1150
1162
|
|
1151
1163
|
# <!--
|
1152
1164
|
# rdoc-file=thread.c
|
@@ -1173,10 +1185,10 @@ end
|
|
1173
1185
|
class Thread::Backtrace < Object
|
1174
1186
|
# <!--
|
1175
1187
|
# rdoc-file=vm_backtrace.c
|
1176
|
-
# -
|
1188
|
+
# - Thread::Backtrace::limit -> integer
|
1177
1189
|
# -->
|
1178
1190
|
# Returns maximum backtrace length set by `--backtrace-limit` command-line
|
1179
|
-
# option. The
|
1191
|
+
# option. The default is `-1` which means unlimited backtraces. If the value is
|
1180
1192
|
# zero or positive, the error backtraces, produced by Exception#full_message,
|
1181
1193
|
# are abbreviated and the extra lines are replaced by `... 3 levels... `
|
1182
1194
|
#
|
@@ -1286,9 +1298,28 @@ class Thread::Backtrace::Location
|
|
1286
1298
|
# rdoc-file=vm_backtrace.c
|
1287
1299
|
# - base_label()
|
1288
1300
|
# -->
|
1289
|
-
# Returns the base label of this frame
|
1301
|
+
# Returns the base label of this frame, which is usually equal to the label,
|
1302
|
+
# without decoration.
|
1303
|
+
#
|
1304
|
+
# Consider the following example:
|
1290
1305
|
#
|
1291
|
-
#
|
1306
|
+
# def foo
|
1307
|
+
# puts caller_locations(0).first.base_label
|
1308
|
+
#
|
1309
|
+
# 1.times do
|
1310
|
+
# puts caller_locations(0).first.base_label
|
1311
|
+
#
|
1312
|
+
# 1.times do
|
1313
|
+
# puts caller_locations(0).first.base_label
|
1314
|
+
# end
|
1315
|
+
# end
|
1316
|
+
# end
|
1317
|
+
#
|
1318
|
+
# The result of calling `foo` is this:
|
1319
|
+
#
|
1320
|
+
# foo
|
1321
|
+
# foo
|
1322
|
+
# foo
|
1292
1323
|
#
|
1293
1324
|
def base_label: () -> String?
|
1294
1325
|
|
@@ -1311,15 +1342,14 @@ class Thread::Backtrace::Location
|
|
1311
1342
|
# 1.times do
|
1312
1343
|
# puts caller_locations(0).first.label
|
1313
1344
|
# end
|
1314
|
-
#
|
1315
1345
|
# end
|
1316
1346
|
# end
|
1317
1347
|
#
|
1318
1348
|
# The result of calling `foo` is this:
|
1319
1349
|
#
|
1320
|
-
#
|
1321
|
-
#
|
1322
|
-
#
|
1350
|
+
# foo
|
1351
|
+
# block in foo
|
1352
|
+
# block (2 levels) in foo
|
1323
1353
|
#
|
1324
1354
|
def label: () -> String?
|
1325
1355
|
|
@@ -1405,7 +1435,7 @@ class Thread::ConditionVariable < Object
|
|
1405
1435
|
#
|
1406
1436
|
# Returns the slept result on `mutex`.
|
1407
1437
|
#
|
1408
|
-
def wait: (Thread::Mutex mutex, ?
|
1438
|
+
def wait: (Thread::Mutex mutex, ?Time::_Timeout? timeout) -> Integer?
|
1409
1439
|
end
|
1410
1440
|
|
1411
1441
|
# <!-- rdoc-file=thread_sync.c -->
|
@@ -1488,8 +1518,8 @@ end
|
|
1488
1518
|
# exchanged safely between multiple threads. The Thread::Queue class implements
|
1489
1519
|
# all the required locking semantics.
|
1490
1520
|
#
|
1491
|
-
# The class implements FIFO type of queue. In a FIFO
|
1492
|
-
# added are the first retrieved.
|
1521
|
+
# The class implements FIFO (first in, first out) type of queue. In a FIFO
|
1522
|
+
# queue, the first tasks added are the first retrieved.
|
1493
1523
|
#
|
1494
1524
|
# Example:
|
1495
1525
|
#
|
@@ -1497,23 +1527,23 @@ end
|
|
1497
1527
|
#
|
1498
1528
|
# producer = Thread.new do
|
1499
1529
|
# 5.times do |i|
|
1500
|
-
#
|
1501
|
-
#
|
1502
|
-
#
|
1530
|
+
# sleep rand(i) # simulate expense
|
1531
|
+
# queue << i
|
1532
|
+
# puts "#{i} produced"
|
1503
1533
|
# end
|
1504
1534
|
# end
|
1505
1535
|
#
|
1506
1536
|
# consumer = Thread.new do
|
1507
1537
|
# 5.times do |i|
|
1508
|
-
#
|
1509
|
-
#
|
1510
|
-
#
|
1538
|
+
# value = queue.pop
|
1539
|
+
# sleep rand(i/2) # simulate expense
|
1540
|
+
# puts "consumed #{value}"
|
1511
1541
|
# end
|
1512
1542
|
# end
|
1513
1543
|
#
|
1514
1544
|
# consumer.join
|
1515
1545
|
#
|
1516
|
-
class Thread::Queue < Object
|
1546
|
+
class Thread::Queue[Elem = untyped] < Object
|
1517
1547
|
# <!-- rdoc-file=thread_sync.c -->
|
1518
1548
|
# Pushes the given `object` to the queue.
|
1519
1549
|
#
|
@@ -1546,7 +1576,6 @@ class Thread::Queue < Object
|
|
1546
1576
|
# * when `empty?` is true, deq(false) will not suspend the thread and will
|
1547
1577
|
# return nil. deq(true) will raise a `ThreadError`.
|
1548
1578
|
#
|
1549
|
-
#
|
1550
1579
|
# ClosedQueueError is inherited from StopIteration, so that you can break loop
|
1551
1580
|
# block.
|
1552
1581
|
#
|
@@ -1570,12 +1599,10 @@ class Thread::Queue < Object
|
|
1570
1599
|
#
|
1571
1600
|
def closed?: () -> bool
|
1572
1601
|
|
1573
|
-
# <!--
|
1574
|
-
#
|
1575
|
-
#
|
1576
|
-
#
|
1577
|
-
# onto the queue. If `non_block` is true, the thread isn't suspended, and
|
1578
|
-
# `ThreadError` is raised.
|
1602
|
+
# <!--
|
1603
|
+
# rdoc-file=thread_sync.rb
|
1604
|
+
# - deq(non_block = false, timeout: nil)
|
1605
|
+
# -->
|
1579
1606
|
#
|
1580
1607
|
alias deq pop
|
1581
1608
|
|
@@ -1592,6 +1619,15 @@ class Thread::Queue < Object
|
|
1592
1619
|
#
|
1593
1620
|
alias enq push
|
1594
1621
|
|
1622
|
+
# <!--
|
1623
|
+
# rdoc-file=thread_sync.c
|
1624
|
+
# - freeze
|
1625
|
+
# -->
|
1626
|
+
# The queue can't be frozen, so this method raises an exception:
|
1627
|
+
# Thread::Queue.new.freeze # Raises TypeError (cannot freeze #<Thread::Queue:0x...>)
|
1628
|
+
#
|
1629
|
+
def freeze: () -> bot
|
1630
|
+
|
1595
1631
|
# <!--
|
1596
1632
|
# rdoc-file=thread_sync.c
|
1597
1633
|
# - length
|
@@ -1610,10 +1646,8 @@ class Thread::Queue < Object
|
|
1610
1646
|
def num_waiting: () -> Integer
|
1611
1647
|
|
1612
1648
|
# <!--
|
1613
|
-
# rdoc-file=thread_sync.
|
1614
|
-
# - pop(non_block=false)
|
1615
|
-
# - deq(non_block=false)
|
1616
|
-
# - shift(non_block=false)
|
1649
|
+
# rdoc-file=thread_sync.rb
|
1650
|
+
# - pop(non_block=false, timeout: nil)
|
1617
1651
|
# -->
|
1618
1652
|
# Retrieves data from the queue.
|
1619
1653
|
#
|
@@ -1621,7 +1655,10 @@ class Thread::Queue < Object
|
|
1621
1655
|
# onto the queue. If `non_block` is true, the thread isn't suspended, and
|
1622
1656
|
# `ThreadError` is raised.
|
1623
1657
|
#
|
1624
|
-
|
1658
|
+
# If `timeout` seconds have passed and no data is available `nil` is returned.
|
1659
|
+
# If `timeout` is `0` it returns immediately.
|
1660
|
+
#
|
1661
|
+
def pop: (?boolish non_block, ?timeout: _ToF?) -> Elem?
|
1625
1662
|
|
1626
1663
|
# <!--
|
1627
1664
|
# rdoc-file=thread_sync.c
|
@@ -1631,14 +1668,12 @@ class Thread::Queue < Object
|
|
1631
1668
|
# -->
|
1632
1669
|
# Pushes the given `object` to the queue.
|
1633
1670
|
#
|
1634
|
-
def push: (
|
1671
|
+
def push: (Elem obj) -> void
|
1635
1672
|
|
1636
|
-
# <!--
|
1637
|
-
#
|
1638
|
-
#
|
1639
|
-
#
|
1640
|
-
# onto the queue. If `non_block` is true, the thread isn't suspended, and
|
1641
|
-
# `ThreadError` is raised.
|
1673
|
+
# <!--
|
1674
|
+
# rdoc-file=thread_sync.rb
|
1675
|
+
# - shift(non_block = false, timeout: nil)
|
1676
|
+
# -->
|
1642
1677
|
#
|
1643
1678
|
alias shift pop
|
1644
1679
|
|
@@ -1654,25 +1689,30 @@ end
|
|
1654
1689
|
#
|
1655
1690
|
# See Thread::Queue for an example of how a Thread::SizedQueue works.
|
1656
1691
|
#
|
1657
|
-
class Thread::SizedQueue < Thread::Queue
|
1658
|
-
# <!--
|
1659
|
-
#
|
1660
|
-
#
|
1661
|
-
#
|
1662
|
-
# unless `non_block` is true. If `non_block` is true, the thread isn't
|
1663
|
-
# suspended, and `ThreadError` is raised.
|
1692
|
+
class Thread::SizedQueue[Elem = untyped] < Thread::Queue[Elem]
|
1693
|
+
# <!--
|
1694
|
+
# rdoc-file=thread_sync.rb
|
1695
|
+
# - <<(object, non_block = false, timeout: nil)
|
1696
|
+
# -->
|
1664
1697
|
#
|
1665
1698
|
alias << push
|
1666
1699
|
|
1667
|
-
# <!--
|
1668
|
-
#
|
1669
|
-
#
|
1670
|
-
#
|
1671
|
-
# unless `non_block` is true. If `non_block` is true, the thread isn't
|
1672
|
-
# suspended, and `ThreadError` is raised.
|
1700
|
+
# <!--
|
1701
|
+
# rdoc-file=thread_sync.rb
|
1702
|
+
# - enq(object, non_block = false, timeout: nil)
|
1703
|
+
# -->
|
1673
1704
|
#
|
1674
1705
|
alias enq push
|
1675
1706
|
|
1707
|
+
# <!--
|
1708
|
+
# rdoc-file=thread_sync.c
|
1709
|
+
# - freeze
|
1710
|
+
# -->
|
1711
|
+
# The queue can't be frozen, so this method raises an exception:
|
1712
|
+
# Thread::Queue.new.freeze # Raises TypeError (cannot freeze #<Thread::Queue:0x...>)
|
1713
|
+
#
|
1714
|
+
def freeze: () -> bot
|
1715
|
+
|
1676
1716
|
# <!--
|
1677
1717
|
# rdoc-file=thread_sync.c
|
1678
1718
|
# - new(max)
|
@@ -1698,9 +1738,9 @@ class Thread::SizedQueue < Thread::Queue
|
|
1698
1738
|
def max=: (Integer max) -> void
|
1699
1739
|
|
1700
1740
|
# <!--
|
1701
|
-
# rdoc-file=thread_sync.
|
1702
|
-
# - push(object, non_block=false)
|
1703
|
-
# - enq(object, non_block=false)
|
1741
|
+
# rdoc-file=thread_sync.rb
|
1742
|
+
# - push(object, non_block=false, timeout: nil)
|
1743
|
+
# - enq(object, non_block=false, timeout: nil)
|
1704
1744
|
# - <<(object)
|
1705
1745
|
# -->
|
1706
1746
|
# Pushes `object` to the queue.
|
@@ -1709,13 +1749,17 @@ class Thread::SizedQueue < Thread::Queue
|
|
1709
1749
|
# unless `non_block` is true. If `non_block` is true, the thread isn't
|
1710
1750
|
# suspended, and `ThreadError` is raised.
|
1711
1751
|
#
|
1712
|
-
|
1752
|
+
# If `timeout` seconds have passed and no space is available `nil` is returned.
|
1753
|
+
# If `timeout` is `0` it returns immediately. Otherwise it returns `self`.
|
1754
|
+
#
|
1755
|
+
def push: (Elem obj, ?boolish non_block) -> void
|
1756
|
+
| (Elem obj, timeout: _ToF?) -> self?
|
1713
1757
|
end
|
1714
1758
|
|
1715
|
-
ConditionVariable
|
1759
|
+
class ConditionVariable = Thread::ConditionVariable
|
1716
1760
|
|
1717
|
-
Mutex
|
1761
|
+
class Mutex = Thread::Mutex
|
1718
1762
|
|
1719
|
-
Queue
|
1763
|
+
class Queue = Thread::Queue
|
1720
1764
|
|
1721
|
-
SizedQueue
|
1765
|
+
class SizedQueue = Thread::SizedQueue
|
data/core/thread_group.rbs
CHANGED
@@ -8,7 +8,13 @@
|
|
8
8
|
# Newly created threads belong to the same group as the thread from which they
|
9
9
|
# were created.
|
10
10
|
#
|
11
|
-
class ThreadGroup
|
11
|
+
class ThreadGroup
|
12
|
+
# <!-- rdoc-file=thread.c -->
|
13
|
+
# The default ThreadGroup created when Ruby starts; all Threads belong to it by
|
14
|
+
# default.
|
15
|
+
#
|
16
|
+
Default: ThreadGroup
|
17
|
+
|
12
18
|
# <!--
|
13
19
|
# rdoc-file=thread.c
|
14
20
|
# - thgrp.add(thread) -> thgrp
|
@@ -34,7 +40,7 @@ class ThreadGroup < Object
|
|
34
40
|
# Initial group now #<Thread:0x401b3c18>#<Thread:0x401bdf4c>
|
35
41
|
# tg group now #<Thread:0x401b3c90>
|
36
42
|
#
|
37
|
-
def add: (Thread thread) ->
|
43
|
+
def add: (Thread thread) -> self
|
38
44
|
|
39
45
|
# <!--
|
40
46
|
# rdoc-file=thread.c
|
@@ -69,11 +75,5 @@ class ThreadGroup < Object
|
|
69
75
|
#
|
70
76
|
# ThreadGroup::Default.list #=> [#<Thread:0x401bdf4c run>]
|
71
77
|
#
|
72
|
-
def list: () ->
|
78
|
+
def list: () -> Array[Thread]
|
73
79
|
end
|
74
|
-
|
75
|
-
# <!-- rdoc-file=thread.c -->
|
76
|
-
# The default ThreadGroup created when Ruby starts; all Threads belong to it by
|
77
|
-
# default.
|
78
|
-
#
|
79
|
-
ThreadGroup::Default: ThreadGroup
|