rbs 3.2.2 → 3.3.0.pre.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/comments.yml +1 -1
- data/.github/workflows/ruby.yml +7 -2
- data/CHANGELOG.md +85 -0
- data/Gemfile.lock +14 -14
- data/README.md +11 -2
- data/Rakefile +10 -7
- data/Steepfile +7 -7
- data/core/basic_object.rbs +7 -7
- data/core/binding.rbs +3 -3
- data/core/builtin.rbs +171 -5
- data/core/constants.rbs +17 -17
- data/core/dir.rbs +3 -3
- data/core/encoding.rbs +434 -628
- data/core/enumerator.rbs +37 -0
- data/core/exception.rbs +11 -11
- data/core/false_class.rbs +5 -11
- data/core/fiber.rbs +3 -3
- data/core/file_test.rbs +28 -26
- data/core/kernel.rbs +900 -21
- data/core/marshal.rbs +24 -14
- data/core/match_data.rbs +8 -8
- data/core/math.rbs +57 -53
- data/core/method.rbs +3 -1
- data/core/module.rbs +38 -36
- data/core/nil_class.rbs +7 -13
- data/core/object.rbs +3 -966
- data/core/process.rbs +3 -3
- data/core/ractor.rbs +2 -2
- data/core/rb_config.rbs +64 -43
- data/core/regexp.rbs +3 -3
- data/core/signal.rbs +10 -4
- data/core/struct.rbs +1 -1
- data/core/thread.rbs +7 -7
- data/core/thread_group.rbs +9 -9
- data/core/true_class.rbs +5 -11
- data/core/unbound_method.rbs +56 -7
- data/core/warning.rbs +33 -0
- data/docs/collection.md +56 -6
- data/docs/data_and_struct.md +57 -0
- data/docs/stdlib.md +61 -2
- data/docs/syntax.md +123 -2
- data/ext/rbs_extension/lexer.c +624 -569
- data/ext/rbs_extension/lexer.h +1 -0
- data/ext/rbs_extension/lexer.re +1 -0
- data/ext/rbs_extension/lexstate.c +1 -0
- data/ext/rbs_extension/parser.c +6 -0
- data/goodcheck.yml +2 -2
- data/lib/rbs/annotate/formatter.rb +13 -3
- data/lib/rbs/annotate/rdoc_source.rb +10 -1
- data/lib/rbs/cli/colored_io.rb +48 -0
- data/lib/rbs/cli/diff.rb +80 -0
- data/lib/rbs/cli.rb +151 -16
- data/lib/rbs/collection/config/lockfile.rb +0 -25
- data/lib/rbs/collection/config/lockfile_generator.rb +0 -6
- data/lib/rbs/collection/installer.rb +1 -1
- data/lib/rbs/collection/sources/git.rb +6 -4
- data/lib/rbs/collection/sources/local.rb +7 -5
- data/lib/rbs/diff.rb +104 -0
- data/lib/rbs/environment.rb +1 -1
- data/lib/rbs/method_type.rb +23 -0
- data/lib/rbs/prototype/rb.rb +2 -9
- data/lib/rbs/prototype/runtime/helpers.rb +59 -0
- data/lib/rbs/prototype/runtime/value_object_generator.rb +236 -0
- data/lib/rbs/prototype/runtime.rb +234 -150
- data/lib/rbs/sorter.rb +144 -117
- data/lib/rbs/test/guaranteed.rb +31 -0
- data/lib/rbs/test/type_check.rb +4 -4
- data/lib/rbs/test.rb +3 -0
- data/lib/rbs/types.rb +184 -3
- data/lib/rbs/version.rb +1 -1
- data/lib/rbs/writer.rb +4 -4
- data/lib/rbs.rb +1 -0
- data/rbs.gemspec +1 -0
- 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.rbs +2 -0
- data/sig/collection/config/lockfile.rbs +0 -6
- data/sig/diff.rbs +23 -0
- data/sig/errors.rbs +1 -5
- data/sig/method_types.rbs +6 -0
- data/sig/prototype/runtime.rbs +108 -0
- data/sig/rdoc/rbs.rbs +4 -0
- data/sig/shims/bundler.rbs +5 -0
- data/sig/sorter.rbs +23 -5
- data/sig/types.rbs +29 -0
- data/stdlib/benchmark/0/benchmark.rbs +1 -1
- data/stdlib/cgi/0/core.rbs +2 -2
- data/stdlib/did_you_mean/0/did_you_mean.rbs +2 -2
- data/stdlib/digest/0/digest.rbs +1 -1
- data/stdlib/fileutils/0/fileutils.rbs +1 -1
- data/stdlib/forwardable/0/forwardable.rbs +4 -4
- data/stdlib/io-console/0/io-console.rbs +1 -1
- data/stdlib/json/0/json.rbs +37 -0
- data/stdlib/logger/0/logger.rbs +2 -2
- data/stdlib/net-http/0/manifest.yaml +1 -1
- data/stdlib/net-http/0/net-http.rbs +16 -63
- data/stdlib/net-protocol/0/manifest.yaml +2 -0
- data/stdlib/net-protocol/0/net-protocol.rbs +56 -0
- data/stdlib/openssl/0/openssl.rbs +1 -1
- data/stdlib/pp/0/manifest.yaml +2 -0
- data/stdlib/pp/0/pp.rbs +301 -0
- data/stdlib/{yaml → psych}/0/dbm.rbs +3 -3
- data/stdlib/psych/0/manifest.yaml +3 -0
- data/stdlib/psych/0/psych.rbs +391 -0
- data/stdlib/{yaml → psych}/0/store.rbs +2 -2
- data/stdlib/rdoc/0/code_object.rbs +55 -0
- data/stdlib/rdoc/0/comment.rbs +60 -0
- data/stdlib/rdoc/0/context.rbs +153 -0
- data/stdlib/rdoc/0/markup.rbs +119 -0
- data/stdlib/rdoc/0/parser.rbs +56 -0
- data/stdlib/rdoc/0/rdoc.rbs +0 -372
- 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/socket/0/basic_socket.rbs +1 -1
- data/stdlib/socket/0/socket.rbs +1 -1
- data/stdlib/uri/0/common.rbs +1 -1
- data/stdlib/yaml/0/manifest.yaml +1 -2
- data/stdlib/yaml/0/yaml.rbs +1 -199
- metadata +46 -9
- data/sig/shims/pp.rbs +0 -3
- data/sig/shims.rbs +0 -47
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 0ce19044f9943d12d17256e09e0296aca13a4284b9e2f76de3b130c002ed9244
|
|
4
|
+
data.tar.gz: d3b2b843cf28aeb5ef4608356aa0eb2d958d4392f541fe91e5e00e7f68a40fc4
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 02e143cf64af949a560f3b41b9d1a1756375ae0456182a3b727b985db88d5f5fe092887d21c3237036ddf177f19661ef80f03c6daa96fdd6840e727d579f1018
|
|
7
|
+
data.tar.gz: 38df75f2912926a63b6082a4515b063e8f4c71d9e3c820adb0b2ee6e7030464fa3702faad28b04b221facb31c79c5aff0f96b7f4d2624b1b399378fc5bcd6168
|
data/.github/workflows/ruby.yml
CHANGED
|
@@ -11,6 +11,7 @@ jobs:
|
|
|
11
11
|
test:
|
|
12
12
|
runs-on: "ubuntu-latest"
|
|
13
13
|
strategy:
|
|
14
|
+
fail-fast: false
|
|
14
15
|
matrix:
|
|
15
16
|
container_tag:
|
|
16
17
|
- master-nightly-focal
|
|
@@ -30,10 +31,13 @@ jobs:
|
|
|
30
31
|
job: stdlib_test
|
|
31
32
|
- container_tag: 3.1-dev-focal
|
|
32
33
|
job: stdlib_test
|
|
34
|
+
include:
|
|
35
|
+
- container_tag: master-nightly-focal
|
|
36
|
+
allow_failures: "true"
|
|
33
37
|
container:
|
|
34
38
|
image: rubylang/ruby:${{ matrix.container_tag }}
|
|
35
39
|
steps:
|
|
36
|
-
- uses: actions/checkout@
|
|
40
|
+
- uses: actions/checkout@v4
|
|
37
41
|
- name: Set working directory as safe
|
|
38
42
|
run: git config --global --add safe.directory $(pwd)
|
|
39
43
|
- name: Install dependencies
|
|
@@ -66,6 +70,7 @@ jobs:
|
|
|
66
70
|
- name: Run test
|
|
67
71
|
run: |
|
|
68
72
|
bundle exec rake ${{ matrix.job }}
|
|
73
|
+
continue-on-error: ${{ matrix.allow_failures == 'true' && (github.event_name == 'push' || github.event_name == 'merge_group') }}
|
|
69
74
|
|
|
70
75
|
windows:
|
|
71
76
|
runs-on: ${{ matrix.os }}
|
|
@@ -75,7 +80,7 @@ jobs:
|
|
|
75
80
|
os: [windows-2019, windows-2022]
|
|
76
81
|
ruby: [ucrt, mswin]
|
|
77
82
|
steps:
|
|
78
|
-
- uses: actions/checkout@
|
|
83
|
+
- uses: actions/checkout@v4
|
|
79
84
|
- name: load ruby
|
|
80
85
|
uses: ruby/setup-ruby@v1
|
|
81
86
|
with:
|
data/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,91 @@
|
|
|
2
2
|
|
|
3
3
|
## master
|
|
4
4
|
|
|
5
|
+
## 3.3.0.pre.1 (2023-10-31)
|
|
6
|
+
|
|
7
|
+
### Signature updates
|
|
8
|
+
|
|
9
|
+
* json ([#1575](https://github.com/ruby/rbs/pull/1575))
|
|
10
|
+
* net-protocol ([#1559](https://github.com/ruby/rbs/pull/1559))
|
|
11
|
+
* pp ([#1545](https://github.com/ruby/rbs/pull/1545))
|
|
12
|
+
* psych ([#1527](https://github.com/ruby/rbs/pull/1527))
|
|
13
|
+
* `BasicObject` ([#1506](https://github.com/ruby/rbs/pull/1506))
|
|
14
|
+
* `ConditionVariable` ([#1468](https://github.com/ruby/rbs/pull/1468))
|
|
15
|
+
* `Encoding` ([#1510](https://github.com/ruby/rbs/pull/1510))
|
|
16
|
+
* `Exception` ([#1529](https://github.com/ruby/rbs/pull/1529))
|
|
17
|
+
* `FalseClass` ([#1478](https://github.com/ruby/rbs/pull/1478), [#1487](https://github.com/ruby/rbs/pull/1487))
|
|
18
|
+
* `Fiber` ([#1463](https://github.com/ruby/rbs/pull/1463))
|
|
19
|
+
* `FileTest` ([#1500](https://github.com/ruby/rbs/pull/1500))
|
|
20
|
+
* `Kernel` ([#1567](https://github.com/ruby/rbs/pull/1567), [#1518](https://github.com/ruby/rbs/pull/1518), [#1504](https://github.com/ruby/rbs/pull/1504), [#1487](https://github.com/ruby/rbs/pull/1487))
|
|
21
|
+
* `Marshal` ([#1524](https://github.com/ruby/rbs/pull/1524))
|
|
22
|
+
* `Math` ([#1533](https://github.com/ruby/rbs/pull/1533))
|
|
23
|
+
* `Mutex` ([#1468](https://github.com/ruby/rbs/pull/1468))
|
|
24
|
+
* `NilClass` ([#1478](https://github.com/ruby/rbs/pull/1478), [#1487](https://github.com/ruby/rbs/pull/1487))
|
|
25
|
+
* `Object` ([#1504](https://github.com/ruby/rbs/pull/1504))
|
|
26
|
+
* `Queue` ([#1468](https://github.com/ruby/rbs/pull/1468))
|
|
27
|
+
* `RbConfig` ([#1534](https://github.com/ruby/rbs/pull/1534))
|
|
28
|
+
* `Signal` ([#1512](https://github.com/ruby/rbs/pull/1512))
|
|
29
|
+
* `SizedQueue` ([#1468](https://github.com/ruby/rbs/pull/1468))
|
|
30
|
+
* `ThreadGroup` ([#1509](https://github.com/ruby/rbs/pull/1509))
|
|
31
|
+
* `TrueClass` ([#1478](https://github.com/ruby/rbs/pull/1478), [#1487](https://github.com/ruby/rbs/pull/1487))
|
|
32
|
+
* `Warning` ([#1477](https://github.com/ruby/rbs/pull/1477))
|
|
33
|
+
* `Enumerator.produce` ([#1516](https://github.com/ruby/rbs/pull/1516))
|
|
34
|
+
* `Module.define_method` ([#1557](https://github.com/ruby/rbs/pull/1557))
|
|
35
|
+
* `URI.join` ([#1580](https://github.com/ruby/rbs/pull/1580))
|
|
36
|
+
* `YAML.unsafe_load` ([#1528](https://github.com/ruby/rbs/pull/1528))
|
|
37
|
+
* `builtin.rbs`([#1455](https://github.com/ruby/rbs/pull/1455), [#1469](https://github.com/ruby/rbs/pull/1469))
|
|
38
|
+
* `constants.rbs` ([#1531](https://github.com/ruby/rbs/pull/1531))
|
|
39
|
+
* `::interned` ([#1499](https://github.com/ruby/rbs/pull/1499), [#1488](https://github.com/ruby/rbs/pull/1488))
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
### Language updates
|
|
43
|
+
|
|
44
|
+
* Add `__todo__` type ([#1520](https://github.com/ruby/rbs/pull/1520))
|
|
45
|
+
|
|
46
|
+
### Library changes
|
|
47
|
+
|
|
48
|
+
* Colored diff ([#1589](https://github.com/ruby/rbs/pull/1589))
|
|
49
|
+
* Fix the issue where ::array[T] would be interpreted as ::array, and type mismatch ([#1491](https://github.com/ruby/rbs/pull/1491))
|
|
50
|
+
* Add `Abbrev` to runtime dependency ([#1573](https://github.com/ruby/rbs/pull/1573))
|
|
51
|
+
* Avoid an error when parsing files including SyntaxError ([#1574](https://github.com/ruby/rbs/pull/1574))
|
|
52
|
+
* Implement rbs diff command ([#1459](https://github.com/ruby/rbs/pull/1459))
|
|
53
|
+
* Add another type syntax validation ([#1566](https://github.com/ruby/rbs/pull/1566))* Mark global variables ([#1551](https://github.com/ruby/rbs/pull/1551))
|
|
54
|
+
* Show location of type by method command ([#1537](https://github.com/ruby/rbs/pull/1537))* Make alias and interface names absolute ([#1502](https://github.com/ruby/rbs/pull/1502))
|
|
55
|
+
* Better record type format ([#1501](https://github.com/ruby/rbs/pull/1501))
|
|
56
|
+
* Should keep escape of alias and attr family ([#1486](https://github.com/ruby/rbs/pull/1486))
|
|
57
|
+
* Fix error when undefined interface or alias ([#1465](https://github.com/ruby/rbs/pull/1465))
|
|
58
|
+
|
|
59
|
+
#### rbs prototype
|
|
60
|
+
|
|
61
|
+
* [prototype runtime --todo] Consider accessibility mismatch ([#1539](https://github.com/ruby/rbs/pull/1539))
|
|
62
|
+
* Better support for inherited class of `Struct` or `Data` by prototype runtime ([#1571](https://github.com/ruby/rbs/pull/1571))
|
|
63
|
+
* prototype rb: Ignore ITER (method call with block) ([#1562](https://github.com/ruby/rbs/pull/1562))
|
|
64
|
+
* [prototype runtime] Add --autoload option ([#1561](https://github.com/ruby/rbs/pull/1561))
|
|
65
|
+
* Implement todo option ([#1470](https://github.com/ruby/rbs/pull/1470))
|
|
66
|
+
* [prototype runtime] Fix error when constant is a BasicObject instance. ([#1485](https://github.com/ruby/rbs/pull/1485))
|
|
67
|
+
* [prototype runtime] Const name should be absolute ([#1490](https://github.com/ruby/rbs/pull/1490))
|
|
68
|
+
* [prototype runtime] Optimize performance ([#1495](https://github.com/ruby/rbs/pull/1495))
|
|
69
|
+
* [prototype runtime] Fix error when output Object constants ([#1472](https://github.com/ruby/rbs/pull/1472))
|
|
70
|
+
* [prototype runtime] Support prepend mixin ([#1460](https://github.com/ruby/rbs/pull/1460))
|
|
71
|
+
* [prototype runtime] Avoid alias for methods defined in another module ([#1457](https://github.com/ruby/rbs/pull/1457))
|
|
72
|
+
|
|
73
|
+
#### rbs collection
|
|
74
|
+
|
|
75
|
+
* [Collection] Simple colorize collection text like Bundler ([#1558](https://github.com/ruby/rbs/pull/1558))
|
|
76
|
+
* Delete `sources` section from lockfile ([#1544](https://github.com/ruby/rbs/pull/1544))
|
|
77
|
+
|
|
78
|
+
### Miscellaneous
|
|
79
|
+
|
|
80
|
+
* Add in with_XXX methods ([#1492](https://github.com/ruby/rbs/pull/1492))
|
|
81
|
+
* Updated binding to use modern kernel tests ([#1507](https://github.com/ruby/rbs/pull/1507))
|
|
82
|
+
* Remove all non-required methods from testing types ([#1541](https://github.com/ruby/rbs/pull/1541))
|
|
83
|
+
* Add `assert_type` assertion to confirm if the value has a type ([#1532](https://github.com/ruby/rbs/pull/1532))
|
|
84
|
+
* Add `#assert_const_type` and guide to use type assertions ([#1514](https://github.com/ruby/rbs/pull/1514))
|
|
85
|
+
* Improve skip test message ([#1476](https://github.com/ruby/rbs/pull/1476))
|
|
86
|
+
* Type check ([#1467](https://github.com/ruby/rbs/pull/1467))
|
|
87
|
+
* Type check RDoc related Ruby code ([#1466](https://github.com/ruby/rbs/pull/1466))
|
|
88
|
+
* Fix CI failure ([#1464](https://github.com/ruby/rbs/pull/1464))
|
|
89
|
+
|
|
5
90
|
## 3.2.2 (2023-09-28)
|
|
6
91
|
|
|
7
92
|
### Library changes
|
data/Gemfile.lock
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
rbs (3.
|
|
4
|
+
rbs (3.3.0.pre.1)
|
|
5
|
+
abbrev
|
|
5
6
|
|
|
6
7
|
PATH
|
|
7
8
|
remote: test/assets/test-gem
|
|
@@ -11,10 +12,10 @@ PATH
|
|
|
11
12
|
GEM
|
|
12
13
|
remote: https://rubygems.org/
|
|
13
14
|
specs:
|
|
14
|
-
|
|
15
|
+
abbrev (0.1.1)
|
|
16
|
+
addressable (2.8.5)
|
|
15
17
|
public_suffix (>= 2.0.2, < 6.0)
|
|
16
18
|
ast (2.4.2)
|
|
17
|
-
base64 (0.1.1)
|
|
18
19
|
dbm (1.1.0)
|
|
19
20
|
diff-lcs (1.5.0)
|
|
20
21
|
digest (3.1.1)
|
|
@@ -24,27 +25,27 @@ GEM
|
|
|
24
25
|
rainbow (>= 3.0, < 4.0)
|
|
25
26
|
strong_json (>= 1.1, < 2.2)
|
|
26
27
|
json (2.6.3)
|
|
27
|
-
json-schema (4.
|
|
28
|
+
json-schema (4.1.1)
|
|
28
29
|
addressable (>= 2.8)
|
|
29
30
|
language_server-protocol (3.17.0.3)
|
|
30
31
|
marcel (1.0.2)
|
|
31
|
-
minitest (5.
|
|
32
|
+
minitest (5.20.0)
|
|
32
33
|
parallel (1.23.0)
|
|
33
|
-
parser (3.2.2.
|
|
34
|
+
parser (3.2.2.4)
|
|
34
35
|
ast (~> 2.4.1)
|
|
35
36
|
racc
|
|
36
37
|
power_assert (2.0.3)
|
|
37
38
|
psych (4.0.6)
|
|
38
39
|
stringio
|
|
39
|
-
public_suffix (5.0.
|
|
40
|
+
public_suffix (5.0.3)
|
|
40
41
|
racc (1.7.1)
|
|
41
42
|
rainbow (3.1.1)
|
|
42
|
-
rake (13.0
|
|
43
|
+
rake (13.1.0)
|
|
43
44
|
rake-compiler (1.2.5)
|
|
44
45
|
rake
|
|
45
46
|
rdoc (6.4.0)
|
|
46
47
|
psych (>= 4.0.0)
|
|
47
|
-
regexp_parser (2.8.
|
|
48
|
+
regexp_parser (2.8.2)
|
|
48
49
|
rexml (3.2.6)
|
|
49
50
|
rspec (3.12.0)
|
|
50
51
|
rspec-core (~> 3.12.0)
|
|
@@ -59,19 +60,18 @@ GEM
|
|
|
59
60
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
60
61
|
rspec-support (~> 3.12.0)
|
|
61
62
|
rspec-support (3.12.0)
|
|
62
|
-
rubocop (1.
|
|
63
|
-
base64 (~> 0.1.1)
|
|
63
|
+
rubocop (1.57.2)
|
|
64
64
|
json (~> 2.3)
|
|
65
65
|
language_server-protocol (>= 3.17.0)
|
|
66
66
|
parallel (~> 1.10)
|
|
67
|
-
parser (>= 3.2.2.
|
|
67
|
+
parser (>= 3.2.2.4)
|
|
68
68
|
rainbow (>= 2.2.2, < 4.0)
|
|
69
69
|
regexp_parser (>= 1.8, < 3.0)
|
|
70
70
|
rexml (>= 3.2.5, < 4.0)
|
|
71
71
|
rubocop-ast (>= 1.28.1, < 2.0)
|
|
72
72
|
ruby-progressbar (~> 1.7)
|
|
73
73
|
unicode-display_width (>= 2.4.0, < 3.0)
|
|
74
|
-
rubocop-ast (1.
|
|
74
|
+
rubocop-ast (1.30.0)
|
|
75
75
|
parser (>= 3.2.1.0)
|
|
76
76
|
rubocop-rubycw (0.1.6)
|
|
77
77
|
rubocop (~> 1.0)
|
|
@@ -82,7 +82,7 @@ GEM
|
|
|
82
82
|
tempfile (0.1.3)
|
|
83
83
|
test-unit (3.6.1)
|
|
84
84
|
power_assert
|
|
85
|
-
unicode-display_width (2.
|
|
85
|
+
unicode-display_width (2.5.0)
|
|
86
86
|
|
|
87
87
|
PLATFORMS
|
|
88
88
|
ruby
|
data/README.md
CHANGED
|
@@ -54,8 +54,8 @@ end
|
|
|
54
54
|
|
|
55
55
|
## The Target Version
|
|
56
56
|
|
|
57
|
-
* The standard library signatures targets
|
|
58
|
-
* The library code targets
|
|
57
|
+
* The standard library signatures targets the latest release of Ruby. (`3.2` as of 2023.)
|
|
58
|
+
* The library code targets non-EOL versions of Ruby. (`>= 3.0` as of 2023.)
|
|
59
59
|
|
|
60
60
|
## Installation
|
|
61
61
|
|
|
@@ -132,6 +132,15 @@ puts singleton.methods[:gsub]
|
|
|
132
132
|
- [Stdlib signatures guide](docs/stdlib.md)
|
|
133
133
|
- [Syntax](docs/syntax.md)
|
|
134
134
|
- [RBS by Example](docs/rbs_by_example.md)
|
|
135
|
+
- [RBS collection](docs/collection.md)
|
|
136
|
+
- [Using `Data` and `Struct`](docs/data_and_struct.md)
|
|
137
|
+
|
|
138
|
+
## Community
|
|
139
|
+
|
|
140
|
+
Here is a list of some places you can talk with active maintainers.
|
|
141
|
+
|
|
142
|
+
- [Ruby Discord Server (invite link)](https://discord.gg/ad2acQFtkh) -- We have `rbs` channel in Ruby Discord server.
|
|
143
|
+
- [ruby-jp Slack Workspace (in Japanese)](https://ruby-jp.github.io/) -- We have `types` channel in ruby-jp slack workspace.
|
|
135
144
|
|
|
136
145
|
## Development
|
|
137
146
|
|
data/Rakefile
CHANGED
|
@@ -84,11 +84,12 @@ end
|
|
|
84
84
|
|
|
85
85
|
task :stdlib_test => :compile do
|
|
86
86
|
test_files = FileList["test/stdlib/**/*_test.rb"].reject do |path|
|
|
87
|
-
path =~ %r{Ractor}
|
|
87
|
+
path =~ %r{Ractor} || path =~ %r{Encoding}
|
|
88
88
|
end
|
|
89
89
|
sh "#{ruby} -Ilib #{bin}/test_runner.rb #{test_files.join(' ')}"
|
|
90
90
|
# TODO: Ractor tests need to be run in a separate process
|
|
91
91
|
sh "#{ruby} -Ilib #{bin}/test_runner.rb test/stdlib/Ractor_test.rb"
|
|
92
|
+
sh "#{ruby} -Ilib #{bin}/test_runner.rb test/stdlib/Encoding_test.rb"
|
|
92
93
|
end
|
|
93
94
|
|
|
94
95
|
task :rubocop do
|
|
@@ -157,13 +158,14 @@ namespace :generate do
|
|
|
157
158
|
# library "pathname", "securerandom" # Declare library signatures to load
|
|
158
159
|
testing "singleton(::<%= target %>)"
|
|
159
160
|
|
|
160
|
-
<%- class_methods.each do |method_name, definition|
|
|
161
|
+
<%- class_methods.each do |method_name, definition| -%>
|
|
161
162
|
def test_<%= test_name_for(method_name) %>
|
|
162
163
|
<%- definition.method_types.each do |method_type| -%>
|
|
163
|
-
assert_send_type
|
|
164
|
-
|
|
164
|
+
assert_send_type "<%= method_type %>",
|
|
165
|
+
<%= target %>, :<%= method_name %>
|
|
165
166
|
<%- end -%>
|
|
166
167
|
end
|
|
168
|
+
|
|
167
169
|
<%- end -%>
|
|
168
170
|
end
|
|
169
171
|
<%- end -%>
|
|
@@ -175,13 +177,14 @@ namespace :generate do
|
|
|
175
177
|
# library "pathname", "securerandom" # Declare library signatures to load
|
|
176
178
|
testing "::<%= target %>"
|
|
177
179
|
|
|
178
|
-
<%- instance_methods.each do |method_name, definition|
|
|
180
|
+
<%- instance_methods.each do |method_name, definition| -%>
|
|
179
181
|
def test_<%= test_name_for(method_name) %>
|
|
180
182
|
<%- definition.method_types.each do |method_type| -%>
|
|
181
|
-
assert_send_type
|
|
182
|
-
|
|
183
|
+
assert_send_type "<%= method_type %>",
|
|
184
|
+
<%= target %>.new, :<%= method_name %>
|
|
183
185
|
<%- end -%>
|
|
184
186
|
end
|
|
187
|
+
|
|
185
188
|
<%- end -%>
|
|
186
189
|
end
|
|
187
190
|
<%- end -%>
|
data/Steepfile
CHANGED
|
@@ -4,23 +4,23 @@ target :lib do
|
|
|
4
4
|
signature "sig"
|
|
5
5
|
check "lib"
|
|
6
6
|
ignore(
|
|
7
|
-
"lib/rbs/prototype/runtime.rb",
|
|
8
7
|
"lib/rbs/test",
|
|
9
8
|
"lib/rbs/test.rb"
|
|
10
9
|
)
|
|
11
10
|
|
|
12
|
-
library "pathname", "json", "logger", "monitor", "tsort", "uri", 'dbm', 'pstore', 'singleton', 'shellwords', 'fileutils', 'find', 'digest', 'abbrev'
|
|
11
|
+
library "pathname", "json", "logger", "monitor", "tsort", "uri", 'dbm', 'pstore', 'singleton', 'shellwords', 'fileutils', 'find', 'digest', 'abbrev', 'prettyprint'
|
|
13
12
|
signature 'stdlib/yaml/0'
|
|
14
13
|
signature "stdlib/strscan/0/"
|
|
15
14
|
signature "stdlib/optparse/0/"
|
|
16
15
|
signature "stdlib/rdoc/0/"
|
|
17
16
|
signature "stdlib/ripper/0"
|
|
17
|
+
signature "stdlib/pp/0"
|
|
18
18
|
|
|
19
|
-
configure_code_diagnostics do |config|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
end
|
|
19
|
+
# configure_code_diagnostics do |config|
|
|
20
|
+
# config[D::Ruby::MethodDefinitionMissing] = :hint
|
|
21
|
+
# config[D::Ruby::ElseOnExhaustiveCase] = :hint
|
|
22
|
+
# config[D::Ruby::FallbackAny] = :hint
|
|
23
|
+
# end
|
|
24
24
|
end
|
|
25
25
|
|
|
26
26
|
# target :lib do
|
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__: (
|
|
166
|
+
def __send__: (interned name, *untyped, **untyped) ?{ (*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`
|
|
@@ -195,7 +195,7 @@ class BasicObject
|
|
|
195
195
|
# 1 == 1.0 #=> true
|
|
196
196
|
# 1.eql? 1.0 #=> false
|
|
197
197
|
#
|
|
198
|
-
|
|
198
|
+
alias equal? ==
|
|
199
199
|
|
|
200
200
|
# <!--
|
|
201
201
|
# rdoc-file=vm_eval.c
|
|
@@ -228,7 +228,7 @@ class BasicObject
|
|
|
228
228
|
# k.instance_eval { the_secret } #=> "Ssssh! The secret is 99."
|
|
229
229
|
# k.instance_eval {|obj| obj == self } #=> true
|
|
230
230
|
#
|
|
231
|
-
def instance_eval: (
|
|
231
|
+
def instance_eval: (string code, ?string filename, ?int lineno) -> untyped
|
|
232
232
|
| [U] () { (self) [self: self] -> U } -> U
|
|
233
233
|
|
|
234
234
|
# <!--
|
|
@@ -256,7 +256,7 @@ class BasicObject
|
|
|
256
256
|
# -->
|
|
257
257
|
# Returns a new BasicObject.
|
|
258
258
|
#
|
|
259
|
-
def initialize: () ->
|
|
259
|
+
def initialize: () -> nil
|
|
260
260
|
|
|
261
261
|
private
|
|
262
262
|
|
|
@@ -318,7 +318,7 @@ class BasicObject
|
|
|
318
318
|
# Adding one
|
|
319
319
|
# Adding three
|
|
320
320
|
#
|
|
321
|
-
def singleton_method_added: (Symbol) ->
|
|
321
|
+
def singleton_method_added: (Symbol name) -> nil
|
|
322
322
|
|
|
323
323
|
# <!--
|
|
324
324
|
# rdoc-file=object.c
|
|
@@ -345,7 +345,7 @@ class BasicObject
|
|
|
345
345
|
# Removing three
|
|
346
346
|
# Removing one
|
|
347
347
|
#
|
|
348
|
-
def singleton_method_removed: (Symbol) ->
|
|
348
|
+
def singleton_method_removed: (Symbol name) -> nil
|
|
349
349
|
|
|
350
350
|
# <!--
|
|
351
351
|
# rdoc-file=object.c
|
|
@@ -368,5 +368,5 @@ class BasicObject
|
|
|
368
368
|
#
|
|
369
369
|
# Undefining one
|
|
370
370
|
#
|
|
371
|
-
def singleton_method_undefined: (Symbol) ->
|
|
371
|
+
def singleton_method_undefined: (Symbol name) -> nil
|
|
372
372
|
end
|
data/core/binding.rbs
CHANGED
|
@@ -66,7 +66,7 @@ class Binding
|
|
|
66
66
|
#
|
|
67
67
|
# binding.eval("defined?(#{symbol}) == 'local-variable'")
|
|
68
68
|
#
|
|
69
|
-
def local_variable_defined?: (
|
|
69
|
+
def local_variable_defined?: (interned varname) -> bool
|
|
70
70
|
|
|
71
71
|
# <!--
|
|
72
72
|
# rdoc-file=proc.c
|
|
@@ -84,7 +84,7 @@ class Binding
|
|
|
84
84
|
#
|
|
85
85
|
# binding.eval("#{symbol}")
|
|
86
86
|
#
|
|
87
|
-
def local_variable_get: (
|
|
87
|
+
def local_variable_get: (interned varname) -> untyped
|
|
88
88
|
|
|
89
89
|
# <!--
|
|
90
90
|
# rdoc-file=proc.c
|
|
@@ -111,7 +111,7 @@ class Binding
|
|
|
111
111
|
#
|
|
112
112
|
# if `obj` can be dumped in Ruby code.
|
|
113
113
|
#
|
|
114
|
-
def local_variable_set: [U] (
|
|
114
|
+
def local_variable_set: [U] (interned varname, U obj) -> U
|
|
115
115
|
|
|
116
116
|
# <!--
|
|
117
117
|
# rdoc-file=proc.c
|