rbs 3.5.1 → 3.6.1
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 +4 -4
 - data/.github/workflows/dependabot.yml +5 -1
 - data/.github/workflows/ruby.yml +2 -18
 - data/.github/workflows/windows.yml +26 -0
 - data/.rubocop.yml +28 -1
 - data/CHANGELOG.md +123 -0
 - data/Rakefile +10 -4
 - data/core/array.rbs +10 -12
 - data/core/basic_object.rbs +4 -4
 - data/core/builtin.rbs +4 -4
 - data/core/complex.rbs +0 -2
 - data/core/data.rbs +0 -2
 - data/core/dir.rbs +1 -3
 - data/core/encoding.rbs +0 -2
 - data/core/enumerable.rbs +17 -11
 - data/core/enumerator/product.rbs +1 -3
 - data/core/enumerator.rbs +9 -2
 - data/core/errors.rbs +1 -13
 - data/core/exception.rbs +1 -1
 - data/core/fiber.rbs +1 -1
 - data/core/file.rbs +1 -3
 - data/core/float.rbs +0 -2
 - data/core/global_variables.rbs +2 -2
 - data/core/hash.rbs +0 -2
 - data/core/integer.rbs +4 -6
 - data/core/io/buffer.rbs +0 -2
 - data/core/kernel.rbs +68 -39
 - data/core/method.rbs +98 -7
 - data/core/module.rbs +5 -5
 - data/core/numeric.rbs +0 -2
 - data/core/object_space/weak_key_map.rbs +0 -2
 - data/core/proc.rbs +184 -23
 - data/core/ractor.rbs +1 -7
 - data/core/random.rbs +1 -1
 - data/core/range.rbs +30 -0
 - data/core/rational.rbs +0 -2
 - data/core/rbs/unnamed/argf.rbs +0 -2
 - data/core/rbs/unnamed/env_class.rbs +7 -7
 - data/core/rbs/unnamed/random.rbs +14 -14
 - data/core/refinement.rbs +16 -26
 - data/core/regexp.rbs +2 -2
 - data/core/ruby_vm.rbs +305 -0
 - data/core/rubygems/errors.rbs +66 -0
 - data/core/rubygems/rubygems.rbs +66 -0
 - data/core/string.rbs +4 -0
 - data/core/symbol.rbs +34 -26
 - data/core/thread.rbs +8 -7
 - data/core/trace_point.rbs +12 -12
 - data/core/unbound_method.rbs +1 -1
 - data/docs/syntax.md +26 -12
 - data/ext/rbs_extension/lexer.c +1 -1
 - data/ext/rbs_extension/lexer.h +5 -0
 - data/ext/rbs_extension/lexer.re +1 -1
 - data/ext/rbs_extension/lexstate.c +16 -0
 - data/ext/rbs_extension/location.c +27 -39
 - data/ext/rbs_extension/location.h +7 -2
 - data/ext/rbs_extension/main.c +3 -0
 - data/ext/rbs_extension/parser.c +135 -55
 - data/ext/rbs_extension/parserstate.c +2 -7
 - data/ext/rbs_extension/parserstate.h +6 -5
 - data/ext/rbs_extension/ruby_objs.c +2 -1
 - data/ext/rbs_extension/ruby_objs.h +1 -1
 - data/lib/rbs/ast/declarations.rb +36 -0
 - 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/validate.rb +83 -7
 - data/lib/rbs/cli.rb +3 -3
 - data/lib/rbs/definition.rb +2 -7
 - data/lib/rbs/definition_builder/ancestor_builder.rb +51 -9
 - data/lib/rbs/definition_builder.rb +28 -12
 - data/lib/rbs/environment_loader.rb +1 -1
 - data/lib/rbs/errors.rb +46 -3
 - data/lib/rbs/file_finder.rb +9 -12
 - data/lib/rbs/location_aux.rb +2 -6
 - data/lib/rbs/locator.rb +8 -5
 - data/lib/rbs/prototype/rb.rb +2 -2
 - data/lib/rbs/prototype/rbi.rb +2 -1
 - data/lib/rbs/prototype/runtime.rb +3 -2
 - data/lib/rbs/sorter.rb +9 -6
 - data/lib/rbs/test/type_check.rb +13 -0
 - data/lib/rbs/types.rb +12 -1
 - data/lib/rbs/validator.rb +2 -2
 - data/lib/rbs/vendorer.rb +3 -3
 - data/lib/rbs/version.rb +1 -1
 - data/lib/rbs.rb +1 -0
 - data/sig/declarations.rbs +6 -0
 - data/sig/definition.rbs +2 -2
 - data/sig/definition_builder.rbs +3 -1
 - data/sig/errors.rbs +17 -2
 - data/sig/file_finder.rbs +24 -2
 - data/sig/location.rbs +0 -3
 - data/sig/members.rbs +1 -2
 - data/sig/method_types.rbs +1 -1
 - data/sig/sorter.rbs +1 -1
 - data/sig/type_param.rbs +45 -9
 - data/sig/types.rbs +24 -5
 - data/sig/visitor.rbs +47 -0
 - data/stdlib/bigdecimal/0/big_decimal.rbs +0 -2
 - data/stdlib/cgi/0/core.rbs +0 -10
 - data/stdlib/csv/0/csv.rbs +44 -6
 - data/stdlib/date/0/date.rbs +0 -2
 - data/stdlib/date/0/date_time.rbs +0 -2
 - data/stdlib/dbm/0/dbm.rbs +0 -2
 - data/stdlib/delegate/0/delegator.rbs +0 -2
 - data/stdlib/delegate/0/simple_delegator.rbs +0 -2
 - data/stdlib/digest/0/digest.rbs +22 -32
 - data/stdlib/etc/0/etc.rbs +0 -4
 - data/stdlib/ipaddr/0/ipaddr.rbs +1 -1
 - data/stdlib/json/0/json.rbs +22 -0
 - data/stdlib/kconv/0/kconv.rbs +166 -0
 - data/stdlib/logger/0/formatter.rbs +0 -2
 - data/stdlib/logger/0/log_device.rbs +0 -2
 - data/stdlib/logger/0/logger.rbs +0 -2
 - data/stdlib/monitor/0/monitor.rbs +0 -6
 - data/stdlib/mutex_m/0/mutex_m.rbs +0 -2
 - data/stdlib/net-http/0/net-http.rbs +2 -10
 - data/stdlib/observable/0/observable.rbs +0 -2
 - data/stdlib/open-uri/0/open-uri.rbs +1 -1
 - data/stdlib/open3/0/open3.rbs +155 -0
 - data/stdlib/openssl/0/openssl.rbs +0 -112
 - data/stdlib/optparse/0/optparse.rbs +0 -22
 - data/stdlib/pathname/0/pathname.rbs +0 -2
 - data/stdlib/pstore/0/pstore.rbs +0 -2
 - data/stdlib/psych/0/store.rbs +1 -1
 - data/stdlib/resolv/0/resolv.rbs +0 -74
 - data/stdlib/singleton/0/singleton.rbs +0 -2
 - data/stdlib/socket/0/addrinfo.rbs +0 -2
 - data/stdlib/socket/0/basic_socket.rbs +0 -2
 - data/stdlib/socket/0/ip_socket.rbs +0 -2
 - data/stdlib/socket/0/socket.rbs +0 -8
 - data/stdlib/socket/0/tcp_server.rbs +0 -2
 - data/stdlib/socket/0/udp_socket.rbs +0 -2
 - data/stdlib/socket/0/unix_server.rbs +0 -2
 - data/stdlib/socket/0/unix_socket.rbs +0 -2
 - data/stdlib/strscan/0/string_scanner.rbs +4 -6
 - data/stdlib/tempfile/0/tempfile.rbs +0 -4
 - data/stdlib/uri/0/ldap.rbs +1 -1
 - data/stdlib/zlib/0/deflate.rbs +1 -3
 - data/stdlib/zlib/0/gzip_file/error.rbs +0 -2
 - data/stdlib/zlib/0/gzip_file.rbs +0 -2
 - data/stdlib/zlib/0/gzip_reader.rbs +5 -3
 - data/stdlib/zlib/0/gzip_writer.rbs +0 -2
 - data/stdlib/zlib/0/inflate.rbs +0 -2
 - data/stdlib/zlib/0/zstream.rbs +0 -2
 - metadata +8 -3
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: cd93b9bdce0e6148409689ba4aa2db4d34109e46b799706b6f44944134f1b817
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 3780dcddba54316cf7cb97224f7dc7a187195904a3f21cc430a017c03d663387
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 786d469a57422f169e2980a4b0f80eb4ec857081f51b2c56ac87e070abd118b4245f537457de06058ef32ea394742e9bcb3cd106c7d3408b51a0aab8a622a260
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 7b70ac096f7d53171b5aebcafc6605426e80ee598cddabb70c520b689cc07fadbaa22bda3d2bd9f6a748587cc6ce11246c3a79f50125ea102cf561ed66bfc353
         
     | 
| 
         @@ -11,8 +11,11 @@ env: 
     | 
|
| 
       11 
11 
     | 
    
         
             
            jobs:
         
     | 
| 
       12 
12 
     | 
    
         
             
              dependabot:
         
     | 
| 
       13 
13 
     | 
    
         
             
                runs-on: ubuntu-latest
         
     | 
| 
       14 
     | 
    
         
            -
                if: ${{ github. 
     | 
| 
      
 14 
     | 
    
         
            +
                if: ${{ github.event.pull_request.user.login == 'dependabot[bot]' }}
         
     | 
| 
       15 
15 
     | 
    
         
             
                steps:
         
     | 
| 
      
 16 
     | 
    
         
            +
                  - name: Dependabot metadata
         
     | 
| 
      
 17 
     | 
    
         
            +
                    uses: dependabot/fetch-metadata@dbb049abf0d677abbd7f7eee0375145b417fdd34 # v2.2.0
         
     | 
| 
      
 18 
     | 
    
         
            +
                    id: metadata
         
     | 
| 
       16 
19 
     | 
    
         
             
                  - name: Checkout repository
         
     | 
| 
       17 
20 
     | 
    
         
             
                    uses: actions/checkout@v4
         
     | 
| 
       18 
21 
     | 
    
         
             
                    with:
         
     | 
| 
         @@ -21,6 +24,7 @@ jobs: 
     | 
|
| 
       21 
24 
     | 
    
         
             
                    run: git diff --exit-code ${{ github.event.pull_request.base.sha }} ${{ github.event.pull_request.head.sha }} ${{ env.blocker_files }}
         
     | 
| 
       22 
25 
     | 
    
         
             
                  - name: Enable auto-merge for Dependabot PRs
         
     | 
| 
       23 
26 
     | 
    
         
             
                    run: gh pr merge --auto --merge "$PR_URL"
         
     | 
| 
      
 27 
     | 
    
         
            +
                    if: ${{ steps.metadata.outputs.update-type == 'version-update:semver-minor' || steps.metadata.outputs.update-type == 'version-update:semver-patch' }}
         
     | 
| 
       24 
28 
     | 
    
         
             
                    env:
         
     | 
| 
       25 
29 
     | 
    
         
             
                      PR_URL: ${{github.event.pull_request.html_url}}
         
     | 
| 
       26 
30 
     | 
    
         
             
                      GH_TOKEN: ${{secrets.DEPENDABOT_MERGE_GH_TOKEN}}
         
     | 
    
        data/.github/workflows/ruby.yml
    CHANGED
    
    | 
         @@ -42,6 +42,8 @@ jobs: 
     | 
|
| 
       42 
42 
     | 
    
         
             
                      bundler: none
         
     | 
| 
       43 
43 
     | 
    
         
             
                  - name: Set working directory as safe
         
     | 
| 
       44 
44 
     | 
    
         
             
                    run: git config --global --add safe.directory $(pwd)
         
     | 
| 
      
 45 
     | 
    
         
            +
                  - name: Set up permission
         
     | 
| 
      
 46 
     | 
    
         
            +
                    run: chmod -R o-w /opt/hostedtoolcache/Ruby
         
     | 
| 
       45 
47 
     | 
    
         
             
                  - name: Install dependencies
         
     | 
| 
       46 
48 
     | 
    
         
             
                    run: |
         
     | 
| 
       47 
49 
     | 
    
         
             
                      sudo apt-get update
         
     | 
| 
         @@ -76,21 +78,3 @@ jobs: 
     | 
|
| 
       76 
78 
     | 
    
         
             
                  - name: Run test
         
     | 
| 
       77 
79 
     | 
    
         
             
                    run: |
         
     | 
| 
       78 
80 
     | 
    
         
             
                      bundle exec rake ${{ matrix.job }}
         
     | 
| 
       79 
     | 
    
         
            -
             
     | 
| 
       80 
     | 
    
         
            -
              windows:
         
     | 
| 
       81 
     | 
    
         
            -
                runs-on: ${{ matrix.os }}
         
     | 
| 
       82 
     | 
    
         
            -
                strategy:
         
     | 
| 
       83 
     | 
    
         
            -
                  fail-fast: false
         
     | 
| 
       84 
     | 
    
         
            -
                  matrix:
         
     | 
| 
       85 
     | 
    
         
            -
                    os: [windows-2019, windows-2022]
         
     | 
| 
       86 
     | 
    
         
            -
                    ruby: [ucrt, mswin]
         
     | 
| 
       87 
     | 
    
         
            -
                steps:
         
     | 
| 
       88 
     | 
    
         
            -
                  - uses: actions/checkout@v4
         
     | 
| 
       89 
     | 
    
         
            -
                  - name: load ruby
         
     | 
| 
       90 
     | 
    
         
            -
                    uses: ruby/setup-ruby@v1
         
     | 
| 
       91 
     | 
    
         
            -
                    with:
         
     | 
| 
       92 
     | 
    
         
            -
                      ruby-version: ${{ matrix.ruby }}
         
     | 
| 
       93 
     | 
    
         
            -
                  - name: rake-compiler
         
     | 
| 
       94 
     | 
    
         
            -
                    run: gem install rake-compiler
         
     | 
| 
       95 
     | 
    
         
            -
                  - name: compile
         
     | 
| 
       96 
     | 
    
         
            -
                    run: rake compile
         
     | 
| 
         @@ -0,0 +1,26 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            name: Ruby on Windows
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            on:
         
     | 
| 
      
 4 
     | 
    
         
            +
              push:
         
     | 
| 
      
 5 
     | 
    
         
            +
                branches:
         
     | 
| 
      
 6 
     | 
    
         
            +
                  - master
         
     | 
| 
      
 7 
     | 
    
         
            +
              pull_request: {}
         
     | 
| 
      
 8 
     | 
    
         
            +
              merge_group: {}
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
            jobs:
         
     | 
| 
      
 11 
     | 
    
         
            +
              compile:
         
     | 
| 
      
 12 
     | 
    
         
            +
                runs-on: "windows-latest"
         
     | 
| 
      
 13 
     | 
    
         
            +
                strategy:
         
     | 
| 
      
 14 
     | 
    
         
            +
                  fail-fast: false
         
     | 
| 
      
 15 
     | 
    
         
            +
                  matrix:
         
     | 
| 
      
 16 
     | 
    
         
            +
                    ruby: ['3.2', '3.3', ucrt, mswin]
         
     | 
| 
      
 17 
     | 
    
         
            +
                steps:
         
     | 
| 
      
 18 
     | 
    
         
            +
                  - uses: actions/checkout@v4
         
     | 
| 
      
 19 
     | 
    
         
            +
                  - name: load ruby
         
     | 
| 
      
 20 
     | 
    
         
            +
                    uses: ruby/setup-ruby@v1
         
     | 
| 
      
 21 
     | 
    
         
            +
                    with:
         
     | 
| 
      
 22 
     | 
    
         
            +
                      ruby-version: ${{ matrix.ruby }}
         
     | 
| 
      
 23 
     | 
    
         
            +
                  - name: rake-compiler
         
     | 
| 
      
 24 
     | 
    
         
            +
                    run: gem install rake-compiler
         
     | 
| 
      
 25 
     | 
    
         
            +
                  - name: compile
         
     | 
| 
      
 26 
     | 
    
         
            +
                    run: rake compile
         
     | 
    
        data/.rubocop.yml
    CHANGED
    
    | 
         @@ -1,4 +1,7 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            require: 
     | 
| 
      
 1 
     | 
    
         
            +
            require:
         
     | 
| 
      
 2 
     | 
    
         
            +
              - rubocop-rubycw
         
     | 
| 
      
 3 
     | 
    
         
            +
              - rubocop-on-rbs
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
       2 
5 
     | 
    
         
             
            AllCops:
         
     | 
| 
       3 
6 
     | 
    
         
             
              TargetRubyVersion: 3.0
         
     | 
| 
       4 
7 
     | 
    
         
             
              DisabledByDefault: true
         
     | 
| 
         @@ -8,6 +11,30 @@ Rubycw/Rubycw: 
     | 
|
| 
       8 
11 
     | 
    
         
             
              Enabled: true
         
     | 
| 
       9 
12 
     | 
    
         
             
              Exclude:
         
     | 
| 
       10 
13 
     | 
    
         
             
                - 'test/**/*_test.rb'
         
     | 
| 
      
 14 
     | 
    
         
            +
                - 'test/typecheck/**/*.rb'
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
            RBS:
         
     | 
| 
      
 17 
     | 
    
         
            +
              Enabled: true
         
     | 
| 
      
 18 
     | 
    
         
            +
            RBS/Layout:
         
     | 
| 
      
 19 
     | 
    
         
            +
              Enabled: true
         
     | 
| 
      
 20 
     | 
    
         
            +
              Exclude:
         
     | 
| 
      
 21 
     | 
    
         
            +
                - 'sig/**/*'
         
     | 
| 
      
 22 
     | 
    
         
            +
                - 'test/**/*'
         
     | 
| 
      
 23 
     | 
    
         
            +
            RBS/Layout/CommentIndentation:
         
     | 
| 
      
 24 
     | 
    
         
            +
              Exclude:
         
     | 
| 
      
 25 
     | 
    
         
            +
                - core/string.rbs
         
     | 
| 
      
 26 
     | 
    
         
            +
            RBS/Lint:
         
     | 
| 
      
 27 
     | 
    
         
            +
              Enabled: true
         
     | 
| 
      
 28 
     | 
    
         
            +
              Exclude:
         
     | 
| 
      
 29 
     | 
    
         
            +
                - 'sig/**/*'
         
     | 
| 
      
 30 
     | 
    
         
            +
                - 'test/**/*'
         
     | 
| 
      
 31 
     | 
    
         
            +
            RBS/Style:
         
     | 
| 
      
 32 
     | 
    
         
            +
              Enabled: false
         
     | 
| 
      
 33 
     | 
    
         
            +
              Exclude:
         
     | 
| 
      
 34 
     | 
    
         
            +
                - 'sig/**/*'
         
     | 
| 
      
 35 
     | 
    
         
            +
                - 'test/**/*'
         
     | 
| 
      
 36 
     | 
    
         
            +
            RBS/Style/InitializeReturnType:
         
     | 
| 
      
 37 
     | 
    
         
            +
              Enabled: true
         
     | 
| 
       11 
38 
     | 
    
         | 
| 
       12 
39 
     | 
    
         
             
            Lint/DuplicateMethods:
         
     | 
| 
       13 
40 
     | 
    
         
             
              Enabled: true
         
     | 
    
        data/CHANGELOG.md
    CHANGED
    
    | 
         @@ -1,5 +1,128 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # CHANGELOG
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
      
 3 
     | 
    
         
            +
            ## 3.6.1 (2024-10-03)
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            ### Library changes
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            * Mark as ractor-safe ([#2041](https://github.com/ruby/rbs/pull/2041))
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
            ### Miscellaneous
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
            * Omit IOConsoleTest with Windows platform ([#2044](https://github.com/ruby/rbs/pull/2044))
         
     | 
| 
      
 12 
     | 
    
         
            +
            * Recover `$stdout` after test ([#2042](https://github.com/ruby/rbs/pull/2042))
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
            ## 3.6.0 (2024-09-30)
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
            Nothing changed since `3.6.0.pre.3`.
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
            ## 3.6.0.pre.3 (2024-09-30)
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
            ### Signature updates
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
            * `JSON.load_file`, `.load_file!` ([#2031](https://github.com/ruby/rbs/pull/2031))
         
     | 
| 
      
 23 
     | 
    
         
            +
            * `Module#class_eval`, `Module#module_eval` ([#2029](https://github.com/ruby/rbs/pull/2029))
         
     | 
| 
      
 24 
     | 
    
         
            +
            * `Open3` ([#2014](https://github.com/ruby/rbs/pull/2014))
         
     | 
| 
      
 25 
     | 
    
         
            +
            * `RubyVM::InstructionSequence` ([#2027](https://github.com/ruby/rbs/pull/2027))
         
     | 
| 
      
 26 
     | 
    
         
            +
            * Fixup RBS type definitions with rbs-on-rubocop ([#2023](https://github.com/ruby/rbs/pull/2023))
         
     | 
| 
      
 27 
     | 
    
         
            +
            * Avoid using `instance`/`class` types in modules ([#2020](https://github.com/ruby/rbs/pull/2020))
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
            ### Language updates
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
            * Optional type param restriction ([#2030](https://github.com/ruby/rbs/pull/2030))
         
     | 
| 
      
 32 
     | 
    
         
            +
            * Prohibit `self` type as a generics default ([#2022](https://github.com/ruby/rbs/pull/2022))
         
     | 
| 
      
 33 
     | 
    
         
            +
            * Allow `self` types in generics default type ([#2021](https://github.com/ruby/rbs/pull/2021))
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
            ### Library changes
         
     | 
| 
      
 36 
     | 
    
         
            +
             
     | 
| 
      
 37 
     | 
    
         
            +
            * Add `TypeParamDefaultReferenceError#type_param` ([#2032](https://github.com/ruby/rbs/pull/2032))
         
     | 
| 
      
 38 
     | 
    
         
            +
             
     | 
| 
      
 39 
     | 
    
         
            +
            ## 3.6.0.pre.2 (2024-09-18)
         
     | 
| 
      
 40 
     | 
    
         
            +
             
     | 
| 
      
 41 
     | 
    
         
            +
            ### Signature updates
         
     | 
| 
      
 42 
     | 
    
         
            +
             
     | 
| 
      
 43 
     | 
    
         
            +
            * `Kernel#class` ([#2017](https://github.com/ruby/rbs/pull/2017))
         
     | 
| 
      
 44 
     | 
    
         
            +
            * `TracePoint#enable` ([#2015](https://github.com/ruby/rbs/pull/2015))
         
     | 
| 
      
 45 
     | 
    
         
            +
             
     | 
| 
      
 46 
     | 
    
         
            +
            ### Miscellaneous
         
     | 
| 
      
 47 
     | 
    
         
            +
             
     | 
| 
      
 48 
     | 
    
         
            +
            * Fix type definition and type errors ([#2016](https://github.com/ruby/rbs/pull/2016))
         
     | 
| 
      
 49 
     | 
    
         
            +
             
     | 
| 
      
 50 
     | 
    
         
            +
            ## 3.6.0.pre.1 (2024-09-17)
         
     | 
| 
      
 51 
     | 
    
         
            +
             
     | 
| 
      
 52 
     | 
    
         
            +
            ### Signature updates
         
     | 
| 
      
 53 
     | 
    
         
            +
             
     | 
| 
      
 54 
     | 
    
         
            +
            * csv ([#2012](https://github.com/ruby/rbs/pull/2012), [#1864](https://github.com/ruby/rbs/pull/1864), [#2002](https://github.com/ruby/rbs/pull/2002), [#2003](https://github.com/ruby/rbs/pull/2003), [#1903](https://github.com/ruby/rbs/pull/1903))
         
     | 
| 
      
 55 
     | 
    
         
            +
            * digest ([#1880](https://github.com/ruby/rbs/pull/1880))
         
     | 
| 
      
 56 
     | 
    
         
            +
            * kconv ([#1857](https://github.com/ruby/rbs/pull/1857))
         
     | 
| 
      
 57 
     | 
    
         
            +
            * zlib ([#1911](https://github.com/ruby/rbs/pull/1911))
         
     | 
| 
      
 58 
     | 
    
         
            +
            * `_Each` ([#2006](https://github.com/ruby/rbs/pull/2006))
         
     | 
| 
      
 59 
     | 
    
         
            +
            * `Array` ([#1921](https://github.com/ruby/rbs/pull/1921))
         
     | 
| 
      
 60 
     | 
    
         
            +
            * `Enumerable` ([#1921](https://github.com/ruby/rbs/pull/1921))
         
     | 
| 
      
 61 
     | 
    
         
            +
            * `Enumerator::_Each` ([#2006](https://github.com/ruby/rbs/pull/2006), [#1915](https://github.com/ruby/rbs/pull/1915))
         
     | 
| 
      
 62 
     | 
    
         
            +
            * `Enumerator` ([#2004](https://github.com/ruby/rbs/pull/2004))
         
     | 
| 
      
 63 
     | 
    
         
            +
            * `Kernel` ([#1945](https://github.com/ruby/rbs/pull/1945))
         
     | 
| 
      
 64 
     | 
    
         
            +
            * `Method` ([#1939](https://github.com/ruby/rbs/pull/1939))
         
     | 
| 
      
 65 
     | 
    
         
            +
            * `Module` ([#1921](https://github.com/ruby/rbs/pull/1921))
         
     | 
| 
      
 66 
     | 
    
         
            +
            * `Net::HTTPHeader` ([#1932](https://github.com/ruby/rbs/pull/1932))
         
     | 
| 
      
 67 
     | 
    
         
            +
            * `Proc` ([#1937](https://github.com/ruby/rbs/pull/1937))
         
     | 
| 
      
 68 
     | 
    
         
            +
            * `Queue` ([#2004](https://github.com/ruby/rbs/pull/2004))
         
     | 
| 
      
 69 
     | 
    
         
            +
            * `Range` ([#1921](https://github.com/ruby/rbs/pull/1921))
         
     | 
| 
      
 70 
     | 
    
         
            +
            * `Refinement` ([#1931](https://github.com/ruby/rbs/pull/1931))
         
     | 
| 
      
 71 
     | 
    
         
            +
            * `Symbol` ([#1930](https://github.com/ruby/rbs/pull/1930))
         
     | 
| 
      
 72 
     | 
    
         
            +
            * `TracePoint` ([#1943](https://github.com/ruby/rbs/pull/1943))
         
     | 
| 
      
 73 
     | 
    
         
            +
            * `#rand` ([#2007](https://github.com/ruby/rbs/pull/2007))
         
     | 
| 
      
 74 
     | 
    
         
            +
            * Use untyped blocks ([#1935](https://github.com/ruby/rbs/pull/1935))
         
     | 
| 
      
 75 
     | 
    
         
            +
            * Update docs for ruby-3.3.4 ([#1923](https://github.com/ruby/rbs/pull/1923))
         
     | 
| 
      
 76 
     | 
    
         
            +
            * Update docs for ruby-3.3.3 ([#1889](https://github.com/ruby/rbs/pull/1889))
         
     | 
| 
      
 77 
     | 
    
         
            +
             
     | 
| 
      
 78 
     | 
    
         
            +
            ### Language updates
         
     | 
| 
      
 79 
     | 
    
         
            +
             
     | 
| 
      
 80 
     | 
    
         
            +
            * Fix position for default_type ([#1997](https://github.com/ruby/rbs/pull/1997))
         
     | 
| 
      
 81 
     | 
    
         
            +
            * Update `syntax.md` ([#1995](https://github.com/ruby/rbs/pull/1995))
         
     | 
| 
      
 82 
     | 
    
         
            +
            * Improve generics ([#1994](https://github.com/ruby/rbs/pull/1994))
         
     | 
| 
      
 83 
     | 
    
         
            +
            * Allow alias to module-self-type from module ([#1948](https://github.com/ruby/rbs/pull/1948))
         
     | 
| 
      
 84 
     | 
    
         
            +
            * Make it a syntax error when the keys of keyword and record are duplicated. ([#1883](https://github.com/ruby/rbs/pull/1883))
         
     | 
| 
      
 85 
     | 
    
         
            +
             
     | 
| 
      
 86 
     | 
    
         
            +
            ### Library changes
         
     | 
| 
      
 87 
     | 
    
         
            +
             
     | 
| 
      
 88 
     | 
    
         
            +
            * Omit unnecessary field from location range ([#1788](https://github.com/ruby/rbs/pull/1788))
         
     | 
| 
      
 89 
     | 
    
         
            +
            * Handle ISEQs compiled by Prism ([#1983](https://github.com/ruby/rbs/pull/1983))
         
     | 
| 
      
 90 
     | 
    
         
            +
            * Add AST Visitor ([#1975](https://github.com/ruby/rbs/pull/1975))
         
     | 
| 
      
 91 
     | 
    
         
            +
            * Make the extension `GC.auto_compact` compatible ([#1971](https://github.com/ruby/rbs/pull/1971))
         
     | 
| 
      
 92 
     | 
    
         
            +
            * Make `FileFinder` faster by globbing all possible files ([#1965](https://github.com/ruby/rbs/pull/1965))
         
     | 
| 
      
 93 
     | 
    
         
            +
            * Fix #1905: Fix typo in `UntypedFunction` ([#1906](https://github.com/ruby/rbs/pull/1906))
         
     | 
| 
      
 94 
     | 
    
         
            +
             
     | 
| 
      
 95 
     | 
    
         
            +
            #### rbs prototype
         
     | 
| 
      
 96 
     | 
    
         
            +
             
     | 
| 
      
 97 
     | 
    
         
            +
            * [prototype] Remove redundant access modifier ([#1914](https://github.com/ruby/rbs/pull/1914))
         
     | 
| 
      
 98 
     | 
    
         
            +
             
     | 
| 
      
 99 
     | 
    
         
            +
            ### Miscellaneous
         
     | 
| 
      
 100 
     | 
    
         
            +
             
     | 
| 
      
 101 
     | 
    
         
            +
            * Allow RBS/Style/InitializeReturnType ([#2008](https://github.com/ruby/rbs/pull/2008))
         
     | 
| 
      
 102 
     | 
    
         
            +
            * docs: An interface can include interfaces only and not modules ([#1996](https://github.com/ruby/rbs/pull/1996))
         
     | 
| 
      
 103 
     | 
    
         
            +
            * Fix the portability of an external command ([#2001](https://github.com/ruby/rbs/pull/2001))
         
     | 
| 
      
 104 
     | 
    
         
            +
            * Skip `AbstractSyntaxTree` test with ruby-3.4 ([#2005](https://github.com/ruby/rbs/pull/2005))
         
     | 
| 
      
 105 
     | 
    
         
            +
            * Fix test ([#1972](https://github.com/ruby/rbs/pull/1972))
         
     | 
| 
      
 106 
     | 
    
         
            +
            * Use `File.open` instead of `IO.sysopen` ([#1912](https://github.com/ruby/rbs/pull/1912))
         
     | 
| 
      
 107 
     | 
    
         
            +
             
     | 
| 
      
 108 
     | 
    
         
            +
            ## 3.5.3 (2024-08-23)
         
     | 
| 
      
 109 
     | 
    
         
            +
             
     | 
| 
      
 110 
     | 
    
         
            +
            ### Library changes
         
     | 
| 
      
 111 
     | 
    
         
            +
             
     | 
| 
      
 112 
     | 
    
         
            +
            * Backport GC fix PR ([#1977](https://github.com/ruby/rbs/pull/1977))
         
     | 
| 
      
 113 
     | 
    
         
            +
             
     | 
| 
      
 114 
     | 
    
         
            +
            ## 3.5.2 (2024-07-10)
         
     | 
| 
      
 115 
     | 
    
         
            +
             
     | 
| 
      
 116 
     | 
    
         
            +
            ### Library changes
         
     | 
| 
      
 117 
     | 
    
         
            +
             
     | 
| 
      
 118 
     | 
    
         
            +
            * Update docs for ruby-3.3.4 ([#1923](https://github.com/ruby/rbs/pull/1923), Backported in [#1925](https://github.com/ruby/rbs/pull/1925))
         
     | 
| 
      
 119 
     | 
    
         
            +
            * Update docs for ruby-3.3.3 ([#1889](https://github.com/ruby/rbs/pull/1889), Backported in [#1925](https://github.com/ruby/rbs/pull/1925))
         
     | 
| 
      
 120 
     | 
    
         
            +
            * Fix #1905: Fix typo in `UntypedFunction` ([#1906](https://github.com/ruby/rbs/pull/1906), Backported in [#1925](https://github.com/ruby/rbs/pull/1925))
         
     | 
| 
      
 121 
     | 
    
         
            +
             
     | 
| 
      
 122 
     | 
    
         
            +
            ### Miscellaneous
         
     | 
| 
      
 123 
     | 
    
         
            +
             
     | 
| 
      
 124 
     | 
    
         
            +
            * Use `File.open` instead of `IO.sysopen` ([#1913](https://github.com/ruby/rbs/pull/1913))
         
     | 
| 
      
 125 
     | 
    
         
            +
             
     | 
| 
       3 
126 
     | 
    
         
             
            ## 3.5.1 (2024-06-07)
         
     | 
| 
       4 
127 
     | 
    
         | 
| 
       5 
128 
     | 
    
         
             
            ### Library changes
         
     | 
    
        data/Rakefile
    CHANGED
    
    | 
         @@ -56,7 +56,7 @@ end 
     | 
|
| 
       56 
56 
     | 
    
         
             
            task :validate => :compile do
         
     | 
| 
       57 
57 
     | 
    
         
             
              require 'yaml'
         
     | 
| 
       58 
58 
     | 
    
         | 
| 
       59 
     | 
    
         
            -
              sh "#{ruby} #{rbs} validate"
         
     | 
| 
      
 59 
     | 
    
         
            +
              sh "#{ruby} #{rbs} validate --exit-error-on-syntax-error"
         
     | 
| 
       60 
60 
     | 
    
         | 
| 
       61 
61 
     | 
    
         
             
              libs = FileList["stdlib/*"].map {|path| File.basename(path).to_s }
         
     | 
| 
       62 
62 
     | 
    
         | 
| 
         @@ -72,7 +72,7 @@ task :validate => :compile do 
     | 
|
| 
       72 
72 
     | 
    
         
             
              end
         
     | 
| 
       73 
73 
     | 
    
         | 
| 
       74 
74 
     | 
    
         
             
              libs.each do |lib|
         
     | 
| 
       75 
     | 
    
         
            -
                sh "#{ruby} #{rbs} -r #{lib} validate"
         
     | 
| 
      
 75 
     | 
    
         
            +
                sh "#{ruby} #{rbs} -r #{lib} validate --exit-error-on-syntax-error"
         
     | 
| 
       76 
76 
     | 
    
         
             
              end
         
     | 
| 
       77 
77 
     | 
    
         
             
            end
         
     | 
| 
       78 
78 
     | 
    
         | 
| 
         @@ -106,11 +106,17 @@ task :typecheck_test => :compile do 
     | 
|
| 
       106 
106 
     | 
    
         
             
            end
         
     | 
| 
       107 
107 
     | 
    
         | 
| 
       108 
108 
     | 
    
         
             
            task :raap => :compile do
         
     | 
| 
       109 
     | 
    
         
            -
              sh %q[ 
     | 
| 
      
 109 
     | 
    
         
            +
              sh %q[ruby test/raap.rb | xargs bundle exec raap -r digest/bubblebabble --library digest --allow-private]
         
     | 
| 
       110 
110 
     | 
    
         
             
            end
         
     | 
| 
       111 
111 
     | 
    
         | 
| 
       112 
112 
     | 
    
         
             
            task :rubocop do
         
     | 
| 
       113 
     | 
    
         
            -
               
     | 
| 
      
 113 
     | 
    
         
            +
              format = if ENV["CI"]
         
     | 
| 
      
 114 
     | 
    
         
            +
                "github"
         
     | 
| 
      
 115 
     | 
    
         
            +
              else
         
     | 
| 
      
 116 
     | 
    
         
            +
                "progress"
         
     | 
| 
      
 117 
     | 
    
         
            +
              end
         
     | 
| 
      
 118 
     | 
    
         
            +
             
     | 
| 
      
 119 
     | 
    
         
            +
              sh "rubocop --parallel --format #{format}"
         
     | 
| 
       114 
120 
     | 
    
         
             
            end
         
     | 
| 
       115 
121 
     | 
    
         | 
| 
       116 
122 
     | 
    
         
             
            namespace :generate do
         
     | 
    
        data/core/array.rbs
    CHANGED
    
    | 
         @@ -600,8 +600,6 @@ class Array[unchecked out Elem] < Object 
     | 
|
| 
       600 
600 
     | 
    
         
             
              #
         
     | 
| 
       601 
601 
     | 
    
         
             
              def self.try_convert: [U] (untyped) -> ::Array[U]?
         
     | 
| 
       602 
602 
     | 
    
         | 
| 
       603 
     | 
    
         
            -
              public
         
     | 
| 
       604 
     | 
    
         
            -
             
     | 
| 
       605 
603 
     | 
    
         
             
              # <!--
         
     | 
| 
       606 
604 
     | 
    
         
             
              #   rdoc-file=array.c
         
     | 
| 
       607 
605 
     | 
    
         
             
              #   - array & other_array -> new_array
         
     | 
| 
         @@ -1082,7 +1080,7 @@ class Array[unchecked out Elem] < Object 
     | 
|
| 
       1082 
1080 
     | 
    
         
             
              #     a.at(0) # => :foo
         
     | 
| 
       1083 
1081 
     | 
    
         
             
              #     a.at(2) # => 2
         
     | 
| 
       1084 
1082 
     | 
    
         
             
              #
         
     | 
| 
       1085 
     | 
    
         
            -
              def at: (int index) -> Elem 
     | 
| 
      
 1083 
     | 
    
         
            +
              def at: %a{implicitly-returns-nil} (int index) -> Elem
         
     | 
| 
       1086 
1084 
     | 
    
         | 
| 
       1087 
1085 
     | 
    
         
             
              # <!--
         
     | 
| 
       1088 
1086 
     | 
    
         
             
              #   rdoc-file=array.c
         
     | 
| 
         @@ -1378,7 +1376,7 @@ class Array[unchecked out Elem] < Object 
     | 
|
| 
       1378 
1376 
     | 
    
         
             
              #
         
     | 
| 
       1379 
1377 
     | 
    
         
             
              # If `index` is too small (far from zero), returns nil.
         
     | 
| 
       1380 
1378 
     | 
    
         
             
              #
         
     | 
| 
       1381 
     | 
    
         
            -
              def delete_at: (int index) -> Elem 
     | 
| 
      
 1379 
     | 
    
         
            +
              def delete_at: %a{implicitly-returns-nil} (int index) -> Elem
         
     | 
| 
       1382 
1380 
     | 
    
         | 
| 
       1383 
1381 
     | 
    
         
             
              # <!--
         
     | 
| 
       1384 
1382 
     | 
    
         
             
              #   rdoc-file=array.c
         
     | 
| 
         @@ -1942,7 +1940,7 @@ class Array[unchecked out Elem] < Object 
     | 
|
| 
       1942 
1940 
     | 
    
         
             
              #
         
     | 
| 
       1943 
1941 
     | 
    
         
             
              # Related: #last.
         
     | 
| 
       1944 
1942 
     | 
    
         
             
              #
         
     | 
| 
       1945 
     | 
    
         
            -
              def first: () -> Elem 
     | 
| 
      
 1943 
     | 
    
         
            +
              def first: %a{implicitly-returns-nil} () -> Elem
         
     | 
| 
       1946 
1944 
     | 
    
         
             
                       | (int n) -> ::Array[Elem]
         
     | 
| 
       1947 
1945 
     | 
    
         | 
| 
       1948 
1946 
     | 
    
         
             
              # <!--
         
     | 
| 
         @@ -2241,7 +2239,7 @@ class Array[unchecked out Elem] < Object 
     | 
|
| 
       2241 
2239 
     | 
    
         
             
              #
         
     | 
| 
       2242 
2240 
     | 
    
         
             
              # Related: #first.
         
     | 
| 
       2243 
2241 
     | 
    
         
             
              #
         
     | 
| 
       2244 
     | 
    
         
            -
              def last: () -> Elem 
     | 
| 
      
 2242 
     | 
    
         
            +
              def last: %a{implicitly-returns-nil} () -> Elem
         
     | 
| 
       2245 
2243 
     | 
    
         
             
                      | (int n) -> ::Array[Elem]
         
     | 
| 
       2246 
2244 
     | 
    
         | 
| 
       2247 
2245 
     | 
    
         
             
              # <!--
         
     | 
| 
         @@ -2321,8 +2319,8 @@ class Array[unchecked out Elem] < Object 
     | 
|
| 
       2321 
2319 
     | 
    
         
             
              #
         
     | 
| 
       2322 
2320 
     | 
    
         
             
              #     ['0', '00', '000'].max(2) {|a, b| a.size <=> b.size } # => ["000", "00"]
         
     | 
| 
       2323 
2321 
     | 
    
         
             
              #
         
     | 
| 
       2324 
     | 
    
         
            -
              def max: () -> Elem 
     | 
| 
       2325 
     | 
    
         
            -
                     | () { (Elem a, Elem b) -> ::Integer? } -> Elem 
     | 
| 
      
 2322 
     | 
    
         
            +
              def max: %a{implicitly-returns-nil} () -> Elem
         
     | 
| 
      
 2323 
     | 
    
         
            +
                     | %a{implicitly-returns-nil} () { (Elem a, Elem b) -> ::Integer? } -> Elem
         
     | 
| 
       2326 
2324 
     | 
    
         
             
                     | (int n) -> ::Array[Elem]
         
     | 
| 
       2327 
2325 
     | 
    
         
             
                     | (int n) { (Elem a, Elem b) -> ::Integer? } -> ::Array[Elem]
         
     | 
| 
       2328 
2326 
     | 
    
         | 
| 
         @@ -3118,7 +3116,7 @@ class Array[unchecked out Elem] < Object 
     | 
|
| 
       3118 
3116 
     | 
    
         
             
              #     a.sample(random: Random.new(1))     #=> 6
         
     | 
| 
       3119 
3117 
     | 
    
         
             
              #     a.sample(4, random: Random.new(1))  #=> [6, 10, 9, 2]
         
     | 
| 
       3120 
3118 
     | 
    
         
             
              #
         
     | 
| 
       3121 
     | 
    
         
            -
              def sample: (?random: _Rand rng) -> Elem 
     | 
| 
      
 3119 
     | 
    
         
            +
              def sample: %a{implicitly-returns-nil} (?random: _Rand rng) -> Elem
         
     | 
| 
       3122 
3120 
     | 
    
         
             
                        | (int n, ?random: _Rand rng) -> ::Array[Elem]
         
     | 
| 
       3123 
3121 
     | 
    
         | 
| 
       3124 
3122 
     | 
    
         
             
              # <!--
         
     | 
| 
         @@ -3197,7 +3195,7 @@ class Array[unchecked out Elem] < Object 
     | 
|
| 
       3197 
3195 
     | 
    
         
             
              #
         
     | 
| 
       3198 
3196 
     | 
    
         
             
              # Related: #push, #pop, #unshift.
         
     | 
| 
       3199 
3197 
     | 
    
         
             
              #
         
     | 
| 
       3200 
     | 
    
         
            -
              def shift: () -> Elem 
     | 
| 
      
 3198 
     | 
    
         
            +
              def shift: %a{implicitly-returns-nil} () -> Elem
         
     | 
| 
       3201 
3199 
     | 
    
         
             
                       | (int n) -> ::Array[Elem]
         
     | 
| 
       3202 
3200 
     | 
    
         | 
| 
       3203 
3201 
     | 
    
         
             
              # <!--
         
     | 
| 
         @@ -3323,7 +3321,7 @@ class Array[unchecked out Elem] < Object 
     | 
|
| 
       3323 
3321 
     | 
    
         
             
              #     # Raises TypeError (no implicit conversion of Symbol into Integer):
         
     | 
| 
       3324 
3322 
     | 
    
         
             
              #     a[:foo]
         
     | 
| 
       3325 
3323 
     | 
    
         
             
              #
         
     | 
| 
       3326 
     | 
    
         
            -
              def slice: (int index) -> Elem 
     | 
| 
      
 3324 
     | 
    
         
            +
              def slice: %a{implicitly-returns-nil} (int index) -> Elem
         
     | 
| 
       3327 
3325 
     | 
    
         
             
                       | (int start, int length) -> ::Array[Elem]?
         
     | 
| 
       3328 
3326 
     | 
    
         
             
                       | (::Range[::Integer] range) -> ::Array[Elem]?
         
     | 
| 
       3329 
3327 
     | 
    
         | 
| 
         @@ -3393,7 +3391,7 @@ class Array[unchecked out Elem] < Object 
     | 
|
| 
       3393 
3391 
     | 
    
         
             
              #     a.slice!(-2..2) # => ["bar", 2]
         
     | 
| 
       3394 
3392 
     | 
    
         
             
              #     a # => [:foo]
         
     | 
| 
       3395 
3393 
     | 
    
         
             
              #
         
     | 
| 
       3396 
     | 
    
         
            -
              def slice!: (int index) -> Elem 
     | 
| 
      
 3394 
     | 
    
         
            +
              def slice!: %a{implicitly-returns-nil} (int index) -> Elem
         
     | 
| 
       3397 
3395 
     | 
    
         
             
                        | (int start, int length) -> ::Array[Elem]?
         
     | 
| 
       3398 
3396 
     | 
    
         
             
                        | (::Range[::Integer] range) -> ::Array[Elem]?
         
     | 
| 
       3399 
3397 
     | 
    
         | 
    
        data/core/basic_object.rbs
    CHANGED
    
    | 
         @@ -163,7 +163,7 @@ class BasicObject 
     | 
|
| 
       163 
163 
     | 
    
         
             
              #     k = Klass.new
         
     | 
| 
       164 
164 
     | 
    
         
             
              #     k.send :hello, "gentle", "readers"   #=> "Hello gentle readers"
         
     | 
| 
       165 
165 
     | 
    
         
             
              #
         
     | 
| 
       166 
     | 
    
         
            -
              def __send__: (interned name, *untyped, **untyped) ?{ ( 
     | 
| 
      
 166 
     | 
    
         
            +
              def __send__: (interned name, *untyped, **untyped) ?{ (?) -> untyped } -> untyped
         
     | 
| 
       167 
167 
     | 
    
         | 
| 
       168 
168 
     | 
    
         
             
              # <!-- rdoc-file=object.c -->
         
     | 
| 
       169 
169 
     | 
    
         
             
              # Equality --- At the Object level, #== returns `true` only if `obj` and `other`
         
     | 
| 
         @@ -248,7 +248,7 @@ class BasicObject 
     | 
|
| 
       248 
248 
     | 
    
         
             
              #     k = KlassWithSecret.new
         
     | 
| 
       249 
249 
     | 
    
         
             
              #     k.instance_exec(5) {|x| @secret+x }   #=> 104
         
     | 
| 
       250 
250 
     | 
    
         
             
              #
         
     | 
| 
       251 
     | 
    
         
            -
              def instance_exec: [U 
     | 
| 
      
 251 
     | 
    
         
            +
              def instance_exec: [U] (*untyped, **untyped) { (?) [self: self] -> U } -> U
         
     | 
| 
       252 
252 
     | 
    
         | 
| 
       253 
253 
     | 
    
         
             
              # <!--
         
     | 
| 
       254 
254 
     | 
    
         
             
              #   rdoc-file=object.c
         
     | 
| 
         @@ -256,7 +256,7 @@ class BasicObject 
     | 
|
| 
       256 
256 
     | 
    
         
             
              # -->
         
     | 
| 
       257 
257 
     | 
    
         
             
              # Returns a new BasicObject.
         
     | 
| 
       258 
258 
     | 
    
         
             
              #
         
     | 
| 
       259 
     | 
    
         
            -
              def initialize: () ->  
     | 
| 
      
 259 
     | 
    
         
            +
              def initialize: () -> void
         
     | 
| 
       260 
260 
     | 
    
         | 
| 
       261 
261 
     | 
    
         
             
              private
         
     | 
| 
       262 
262 
     | 
    
         | 
| 
         @@ -295,7 +295,7 @@ class BasicObject 
     | 
|
| 
       295 
295 
     | 
    
         
             
              #     r.mm      #=> 2000
         
     | 
| 
       296 
296 
     | 
    
         
             
              #     r.foo     #=> NoMethodError
         
     | 
| 
       297 
297 
     | 
    
         
             
              #
         
     | 
| 
       298 
     | 
    
         
            -
              def method_missing: (Symbol, *untyped, **untyped) ?{ ( 
     | 
| 
      
 298 
     | 
    
         
            +
              def method_missing: (Symbol, *untyped, **untyped) ?{ (?) -> untyped } -> untyped
         
     | 
| 
       299 
299 
     | 
    
         | 
| 
       300 
300 
     | 
    
         
             
              # <!--
         
     | 
| 
       301 
301 
     | 
    
         
             
              #   rdoc-file=object.c
         
     | 
    
        data/core/builtin.rbs
    CHANGED
    
    | 
         @@ -170,12 +170,12 @@ interface _Inspect 
     | 
|
| 
       170 
170 
     | 
    
         
             
              def inspect: () -> String
         
     | 
| 
       171 
171 
     | 
    
         
             
            end
         
     | 
| 
       172 
172 
     | 
    
         | 
| 
       173 
     | 
    
         
            -
            interface _Each[out  
     | 
| 
       174 
     | 
    
         
            -
              def each: () { ( 
     | 
| 
      
 173 
     | 
    
         
            +
            interface _Each[out E, out R = void]
         
     | 
| 
      
 174 
     | 
    
         
            +
              def each: () { (E) -> void } -> R
         
     | 
| 
       175 
175 
     | 
    
         
             
            end
         
     | 
| 
       176 
176 
     | 
    
         | 
| 
       177 
     | 
    
         
            -
            interface _EachEntry[out  
     | 
| 
       178 
     | 
    
         
            -
              def each_entry: () { ( 
     | 
| 
      
 177 
     | 
    
         
            +
            interface _EachEntry[out E]
         
     | 
| 
      
 178 
     | 
    
         
            +
              def each_entry: () { (E) -> void } -> self
         
     | 
| 
       179 
179 
     | 
    
         
             
            end
         
     | 
| 
       180 
180 
     | 
    
         | 
| 
       181 
181 
     | 
    
         
             
            interface _Reader
         
     | 
    
        data/core/complex.rbs
    CHANGED
    
    
    
        data/core/data.rbs
    CHANGED
    
    
    
        data/core/dir.rbs
    CHANGED
    
    | 
         @@ -182,7 +182,7 @@ class Dir 
     | 
|
| 
       182 
182 
     | 
    
         
             
              #     Dir.new('.').read.encoding                       # => #<Encoding:UTF-8>
         
     | 
| 
       183 
183 
     | 
    
         
             
              #     Dir.new('.', encoding: 'US-ASCII').read.encoding # => #<Encoding:US-ASCII>
         
     | 
| 
       184 
184 
     | 
    
         
             
              #
         
     | 
| 
       185 
     | 
    
         
            -
              def initialize: (path dir, ?encoding: encoding?) ->  
     | 
| 
      
 185 
     | 
    
         
            +
              def initialize: (path dir, ?encoding: encoding?) -> void
         
     | 
| 
       186 
186 
     | 
    
         | 
| 
       187 
187 
     | 
    
         
             
              # <!--
         
     | 
| 
       188 
188 
     | 
    
         
             
              #   rdoc-file=dir.rb
         
     | 
| 
         @@ -759,8 +759,6 @@ class Dir 
     | 
|
| 
       759 
759 
     | 
    
         
             
              #
         
     | 
| 
       760 
760 
     | 
    
         
             
              alias self.unlink self.delete
         
     | 
| 
       761 
761 
     | 
    
         | 
| 
       762 
     | 
    
         
            -
              public
         
     | 
| 
       763 
     | 
    
         
            -
             
     | 
| 
       764 
762 
     | 
    
         
             
              # <!--
         
     | 
| 
       765 
763 
     | 
    
         
             
              #   rdoc-file=dir.c
         
     | 
| 
       766 
764 
     | 
    
         
             
              #   - chdir -> 0
         
     | 
    
        data/core/encoding.rbs
    CHANGED
    
    
    
        data/core/enumerable.rbs
    CHANGED
    
    | 
         @@ -528,6 +528,12 @@ module Enumerable[unchecked out Elem] : _Each[Elem] 
     | 
|
| 
       528 
528 
     | 
    
         
             
              #
         
     | 
| 
       529 
529 
     | 
    
         
             
              def entries: () -> ::Array[Elem]
         
     | 
| 
       530 
530 
     | 
    
         | 
| 
      
 531 
     | 
    
         
            +
              def enum_for: (Symbol method, *untyped, **untyped) ?{ (?) -> Integer } -> Enumerator[untyped, untyped]
         
     | 
| 
      
 532 
     | 
    
         
            +
                          | () ?{ () -> Integer } -> Enumerator[Elem, self]
         
     | 
| 
      
 533 
     | 
    
         
            +
             
     | 
| 
      
 534 
     | 
    
         
            +
              %a{annotate:rdoc:skip}
         
     | 
| 
      
 535 
     | 
    
         
            +
              alias to_enum enum_for
         
     | 
| 
      
 536 
     | 
    
         
            +
             
     | 
| 
       531 
537 
     | 
    
         
             
              # <!--
         
     | 
| 
       532 
538 
     | 
    
         
             
              #   rdoc-file=enum.c
         
     | 
| 
       533 
539 
     | 
    
         
             
              #   - select {|element| ... } -> array
         
     | 
| 
         @@ -1293,7 +1299,7 @@ module Enumerable[unchecked out Elem] : _Each[Elem] 
     | 
|
| 
       1293 
1299 
     | 
    
         
             
              # With no block given, returns an Enumerator.
         
     | 
| 
       1294 
1300 
     | 
    
         
             
              #
         
     | 
| 
       1295 
1301 
     | 
    
         
             
              def reverse_each: () { (Elem arg0) -> untyped } -> void
         
     | 
| 
       1296 
     | 
    
         
            -
                              | () -> ::Enumerator[Elem 
     | 
| 
      
 1302 
     | 
    
         
            +
                              | () -> ::Enumerator[Elem]
         
     | 
| 
       1297 
1303 
     | 
    
         | 
| 
       1298 
1304 
     | 
    
         
             
              # <!--
         
     | 
| 
       1299 
1305 
     | 
    
         
             
              #   rdoc-file=enum.c
         
     | 
| 
         @@ -1754,7 +1760,7 @@ module Enumerable[unchecked out Elem] : _Each[Elem] 
     | 
|
| 
       1754 
1760 
     | 
    
         
             
              #     # show pythagorean triples less than 100
         
     | 
| 
       1755 
1761 
     | 
    
         
             
              #     p pythagorean_triples.take_while { |*, z| z < 100 }.force
         
     | 
| 
       1756 
1762 
     | 
    
         
             
              #
         
     | 
| 
       1757 
     | 
    
         
            -
              def lazy: () -> Enumerator::Lazy[Elem 
     | 
| 
      
 1763 
     | 
    
         
            +
              def lazy: () -> Enumerator::Lazy[Elem]
         
     | 
| 
       1758 
1764 
     | 
    
         | 
| 
       1759 
1765 
     | 
    
         
             
              # <!--
         
     | 
| 
       1760 
1766 
     | 
    
         
             
              #   rdoc-file=enum.c
         
     | 
| 
         @@ -1840,7 +1846,7 @@ module Enumerable[unchecked out Elem] : _Each[Elem] 
     | 
|
| 
       1840 
1846 
     | 
    
         
             
              #     e = (1..3).chain([4, 5])
         
     | 
| 
       1841 
1847 
     | 
    
         
             
              #     e.to_a #=> [1, 2, 3, 4, 5]
         
     | 
| 
       1842 
1848 
     | 
    
         
             
              #
         
     | 
| 
       1843 
     | 
    
         
            -
              def chain: (* 
     | 
| 
      
 1849 
     | 
    
         
            +
              def chain: [Elem2] (*_Each[Elem2] enumerables) -> ::Enumerator::Chain[Elem | Elem2]
         
     | 
| 
       1844 
1850 
     | 
    
         | 
| 
       1845 
1851 
     | 
    
         
             
              # <!--
         
     | 
| 
       1846 
1852 
     | 
    
         
             
              #   rdoc-file=enum.c
         
     | 
| 
         @@ -2086,8 +2092,8 @@ module Enumerable[unchecked out Elem] : _Each[Elem] 
     | 
|
| 
       2086 
2092 
     | 
    
         
             
              #       pp lines
         
     | 
| 
       2087 
2093 
     | 
    
         
             
              #     }
         
     | 
| 
       2088 
2094 
     | 
    
         
             
              #
         
     | 
| 
       2089 
     | 
    
         
            -
              def chunk: [U] () { (Elem elt) -> U } -> ::Enumerator[[ U, ::Array[Elem] ] 
     | 
| 
       2090 
     | 
    
         
            -
                       | () -> ::Enumerator[Elem, ::Enumerator[[ untyped, ::Array[Elem] ] 
     | 
| 
      
 2095 
     | 
    
         
            +
              def chunk: [U] () { (Elem elt) -> U } -> ::Enumerator[[ U, ::Array[Elem] ]]
         
     | 
| 
      
 2096 
     | 
    
         
            +
                       | () -> ::Enumerator[Elem, ::Enumerator[[ untyped, ::Array[Elem] ]]]
         
     | 
| 
       2091 
2097 
     | 
    
         | 
| 
       2092 
2098 
     | 
    
         
             
              # <!--
         
     | 
| 
       2093 
2099 
     | 
    
         
             
              #   rdoc-file=enum.c
         
     | 
| 
         @@ -2136,7 +2142,7 @@ module Enumerable[unchecked out Elem] : _Each[Elem] 
     | 
|
| 
       2136 
2142 
     | 
    
         
             
              # Enumerable#slice_when does the same, except splitting when the block returns
         
     | 
| 
       2137 
2143 
     | 
    
         
             
              # `true` instead of `false`.
         
     | 
| 
       2138 
2144 
     | 
    
         
             
              #
         
     | 
| 
       2139 
     | 
    
         
            -
              def chunk_while: () { (Elem elt_before, Elem elt_after) -> boolish } -> ::Enumerator[::Array[Elem] 
     | 
| 
      
 2145 
     | 
    
         
            +
              def chunk_while: () { (Elem elt_before, Elem elt_after) -> boolish } -> ::Enumerator[::Array[Elem]]
         
     | 
| 
       2140 
2146 
     | 
    
         | 
| 
       2141 
2147 
     | 
    
         
             
              # <!--
         
     | 
| 
       2142 
2148 
     | 
    
         
             
              #   rdoc-file=enum.c
         
     | 
| 
         @@ -2198,7 +2204,7 @@ module Enumerable[unchecked out Elem] : _Each[Elem] 
     | 
|
| 
       2198 
2204 
     | 
    
         
             
              # Enumerable#chunk_while does the same, except splitting when the block returns
         
     | 
| 
       2199 
2205 
     | 
    
         
             
              # `false` instead of `true`.
         
     | 
| 
       2200 
2206 
     | 
    
         
             
              #
         
     | 
| 
       2201 
     | 
    
         
            -
              def slice_when: () { (Elem elt_before, Elem elt_after) -> boolish } -> ::Enumerator[::Array[Elem] 
     | 
| 
      
 2207 
     | 
    
         
            +
              def slice_when: () { (Elem elt_before, Elem elt_after) -> boolish } -> ::Enumerator[::Array[Elem]]
         
     | 
| 
       2202 
2208 
     | 
    
         | 
| 
       2203 
2209 
     | 
    
         
             
              # <!--
         
     | 
| 
       2204 
2210 
     | 
    
         
             
              #   rdoc-file=enum.c
         
     | 
| 
         @@ -2233,8 +2239,8 @@ module Enumerable[unchecked out Elem] : _Each[Elem] 
     | 
|
| 
       2233 
2239 
     | 
    
         
             
              #     p e.map {|ll| ll[0...-1].map {|l| l.sub(/\\\n\z/, "") }.join + ll.last }
         
     | 
| 
       2234 
2240 
     | 
    
         
             
              #     #=>["foo\n", "barbaz\n", "\n", "qux\n"]
         
     | 
| 
       2235 
2241 
     | 
    
         
             
              #
         
     | 
| 
       2236 
     | 
    
         
            -
              def slice_after: (untyped pattern) -> ::Enumerator[::Array[Elem] 
     | 
| 
       2237 
     | 
    
         
            -
                             | () { (Elem elt) -> boolish } -> ::Enumerator[::Array[Elem] 
     | 
| 
      
 2242 
     | 
    
         
            +
              def slice_after: (untyped pattern) -> ::Enumerator[::Array[Elem]]
         
     | 
| 
      
 2243 
     | 
    
         
            +
                             | () { (Elem elt) -> boolish } -> ::Enumerator[::Array[Elem]]
         
     | 
| 
       2238 
2244 
     | 
    
         | 
| 
       2239 
2245 
     | 
    
         
             
              # <!--
         
     | 
| 
       2240 
2246 
     | 
    
         
             
              #   rdoc-file=enum.c
         
     | 
| 
         @@ -2390,6 +2396,6 @@ module Enumerable[unchecked out Elem] : _Each[Elem] 
     | 
|
| 
       2390 
2396 
     | 
    
         
             
              #       }
         
     | 
| 
       2391 
2397 
     | 
    
         
             
              #     }
         
     | 
| 
       2392 
2398 
     | 
    
         
             
              #
         
     | 
| 
       2393 
     | 
    
         
            -
              def slice_before: (untyped pattern) -> ::Enumerator[::Array[Elem] 
     | 
| 
       2394 
     | 
    
         
            -
                              | () { (Elem elt) -> boolish } -> ::Enumerator[::Array[Elem] 
     | 
| 
      
 2399 
     | 
    
         
            +
              def slice_before: (untyped pattern) -> ::Enumerator[::Array[Elem]]
         
     | 
| 
      
 2400 
     | 
    
         
            +
                              | () { (Elem elt) -> boolish } -> ::Enumerator[::Array[Elem]]
         
     | 
| 
       2395 
2401 
     | 
    
         
             
            end
         
     | 
    
        data/core/enumerator/product.rbs
    CHANGED
    
    | 
         @@ -1,5 +1,5 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            %a{annotate:rdoc:skip}
         
     | 
| 
       2 
     | 
    
         
            -
            class Enumerator[unchecked out Elem, out Return]
         
     | 
| 
      
 2 
     | 
    
         
            +
            class Enumerator[unchecked out Elem, out Return = void]
         
     | 
| 
       3 
3 
     | 
    
         
             
              # <!-- rdoc-file=enumerator.c -->
         
     | 
| 
       4 
4 
     | 
    
         
             
              # Enumerator::Product generates a Cartesian product of any number of enumerable
         
     | 
| 
       5 
5 
     | 
    
         
             
              # objects.  Iterating over the product of enumerable objects is roughly
         
     | 
| 
         @@ -44,8 +44,6 @@ class Enumerator[unchecked out Elem, out Return] 
     | 
|
| 
       44 
44 
     | 
    
         
             
                #
         
     | 
| 
       45 
45 
     | 
    
         
             
                def initialize: (*_EachEntry[Elem]) -> void
         
     | 
| 
       46 
46 
     | 
    
         | 
| 
       47 
     | 
    
         
            -
                public
         
     | 
| 
       48 
     | 
    
         
            -
             
     | 
| 
       49 
47 
     | 
    
         
             
                # <!--
         
     | 
| 
       50 
48 
     | 
    
         
             
                #   rdoc-file=enumerator.c
         
     | 
| 
       51 
49 
     | 
    
         
             
                #   - obj.each { |...| ... } -> obj
         
     | 
    
        data/core/enumerator.rbs
    CHANGED
    
    | 
         @@ -127,9 +127,16 @@ 
     | 
|
| 
       127 
127 
     | 
    
         
             
            #     puts ext_each(o.to_enum) {|*x| puts x; [:b, *x] }
         
     | 
| 
       128 
128 
     | 
    
         
             
            #     # => [], [:b], [1], [:b, 1], [1, 2], [:b, 1, 2], 3
         
     | 
| 
       129 
129 
     | 
    
         
             
            #
         
     | 
| 
       130 
     | 
    
         
            -
            class Enumerator[unchecked out Elem, out Return] < Object
         
     | 
| 
      
 130 
     | 
    
         
            +
            class Enumerator[unchecked out Elem, out Return = void] < Object
         
     | 
| 
       131 
131 
     | 
    
         
             
              include Enumerable[Elem]
         
     | 
| 
       132 
132 
     | 
    
         | 
| 
      
 133 
     | 
    
         
            +
              # A convenience interface for `each` with optional block
         
     | 
| 
      
 134 
     | 
    
         
            +
              #
         
     | 
| 
      
 135 
     | 
    
         
            +
              interface _Each[out E, out R]
         
     | 
| 
      
 136 
     | 
    
         
            +
                def each: () { (E) -> void } -> R
         
     | 
| 
      
 137 
     | 
    
         
            +
                        | () -> Enumerator[E, R]
         
     | 
| 
      
 138 
     | 
    
         
            +
              end
         
     | 
| 
      
 139 
     | 
    
         
            +
             
     | 
| 
       133 
140 
     | 
    
         
             
              # <!--
         
     | 
| 
       134 
141 
     | 
    
         
             
              #   rdoc-file=enumerator.c
         
     | 
| 
       135 
142 
     | 
    
         
             
              #   - Enumerator.produce(initial = nil) { |prev| block } -> enumerator
         
     | 
| 
         @@ -560,7 +567,7 @@ end 
     | 
|
| 
       560 
567 
     | 
    
         
             
            #     # This returns an array of items like a normal enumerator does.
         
     | 
| 
       561 
568 
     | 
    
         
             
            #     all_checked = active_items.select(&:checked)
         
     | 
| 
       562 
569 
     | 
    
         
             
            #
         
     | 
| 
       563 
     | 
    
         
            -
            class Enumerator::Lazy[out Elem, out Return] < Enumerator[Elem, Return]
         
     | 
| 
      
 570 
     | 
    
         
            +
            class Enumerator::Lazy[out Elem, out Return = void] < Enumerator[Elem, Return]
         
     | 
| 
       564 
571 
     | 
    
         
             
              # <!-- rdoc-file=enumerator.c -->
         
     | 
| 
       565 
572 
     | 
    
         
             
              # Expands `lazy` enumerator to an array. See Enumerable#to_a.
         
     | 
| 
       566 
573 
     | 
    
         
             
              #
         
     |