rbs 3.0.0.dev.3 → 3.0.0
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/CHANGELOG.md +67 -0
- data/Gemfile.lock +1 -1
- data/Steepfile +2 -1
- data/core/enumerator/product.rbs +1 -3
- data/lib/rbs/cli.rb +5 -0
- data/lib/rbs/environment.rb +8 -25
- data/lib/rbs/version.rb +1 -1
- data/sig/environment.rbs +3 -5
- metadata +4 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: c9546b97619812576e413b751c26e75ad667f97c0540f4b912b4030d851e013f
|
|
4
|
+
data.tar.gz: aff1d7c49fcc8012c6c78567af73ab9373d4ffe19756a8c17abe27c2ae674a3f
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e35d66d2260a2dd3264174015a51eaab3a735367755d118d7f4140228369c540ed8c0c9d5f196348593a9983b27ae137b27d8d4cce25b355e31ce393d7e75aee
|
|
7
|
+
data.tar.gz: 2a416a42c26427a9415418124f5196215239fe4a5e37092ede2ed61faf8ff74cf208032a592d6fb65d909b9657820c734d85882ee597de7b316d7aa19f609a40
|
data/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,73 @@
|
|
|
2
2
|
|
|
3
3
|
## master
|
|
4
4
|
|
|
5
|
+
## 3.0.0 (2023-02-22)
|
|
6
|
+
|
|
7
|
+
Read [the release note](https://github.com/ruby/rbs/wiki/Release-Note-3.0) for the overview of the changes.
|
|
8
|
+
|
|
9
|
+
### Signature updates
|
|
10
|
+
|
|
11
|
+
* Ruby 3.2 core updates ([#1238](https://github.com/ruby/rbs/pull/1238), [#1246](https://github.com/ruby/rbs/pull/1246), [#1242](https://github.com/ruby/rbs/pull/1242))
|
|
12
|
+
* Ruby 3.2 stdlib updates ([#1240](https://github.com/ruby/rbs/pull/1240))
|
|
13
|
+
* Ruby 3.2 incompatibilities ([#1241](https://github.com/ruby/rbs/pull/1241))
|
|
14
|
+
* ripper ([#1193](https://github.com/ruby/rbs/pull/1193))
|
|
15
|
+
* `RubyVM::AbstractSyntaxTree` ([#1189](https://github.com/ruby/rbs/pull/1189))
|
|
16
|
+
* `Array#zip` ([#1232](https://github.com/ruby/rbs/pull/1232))
|
|
17
|
+
* `Enumerable#zip` ([#1232](https://github.com/ruby/rbs/pull/1232))
|
|
18
|
+
* `Module#attr_*` ([#1218](https://github.com/ruby/rbs/pull/1218), [#1229](https://github.com/ruby/rbs/pull/1229))
|
|
19
|
+
* `Regexp.new` ([#1237](https://github.com/ruby/rbs/pull/1237))
|
|
20
|
+
* `Regexp#=~` ([#1195](https://github.com/ruby/rbs/pull/1195))
|
|
21
|
+
* `Socket.new` ([#1185](https://github.com/ruby/rbs/pull/1185))
|
|
22
|
+
* `Object::name` ([#1204](https://github.com/ruby/rbs/pull/1204))
|
|
23
|
+
* `_ToProc#to_proc` ([#1223](https://github.com/ruby/rbs/pull/1223))
|
|
24
|
+
* Add `implicitly-returns-nil` annotations ([#1226](https://github.com/ruby/rbs/pull/1226))
|
|
25
|
+
|
|
26
|
+
### Language updates
|
|
27
|
+
|
|
28
|
+
#### Class/module alias declaration
|
|
29
|
+
|
|
30
|
+
* Spec: https://hackmd.io/SAE7AGD6SMSJFnYiR2M5-Q?view
|
|
31
|
+
* Pull requests: [#1219](https://github.com/ruby/rbs/pull/1219), [#1220](https://github.com/ruby/rbs/pull/1220)
|
|
32
|
+
|
|
33
|
+
#### `use` directives
|
|
34
|
+
|
|
35
|
+
* Spec: https://hackmd.io/pQehT1u1RfSj6lBcdgW8hg
|
|
36
|
+
* Pull requests: [#1224](https://github.com/ruby/rbs/pull/1224), [#1234](https://github.com/ruby/rbs/pull/1234), [#1235](https://github.com/ruby/rbs/pull/1235)
|
|
37
|
+
|
|
38
|
+
#### Per-overload annotations
|
|
39
|
+
|
|
40
|
+
* Pull requests: [#1174](https://github.com/ruby/rbs/pull/1174)
|
|
41
|
+
|
|
42
|
+
### Library changes
|
|
43
|
+
|
|
44
|
+
* `Environment` cleanup ([#1209](https://github.com/ruby/rbs/pull/1209), [#1236](https://github.com/ruby/rbs/pull/1236), [#1247](https://github.com/ruby/rbs/pull/1247))
|
|
45
|
+
* Add "Expected one argument." to `rbs ancestors` command ([#1245](https://github.com/ruby/rbs/pull/1245))
|
|
46
|
+
* Implement `#detailed_message` for `ParsingError` ([#1166](https://github.com/ruby/rbs/pull/1166))
|
|
47
|
+
* Support interface in class/module for `Sorter` ([#1191](https://github.com/ruby/rbs/pull/1191))
|
|
48
|
+
* Use `-std=gnu99` instead of `-std=c99` ([#973](https://github.com/ruby/rbs/pull/973))
|
|
49
|
+
* Add `rbs_` prefix to `skip` function ([#1186](https://github.com/ruby/rbs/pull/1186))
|
|
50
|
+
* Better method definition resolution for overload/mixin combination ([#1199](https://github.com/ruby/rbs/pull/1199))
|
|
51
|
+
* Escaping for keywords is no longer necessary ([#1178](https://github.com/ruby/rbs/pull/1178))
|
|
52
|
+
* Fix super-class location ([#1172](https://github.com/ruby/rbs/pull/1172))
|
|
53
|
+
|
|
54
|
+
#### rbs prototype
|
|
55
|
+
|
|
56
|
+
* Introduce new heuristics for block types ([#1180](https://github.com/ruby/rbs/pull/1180))
|
|
57
|
+
|
|
58
|
+
#### rbs collection
|
|
59
|
+
|
|
60
|
+
* Install only *library* dependencies ([#1222](https://github.com/ruby/rbs/pull/1222), [#1228](https://github.com/ruby/rbs/pull/1228))
|
|
61
|
+
* Add *local source* ([#854](https://github.com/ruby/rbs/pull/854))
|
|
62
|
+
* Refactor collection ([#1149](https://github.com/ruby/rbs/pull/1149))
|
|
63
|
+
* Let `#resolved_revision` return the last fetched commit ([#1215](https://github.com/ruby/rbs/pull/1215))
|
|
64
|
+
|
|
65
|
+
### Miscellaneous
|
|
66
|
+
|
|
67
|
+
* Update `syntax.md` ([#1243](https://github.com/ruby/rbs/pull/1243))
|
|
68
|
+
* Add link to `RBS by Example` to `README.md` [#1225](https://github.com/ruby/rbs/pull/1225)
|
|
69
|
+
* Make `rake stdlib_test` run with single process ([#1207](https://github.com/ruby/rbs/pull/1207), [#1211](https://github.com/ruby/rbs/pull/1211), [#1231](https://github.com/ruby/rbs/pull/1231))
|
|
70
|
+
* Remove `steep/*` files from `.gem` ([#1214](https://github.com/ruby/rbs/pull/1214), [#1216](https://github.com/ruby/rbs/pull/1216))
|
|
71
|
+
|
|
5
72
|
## 2.8.4 (2023-01-20)
|
|
6
73
|
|
|
7
74
|
### Miscellaneous
|
data/Gemfile.lock
CHANGED
data/Steepfile
CHANGED
|
@@ -9,11 +9,12 @@ target :lib do
|
|
|
9
9
|
"lib/rbs/test.rb"
|
|
10
10
|
)
|
|
11
11
|
|
|
12
|
-
library "set", "pathname", "json", "logger", "monitor", "tsort", "uri", 'dbm', 'pstore', 'singleton', 'shellwords', 'fileutils', 'find', 'digest'
|
|
12
|
+
library "set", "pathname", "json", "logger", "monitor", "tsort", "uri", 'dbm', 'pstore', 'singleton', 'shellwords', 'fileutils', 'find', 'digest'
|
|
13
13
|
signature 'stdlib/yaml/0'
|
|
14
14
|
signature "stdlib/strscan/0/"
|
|
15
15
|
signature "stdlib/optparse/0/"
|
|
16
16
|
signature "stdlib/rdoc/0/"
|
|
17
|
+
signature "stdlib/ripper/0"
|
|
17
18
|
|
|
18
19
|
configure_code_diagnostics do |config|
|
|
19
20
|
config[D::Ruby::MethodDefinitionMissing] = :hint
|
data/core/enumerator/product.rbs
CHANGED
|
@@ -30,7 +30,7 @@ class Enumerator[unchecked out Elem, out Return]
|
|
|
30
30
|
#
|
|
31
31
|
# This type of objects can be created by Enumerator.product.
|
|
32
32
|
#
|
|
33
|
-
class Product[unchecked out Elem] < Enumerator[Elem, Product[Elem]]
|
|
33
|
+
class Product[unchecked out Elem] < Enumerator[Array[Elem], Product[Elem]]
|
|
34
34
|
# <!--
|
|
35
35
|
# rdoc-file=enumerator.c
|
|
36
36
|
# - Enumerator::Product.new(*enums) -> enum
|
|
@@ -44,8 +44,6 @@ class Enumerator[unchecked out Elem, out Return]
|
|
|
44
44
|
#
|
|
45
45
|
def initialize: (*_EachEntry[Elem]) -> void
|
|
46
46
|
|
|
47
|
-
include Enumerable[Elem]
|
|
48
|
-
|
|
49
47
|
public
|
|
50
48
|
|
|
51
49
|
# <!--
|
data/lib/rbs/cli.rb
CHANGED
|
@@ -260,6 +260,11 @@ EOU
|
|
|
260
260
|
opts.on("--singleton", "Ancestors of singleton of the given type_name") { kind = :singleton }
|
|
261
261
|
end.order!(args)
|
|
262
262
|
|
|
263
|
+
unless args.size == 1
|
|
264
|
+
stdout.puts "Expected one argument."
|
|
265
|
+
return
|
|
266
|
+
end
|
|
267
|
+
|
|
263
268
|
loader = options.loader()
|
|
264
269
|
|
|
265
270
|
env = Environment.from_loader(loader).resolve_type_names
|
data/lib/rbs/environment.rb
CHANGED
|
@@ -10,7 +10,8 @@ module RBS
|
|
|
10
10
|
attr_reader :constant_decls
|
|
11
11
|
attr_reader :global_decls
|
|
12
12
|
attr_reader :class_alias_decls
|
|
13
|
-
|
|
13
|
+
|
|
14
|
+
attr_reader :signatures
|
|
14
15
|
|
|
15
16
|
module ContextUtil
|
|
16
17
|
def calculate_context(decls)
|
|
@@ -142,7 +143,7 @@ module RBS
|
|
|
142
143
|
end
|
|
143
144
|
|
|
144
145
|
def initialize
|
|
145
|
-
@
|
|
146
|
+
@signatures = {}
|
|
146
147
|
@declarations = []
|
|
147
148
|
|
|
148
149
|
@class_decls = {}
|
|
@@ -152,11 +153,10 @@ module RBS
|
|
|
152
153
|
@global_decls = {}
|
|
153
154
|
@class_alias_decls = {}
|
|
154
155
|
@normalize_module_name_cache = {}
|
|
155
|
-
@buffer_directives = {}
|
|
156
156
|
end
|
|
157
157
|
|
|
158
158
|
def initialize_copy(other)
|
|
159
|
-
@
|
|
159
|
+
@signatures = other.signatures.dup
|
|
160
160
|
@declarations = other.declarations.dup
|
|
161
161
|
|
|
162
162
|
@class_decls = other.class_decls.dup
|
|
@@ -165,7 +165,6 @@ module RBS
|
|
|
165
165
|
@constant_decls = other.constant_decls.dup
|
|
166
166
|
@global_decls = other.global_decls.dup
|
|
167
167
|
@class_alias_decls = other.class_alias_decls.dup
|
|
168
|
-
@buffer_directives = other.buffer_directives.dup
|
|
169
168
|
end
|
|
170
169
|
|
|
171
170
|
def self.from_loader(loader)
|
|
@@ -429,7 +428,7 @@ module RBS
|
|
|
429
428
|
end
|
|
430
429
|
|
|
431
430
|
def add_signature(buffer:, directives:, decls:)
|
|
432
|
-
|
|
431
|
+
signatures[buffer] = [directives, decls]
|
|
433
432
|
decls.each do |decl|
|
|
434
433
|
self << decl
|
|
435
434
|
end
|
|
@@ -452,9 +451,7 @@ module RBS
|
|
|
452
451
|
table.known_types.merge(interface_decls.keys)
|
|
453
452
|
table.compute_children
|
|
454
453
|
|
|
455
|
-
|
|
456
|
-
dirs = buffer_directives.fetch(buffer)
|
|
457
|
-
|
|
454
|
+
signatures.each do |buffer, (dirs, decls)|
|
|
458
455
|
map = UseMap.new(table: table)
|
|
459
456
|
dirs.each do |dir|
|
|
460
457
|
dir.clauses.each do |clause|
|
|
@@ -758,28 +755,14 @@ module RBS
|
|
|
758
755
|
end
|
|
759
756
|
|
|
760
757
|
def buffers
|
|
761
|
-
|
|
762
|
-
end
|
|
763
|
-
|
|
764
|
-
def buffers_decls
|
|
765
|
-
# @type var hash: Hash[Buffer, Array[AST::Declarations::t]]
|
|
766
|
-
hash = {}
|
|
767
|
-
|
|
768
|
-
declarations.each do |decl|
|
|
769
|
-
location = decl.location or next
|
|
770
|
-
(hash[location.buffer] ||= []) << decl
|
|
771
|
-
end
|
|
772
|
-
|
|
773
|
-
hash
|
|
758
|
+
signatures.keys
|
|
774
759
|
end
|
|
775
760
|
|
|
776
761
|
def unload(buffers)
|
|
777
762
|
env = Environment.new
|
|
778
763
|
|
|
779
|
-
|
|
764
|
+
signatures.each do |buf, (dirs, decls)|
|
|
780
765
|
next if buffers.include?(buf)
|
|
781
|
-
|
|
782
|
-
dirs = buffer_directives.fetch(buf)
|
|
783
766
|
env.add_signature(buffer: buf, directives: dirs, decls: decls)
|
|
784
767
|
end
|
|
785
768
|
|
data/lib/rbs/version.rb
CHANGED
data/sig/environment.rbs
CHANGED
|
@@ -111,7 +111,9 @@ module RBS
|
|
|
111
111
|
# Global declarations
|
|
112
112
|
attr_reader global_decls: Hash[Symbol, GlobalEntry]
|
|
113
113
|
|
|
114
|
-
|
|
114
|
+
# A hash from Buffer to it's contents
|
|
115
|
+
#
|
|
116
|
+
attr_reader signatures: Hash[Buffer, [Array[AST::Directives::t], Array[AST::Declarations::t]]]
|
|
115
117
|
|
|
116
118
|
def initialize: () -> void
|
|
117
119
|
|
|
@@ -141,12 +143,8 @@ module RBS
|
|
|
141
143
|
|
|
142
144
|
def inspect: () -> String
|
|
143
145
|
|
|
144
|
-
@buffers: Array[Buffer]
|
|
145
|
-
|
|
146
146
|
def buffers: () -> Array[Buffer]
|
|
147
147
|
|
|
148
|
-
def buffers_decls: () -> Hash[Buffer, Array[AST::Declarations::t]]
|
|
149
|
-
|
|
150
148
|
# Remove declarations and directives that are loaded from `buffers`
|
|
151
149
|
#
|
|
152
150
|
def unload: (Set[Buffer] buffers) -> Environment
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: rbs
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 3.0.0
|
|
4
|
+
version: 3.0.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Soutaro Matsumoto
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2023-02-
|
|
11
|
+
date: 2023-02-22 00:00:00.000000000 Z
|
|
12
12
|
dependencies: []
|
|
13
13
|
description: RBS is the language for type signatures for Ruby and standard library
|
|
14
14
|
definitions.
|
|
@@ -444,9 +444,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
444
444
|
version: '2.6'
|
|
445
445
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
446
446
|
requirements:
|
|
447
|
-
- - "
|
|
447
|
+
- - ">="
|
|
448
448
|
- !ruby/object:Gem::Version
|
|
449
|
-
version:
|
|
449
|
+
version: '0'
|
|
450
450
|
requirements: []
|
|
451
451
|
rubygems_version: 3.4.6
|
|
452
452
|
signing_key:
|