rbs 3.5.0.pre.1 → 3.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/dependabot.yml +12 -4
- data/.github/workflows/dependabot.yml +26 -0
- data/.github/workflows/ruby.yml +7 -1
- data/CHANGELOG.md +102 -1
- data/README.md +3 -2
- data/Rakefile +18 -1
- data/Steepfile +1 -1
- data/core/float.rbs +2 -1
- data/core/integer.rbs +2 -1
- data/core/proc.rbs +1 -1
- data/core/rational.rbs +2 -1
- data/core/regexp.rbs +2 -2
- data/core/ruby_vm.rbs +6 -2
- data/core/rubygems/rubygems.rbs +1 -1
- data/core/set.rbs +13 -7
- data/docs/gem.md +0 -1
- data/ext/rbs_extension/lexer.c +1338 -1341
- data/ext/rbs_extension/lexer.h +2 -0
- data/ext/rbs_extension/lexer.re +2 -3
- data/ext/rbs_extension/lexstate.c +5 -1
- data/ext/rbs_extension/parser.c +69 -21
- data/ext/rbs_extension/parserstate.c +8 -1
- data/ext/rbs_extension/parserstate.h +9 -0
- data/lib/rbs/cli/validate.rb +2 -2
- data/lib/rbs/cli.rb +4 -6
- data/lib/rbs/location_aux.rb +6 -1
- data/lib/rbs/parser/lex_result.rb +15 -0
- data/lib/rbs/parser/token.rb +23 -0
- data/lib/rbs/parser_aux.rb +12 -0
- data/lib/rbs/version.rb +1 -1
- data/rbs.gemspec +6 -2
- data/sig/manifest.yaml +0 -1
- data/sig/parser.rbs +28 -0
- data/stdlib/uri/0/mailto.rbs +84 -0
- metadata +7 -20
- data/Gemfile +0 -41
- data/Gemfile.lock +0 -134
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1b76067316b4cfcc66b0072df88be6f74b1e982c3e2c583aa81153fc1d7590cf
|
4
|
+
data.tar.gz: 1051d0012adab3eb36807bad04223e2f6aee7e242981ff12ad0f5e7bdab910d9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cb7c0b36f6398e989fb33cac75b76566404004c54bc395d2e320c01ec50022a6dd9161589506d2446ec71e4f64bebc983a2664acefc8b64a5bbef1832ee86191
|
7
|
+
data.tar.gz: fc53b27131a5b9d947c072b809aff22c23edadbbe211f49ce415796dc0d3f084230f6c609b1eaf1229adf4a15acce1f67aa57bc9ec0929989c9f085155f8c272
|
data/.github/dependabot.yml
CHANGED
@@ -1,13 +1,21 @@
|
|
1
1
|
version: 2
|
2
2
|
updates:
|
3
|
-
- package-ecosystem:
|
3
|
+
- package-ecosystem: bundler
|
4
4
|
directory: "/"
|
5
5
|
schedule:
|
6
|
-
interval:
|
7
|
-
|
6
|
+
interval: daily
|
7
|
+
open-pull-requests-limit: 3
|
8
|
+
allow:
|
9
|
+
- dependency-type: all
|
10
|
+
|
11
|
+
- package-ecosystem: bundler
|
8
12
|
directory: "/steep"
|
9
13
|
schedule:
|
10
|
-
interval:
|
14
|
+
interval: daily
|
15
|
+
open-pull-requests-limit: 3
|
16
|
+
allow:
|
17
|
+
- dependency-type: all
|
18
|
+
|
11
19
|
- package-ecosystem: 'github-actions'
|
12
20
|
directory: '/'
|
13
21
|
schedule:
|
@@ -0,0 +1,26 @@
|
|
1
|
+
name: Merge dependabot PRs automatically
|
2
|
+
on: pull_request_target
|
3
|
+
|
4
|
+
permissions:
|
5
|
+
pull-requests: write
|
6
|
+
contents: write
|
7
|
+
|
8
|
+
env:
|
9
|
+
blocker_files: rbs.gemspec Gemfile steep/Gemfile
|
10
|
+
|
11
|
+
jobs:
|
12
|
+
dependabot:
|
13
|
+
runs-on: ubuntu-latest
|
14
|
+
if: ${{ github.actor == 'dependabot[bot]' }}
|
15
|
+
steps:
|
16
|
+
- name: Checkout repository
|
17
|
+
uses: actions/checkout@v4
|
18
|
+
with:
|
19
|
+
fetch-depth: 0
|
20
|
+
- name: Abort if blocker files are changed
|
21
|
+
run: git diff --exit-code ${{ github.event.pull_request.base.sha }} ${{ github.event.pull_request.head.sha }} ${{ env.blocker_files }}
|
22
|
+
- name: Enable auto-merge for Dependabot PRs
|
23
|
+
run: gh pr merge --auto --merge "$PR_URL"
|
24
|
+
env:
|
25
|
+
PR_URL: ${{github.event.pull_request.html_url}}
|
26
|
+
GH_TOKEN: ${{secrets.DEPENDABOT_MERGE_GH_TOKEN}}
|
data/.github/workflows/ruby.yml
CHANGED
@@ -31,7 +31,9 @@ jobs:
|
|
31
31
|
- ruby: "3.3"
|
32
32
|
job: lexer compile confirm_lexer
|
33
33
|
- ruby: "3.3"
|
34
|
-
job: rubocop validate test_doc build test_generate_stdlib
|
34
|
+
job: rubocop validate test_doc build test_generate_stdlib raap
|
35
|
+
- ruby: "3.3"
|
36
|
+
job: typecheck_test
|
35
37
|
steps:
|
36
38
|
- uses: actions/checkout@v4
|
37
39
|
- uses: ruby/setup-ruby@v1
|
@@ -64,6 +66,10 @@ jobs:
|
|
64
66
|
echo "NO_MINITEST=true" >> $GITHUB_ENV
|
65
67
|
bundle config set --local without 'minitest'
|
66
68
|
if: ${{ contains(matrix.ruby, 'head') }}
|
69
|
+
- name: Skip installing type checkers
|
70
|
+
if: ${{ ! contains(matrix.job, 'typecheck_test') }}
|
71
|
+
run: |
|
72
|
+
bundle config set without 'typecheck_test'
|
67
73
|
- name: bin/setup
|
68
74
|
run: |
|
69
75
|
bin/setup
|
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,107 @@
|
|
1
1
|
# CHANGELOG
|
2
2
|
|
3
|
-
##
|
3
|
+
## 3.5.0 (2024-06-06)
|
4
|
+
|
5
|
+
### Signature updates
|
6
|
+
|
7
|
+
* `net-http` headers ([#1750](https://github.com/ruby/rbs/pull/1750))
|
8
|
+
* `CSV.foreach` ([#1738](https://github.com/ruby/rbs/pull/1738))
|
9
|
+
* `Enumerator#initialize` ([#1801](https://github.com/ruby/rbs/pull/1801))
|
10
|
+
* `Float#divmod`, `Rational#divmod` ([#1868](https://github.com/ruby/rbs/pull/1868))
|
11
|
+
* `GC` ([#1530](https://github.com/ruby/rbs/pull/1530))
|
12
|
+
* `Integer#pow` ([#1706](https://github.com/ruby/rbs/pull/1706))
|
13
|
+
* `Kernel.rand` ([#1783](https://github.com/ruby/rbs/pull/1783))
|
14
|
+
* `Kernel#extend` ([#1769](https://github.com/ruby/rbs/pull/1769))
|
15
|
+
* `Module#include`, `Module#prepend` ([#1769](https://github.com/ruby/rbs/pull/1769))
|
16
|
+
* `Proc#parameters` ([#1819](https://github.com/ruby/rbs/pull/1819))
|
17
|
+
* `Range#step` ([#1709](https://github.com/ruby/rbs/pull/1709))
|
18
|
+
* `Regexp.union` ([#1809](https://github.com/ruby/rbs/pull/1809))
|
19
|
+
* `RubyVM::YJIT.enable` ([#1812](https://github.com/ruby/rbs/pull/1812))
|
20
|
+
* `RubyVM::YJIT`, `RubyVM::RJIT` ([#1746](https://github.com/ruby/rbs/pull/1746))
|
21
|
+
* `String#bytesplice` ([#1793](https://github.com/ruby/rbs/pull/1793))
|
22
|
+
* `String#gsub!` ([#1768](https://github.com/ruby/rbs/pull/1768))
|
23
|
+
* `Symbol#=~` ([#1704](https://github.com/ruby/rbs/pull/1704))
|
24
|
+
* `Time#initialize` ([#1771](https://github.com/ruby/rbs/pull/1771))
|
25
|
+
* `Time#zone` ([#1770](https://github.com/ruby/rbs/pull/1770))
|
26
|
+
* `Timeout::ExitException` ([#1803](https://github.com/ruby/rbs/pull/1803))
|
27
|
+
* `URI::MailTo` ([#1858](https://github.com/ruby/rbs/pull/1858))
|
28
|
+
* Update docs ([#1811](https://github.com/ruby/rbs/pull/1811), [#1699](https://github.com/ruby/rbs/pull/1699))
|
29
|
+
|
30
|
+
### Language updates
|
31
|
+
|
32
|
+
* Fix proc type syntax ([#1807](https://github.com/ruby/rbs/pull/1807))
|
33
|
+
* Function types with untyped parameter ([#1806](https://github.com/ruby/rbs/pull/1806))
|
34
|
+
* Fix record type ([#1732](https://github.com/ruby/rbs/pull/1732))
|
35
|
+
* parser: enable record types with optional fields ([#1717](https://github.com/ruby/rbs/pull/1717))
|
36
|
+
|
37
|
+
### Library changes
|
38
|
+
|
39
|
+
* Drop dependency on `abbrev` ([#1866](https://github.com/ruby/rbs/pull/1866))
|
40
|
+
* Fix source display ([#1832](https://github.com/ruby/rbs/pull/1832))
|
41
|
+
* Include trivia tokens to lex result ([#1831](https://github.com/ruby/rbs/pull/1831))
|
42
|
+
* Implement token list API ([#1829](https://github.com/ruby/rbs/pull/1829))
|
43
|
+
* Fix memory leak when ParsingError ([#1830](https://github.com/ruby/rbs/pull/1830))
|
44
|
+
* [rbs diff] Fix error when empty manifest.yaml ([#1762](https://github.com/ruby/rbs/pull/1762))
|
45
|
+
* Remove deprecated API since RBS v1 ([#1805](https://github.com/ruby/rbs/pull/1805))
|
46
|
+
* Use array instead of linked list for rbs location's child ([#1786](https://github.com/ruby/rbs/pull/1786))
|
47
|
+
* Fix SEGV with parse negative position ([#1790](https://github.com/ruby/rbs/pull/1790))
|
48
|
+
* Add location for attribute ([#1787](https://github.com/ruby/rbs/pull/1787))
|
49
|
+
* Always be private ([#1774](https://github.com/ruby/rbs/pull/1774))
|
50
|
+
* Prevent resource leak with type/method-type parser when reaching EOF. ([#1742](https://github.com/ruby/rbs/pull/1742))
|
51
|
+
* Allow loading RBS from different version of a gem ([#1731](https://github.com/ruby/rbs/pull/1731))
|
52
|
+
* Fix method name tag on assertion ([#1705](https://github.com/ruby/rbs/pull/1705))
|
53
|
+
* Improve interface check by method parameters ([#1698](https://github.com/ruby/rbs/pull/1698))
|
54
|
+
|
55
|
+
#### rbs prototype
|
56
|
+
|
57
|
+
* Fix prototype for ruby-3.4 ([#1760](https://github.com/ruby/rbs/pull/1760))
|
58
|
+
* Fix 3.4 `prototype rb` failure ([#1713](https://github.com/ruby/rbs/pull/1713))
|
59
|
+
* Add Numeric Node's check for parse rbs ([#1711](https://github.com/ruby/rbs/pull/1711))
|
60
|
+
|
61
|
+
#### rbs collection
|
62
|
+
|
63
|
+
* Fix RBS loading precedence ([#1720](https://github.com/ruby/rbs/pull/1720))
|
64
|
+
* Refactor Git source by using `git?` method ([#1701](https://github.com/ruby/rbs/pull/1701))
|
65
|
+
|
66
|
+
### Miscellaneous
|
67
|
+
|
68
|
+
* Introduce RaaP for testing of signature ([#1810](https://github.com/ruby/rbs/pull/1810))
|
69
|
+
* Revise .gemspec to remove `Gemfile` and `Gemfile.lock` ([#1856](https://github.com/ruby/rbs/pull/1856))
|
70
|
+
* Add link to gem_rbs_collection to README ([#1827](https://github.com/ruby/rbs/pull/1827))
|
71
|
+
* Remove `Gemfile.lock` from the gem package ([#1823](https://github.com/ruby/rbs/pull/1823))
|
72
|
+
* Modify template to use TestHelper ([#1776](https://github.com/ruby/rbs/pull/1776))
|
73
|
+
* Should focus on `String.new` not `String#initialize`. ([#1789](https://github.com/ruby/rbs/pull/1789))
|
74
|
+
* Make the test suite compatible with `--enable-frozen-string-literal` ([#1767](https://github.com/ruby/rbs/pull/1767))
|
75
|
+
* Stop reusing `fd` ([#1752](https://github.com/ruby/rbs/pull/1752))
|
76
|
+
* Fix test failures on Ruby 3.4 ([#1734](https://github.com/ruby/rbs/pull/1734))
|
77
|
+
* Stop trace object allocations during test ([#1724](https://github.com/ruby/rbs/pull/1724))
|
78
|
+
* Fix head test fails ([#1719](https://github.com/ruby/rbs/pull/1719))
|
79
|
+
|
80
|
+
## 3.4.4 (2024-02-08)
|
81
|
+
|
82
|
+
### Miscellaneous
|
83
|
+
|
84
|
+
* Backport [#1752](https://github.com/ruby/rbs/pull/1752) ([#1753](https://github.com/ruby/rbs/pull/1753))
|
85
|
+
|
86
|
+
## 3.4.3 (2024-01-25)
|
87
|
+
|
88
|
+
### Library changes
|
89
|
+
|
90
|
+
#### rbs collection
|
91
|
+
|
92
|
+
* Backport [#1731](https://github.com/ruby/rbs/pull/1731) ([#1735](https://github.com/ruby/rbs/pull/1735))
|
93
|
+
|
94
|
+
## 3.4.2 (2024-01-19)
|
95
|
+
|
96
|
+
### Miscellaneous
|
97
|
+
|
98
|
+
* Backport [#1724](https://github.com/ruby/rbs/pull/1724) ([#1726](https://github.com/ruby/rbs/pull/1726))
|
99
|
+
|
100
|
+
## 3.4.1 (2023-12-26)
|
101
|
+
|
102
|
+
### Signature updates
|
103
|
+
|
104
|
+
* Update embedded RDoc based on ruby-3.3.0 (Backport #1699) ([#1700](https://github.com/ruby/rbs/pull/1700))
|
4
105
|
|
5
106
|
## 3.4.0 (2023-12-21)
|
6
107
|
|
data/README.md
CHANGED
@@ -69,7 +69,7 @@ gem "rbs"
|
|
69
69
|
|
70
70
|
The gem ships with the `rbs` command line tool to demonstrate what it can do and help develop RBS.
|
71
71
|
|
72
|
-
```
|
72
|
+
```console
|
73
73
|
$ rbs version
|
74
74
|
$ rbs list
|
75
75
|
$ rbs ancestors ::Object
|
@@ -98,7 +98,7 @@ end
|
|
98
98
|
|
99
99
|
Running prototype on the above will automatically generate
|
100
100
|
|
101
|
-
```
|
101
|
+
```console
|
102
102
|
$ rbs prototype rb person.rb
|
103
103
|
class Person
|
104
104
|
@name: untyped
|
@@ -190,6 +190,7 @@ Here is a list of some places you can talk with active maintainers.
|
|
190
190
|
|
191
191
|
- [Ruby Discord Server (invite link)](https://discord.gg/ad2acQFtkh) -- We have `rbs` channel in Ruby Discord server.
|
192
192
|
- [ruby-jp Slack Workspace (in Japanese)](https://ruby-jp.github.io/) -- We have `types` channel in ruby-jp slack workspace.
|
193
|
+
- [gem_rbs_collection](https://github.com/ruby/gem_rbs_collection) -- We have a repository of third-party RBS type definitions, for the case your dependency doesn't ship with RBS files.
|
193
194
|
|
194
195
|
## Development
|
195
196
|
|
data/Rakefile
CHANGED
@@ -19,7 +19,7 @@ Rake::TestTask.new(:test => :compile) do |t|
|
|
19
19
|
end
|
20
20
|
end
|
21
21
|
|
22
|
-
multitask :default => [:test, :stdlib_test, :rubocop, :validate, :test_doc]
|
22
|
+
multitask :default => [:test, :stdlib_test, :typecheck_test, :rubocop, :validate, :test_doc]
|
23
23
|
|
24
24
|
task :lexer do
|
25
25
|
sh "re2c -W --no-generation-date -o ext/rbs_extension/lexer.c ext/rbs_extension/lexer.re"
|
@@ -92,6 +92,23 @@ task :stdlib_test => :compile do
|
|
92
92
|
sh "#{ruby} -Ilib #{bin}/test_runner.rb test/stdlib/Encoding_test.rb"
|
93
93
|
end
|
94
94
|
|
95
|
+
task :typecheck_test => :compile do
|
96
|
+
FileList["test/typecheck/*"].each do |test|
|
97
|
+
Dir.chdir(test) do
|
98
|
+
expectations = File.join(test, "steep_expectations.yml")
|
99
|
+
if File.exist?(expectations)
|
100
|
+
sh "steep check --with_expectations"
|
101
|
+
else
|
102
|
+
sh "steep check"
|
103
|
+
end
|
104
|
+
end
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
task :raap => :compile do
|
109
|
+
sh %q[cat test/raap.txt | egrep -v '^#|^$' | xargs bundle exec raap]
|
110
|
+
end
|
111
|
+
|
95
112
|
task :rubocop do
|
96
113
|
sh "rubocop --parallel"
|
97
114
|
end
|
data/Steepfile
CHANGED
@@ -8,7 +8,7 @@ target :lib do
|
|
8
8
|
# "lib/rbs/test.rb"
|
9
9
|
)
|
10
10
|
|
11
|
-
library "pathname", "json", "logger", "monitor", "tsort", "uri", 'dbm', 'pstore', 'singleton', 'shellwords', 'fileutils', 'find', 'digest', '
|
11
|
+
library "pathname", "json", "logger", "monitor", "tsort", "uri", 'dbm', 'pstore', 'singleton', 'shellwords', 'fileutils', 'find', 'digest', 'prettyprint', 'yaml', "psych", "securerandom"
|
12
12
|
signature "stdlib/strscan/0/"
|
13
13
|
signature "stdlib/optparse/0/"
|
14
14
|
signature "stdlib/rdoc/0/"
|
data/core/float.rbs
CHANGED
@@ -442,7 +442,8 @@ class Float < Numeric
|
|
442
442
|
# 13.0.divmod(4.0) # => [3, 1.0]
|
443
443
|
# 13.0.divmod(Rational(4, 1)) # => [3, 1.0]
|
444
444
|
#
|
445
|
-
def divmod: (
|
445
|
+
def divmod: (Integer | Float | Rational) -> [ Integer, Float ]
|
446
|
+
| (Numeric) -> [ Numeric, Numeric ]
|
446
447
|
|
447
448
|
def dup: () -> self
|
448
449
|
|
data/core/integer.rbs
CHANGED
@@ -766,7 +766,8 @@ class Integer < Numeric
|
|
766
766
|
# 13.divmod(Rational(4, 1)) # => [3, (1/1)]
|
767
767
|
#
|
768
768
|
def divmod: (Integer) -> [ Integer, Integer ]
|
769
|
-
| (Float) -> [
|
769
|
+
| (Float) -> [ Integer, Float ]
|
770
|
+
| (Rational) -> [ Integer, Rational ]
|
770
771
|
| (Numeric) -> [ Numeric, Numeric ]
|
771
772
|
|
772
773
|
# <!--
|
data/core/proc.rbs
CHANGED
@@ -602,7 +602,7 @@ class Proc < Object
|
|
602
602
|
# prc = lambda{|x, y=42, *other|}
|
603
603
|
# prc.parameters(lambda: false) #=> [[:opt, :x], [:opt, :y], [:rest, :other]]
|
604
604
|
#
|
605
|
-
def parameters: (lambda: boolish) -> ::Array[[ Symbol, Symbol ]]
|
605
|
+
def parameters: (?lambda: boolish) -> ::Array[[ Symbol, Symbol ]]
|
606
606
|
|
607
607
|
# <!--
|
608
608
|
# rdoc-file=proc.c
|
data/core/rational.rbs
CHANGED
@@ -245,7 +245,8 @@ class Rational < Numeric
|
|
245
245
|
|
246
246
|
def div: (Numeric) -> Integer
|
247
247
|
|
248
|
-
def divmod: (
|
248
|
+
def divmod: (Integer | Float | Rational) -> [ Integer, Rational ]
|
249
|
+
| (Numeric) -> [ Numeric, Numeric ]
|
249
250
|
|
250
251
|
def dup: () -> self
|
251
252
|
|
data/core/regexp.rbs
CHANGED
@@ -1544,8 +1544,8 @@ class Regexp
|
|
1544
1544
|
#
|
1545
1545
|
# If any regexp pattern contains captures, the behavior is unspecified.
|
1546
1546
|
#
|
1547
|
-
def self.union: (*_ToRegexp | string patterns) -> Regexp
|
1548
|
-
| (array[_ToRegexp | string] patterns) -> Regexp
|
1547
|
+
def self.union: (*Regexp | _ToRegexp | string patterns) -> Regexp
|
1548
|
+
| (array[Regexp | _ToRegexp | string] patterns) -> Regexp
|
1549
1549
|
| (Symbol | [Symbol] symbol_pattern) -> Regexp
|
1550
1550
|
|
1551
1551
|
# <!--
|
data/core/ruby_vm.rbs
CHANGED
@@ -309,9 +309,13 @@ module RubyVM::YJIT
|
|
309
309
|
# rdoc-file=yjit.rb
|
310
310
|
# - enable(stats: false)
|
311
311
|
# -->
|
312
|
-
# Enable YJIT compilation.
|
312
|
+
# Enable YJIT compilation. `stats` option decides whether to enable YJIT stats
|
313
|
+
# or not.
|
314
|
+
# * `false`: Disable stats.
|
315
|
+
# * `true`: Enable stats. Print stats at exit.
|
316
|
+
# * `:quiet`: Enable stats. Do not print stats at exit.
|
313
317
|
#
|
314
|
-
def self.enable: () -> void
|
318
|
+
def self.enable: (?stats: false | true | :quiet) -> void
|
315
319
|
|
316
320
|
# <!--
|
317
321
|
# rdoc-file=yjit.rb
|
data/core/rubygems/rubygems.rbs
CHANGED
@@ -482,7 +482,7 @@ module Gem
|
|
482
482
|
# rdoc-file=lib/rubygems.rb
|
483
483
|
# - find_unresolved_default_spec(path)
|
484
484
|
# -->
|
485
|
-
# Find
|
485
|
+
# Find an unresolved Gem::Specification of default gem from `path`
|
486
486
|
#
|
487
487
|
def self.find_unresolved_default_spec: (String path) -> Specification?
|
488
488
|
|
data/core/set.rbs
CHANGED
@@ -415,7 +415,7 @@ class Set[unchecked out A]
|
|
415
415
|
# Equivalent to Set#delete_if, but returns nil if no changes were
|
416
416
|
# made. Returns an enumerator if no block is given.
|
417
417
|
#
|
418
|
-
def reject!: () { (A) -> untyped } -> self
|
418
|
+
def reject!: () { (A) -> untyped } -> self?
|
419
419
|
|
420
420
|
# <!--
|
421
421
|
# rdoc-file=lib/set.rb
|
@@ -437,7 +437,7 @@ class Set[unchecked out A]
|
|
437
437
|
# Set[1, 2, 3].disjoint? [3, 4] #=> false
|
438
438
|
# Set[1, 2, 3].disjoint? 4..5 #=> true
|
439
439
|
#
|
440
|
-
def disjoint?: (
|
440
|
+
def disjoint?: (Set[A] | Enumerable[A]) -> bool
|
441
441
|
|
442
442
|
# <!--
|
443
443
|
# rdoc-file=lib/set.rb
|
@@ -458,8 +458,8 @@ class Set[unchecked out A]
|
|
458
458
|
#
|
459
459
|
# Returns an enumerator if no block is given.
|
460
460
|
#
|
461
|
-
def divide: () { (A, A) ->
|
462
|
-
| () { (A) ->
|
461
|
+
def divide: () { (A, A) -> Hash::_Key } -> Set[self]
|
462
|
+
| () { (A) -> Hash::_Key } -> Set[self]
|
463
463
|
|
464
464
|
# <!--
|
465
465
|
# rdoc-file=lib/set.rb
|
@@ -500,7 +500,7 @@ class Set[unchecked out A]
|
|
500
500
|
# Set[1, 2, 3].intersect? 4..5 #=> false
|
501
501
|
# Set[1, 2, 3].intersect? [3, 4] #=> true
|
502
502
|
#
|
503
|
-
def intersect?: (
|
503
|
+
def intersect?: (Set[A] | Enumerable[A]) -> bool
|
504
504
|
|
505
505
|
# <!--
|
506
506
|
# rdoc-file=lib/set.rb
|
@@ -534,7 +534,7 @@ class Set[unchecked out A]
|
|
534
534
|
# Merges the elements of the given enumerable objects to the set and
|
535
535
|
# returns self.
|
536
536
|
#
|
537
|
-
def merge: (_Each[A]) -> self
|
537
|
+
def merge: (*_Each[A]) -> self
|
538
538
|
|
539
539
|
# <!--
|
540
540
|
# rdoc-file=lib/set.rb
|
@@ -544,7 +544,13 @@ class Set[unchecked out A]
|
|
544
544
|
#
|
545
545
|
def subset?: (self) -> bool
|
546
546
|
|
547
|
-
|
547
|
+
# <!--
|
548
|
+
# rdoc-file=lib/set.rb
|
549
|
+
# - proper_subset?(set)
|
550
|
+
# -->
|
551
|
+
# Returns true if the set is a proper subset of the given set.
|
552
|
+
#
|
553
|
+
def proper_subset?: (self) -> bool
|
548
554
|
|
549
555
|
# <!--
|
550
556
|
# rdoc-file=lib/set.rb
|