rbs 3.5.1 → 3.5.3
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 +18 -0
- data/core/rubygems/errors.rbs +66 -0
- data/core/rubygems/rubygems.rbs +66 -0
- data/core/string.rbs +4 -0
- data/ext/rbs_extension/parser.c +16 -4
- data/ext/rbs_extension/parserstate.c +2 -7
- data/ext/rbs_extension/parserstate.h +6 -5
- data/lib/rbs/types.rb +1 -1
- data/lib/rbs/version.rb +1 -1
- data/stdlib/strscan/0/string_scanner.rbs +4 -4
- metadata +3 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: dd64311918171dfbd09f9f589ce34a9f090f145f31d7a687ef1117551913e35d
|
|
4
|
+
data.tar.gz: e9abb9591ee16228cea0b0f07806fc1eef6271944222ed07f4d7d849b8962611
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 046b790474ee8c0cd8f3c1a69531ccf3b3d95df6ef9cd46cf3f89224a6ac0964776025d01c2bb2d094c211e88cb93925a03693e66a7d7986961384cc5d5e229a
|
|
7
|
+
data.tar.gz: 1a191fe2488617141c975b3479666138e75a31f37cbdbadcae7a6032e5031e09a8e74c2699e5f928692c0a12fb8dfa9e8332edd3ac45ae46001e88652bff589f
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
# CHANGELOG
|
|
2
2
|
|
|
3
|
+
## 3.5.3 (2024-08-23)
|
|
4
|
+
|
|
5
|
+
### Library changes
|
|
6
|
+
|
|
7
|
+
* Backport GC fix PR ([#1977](https://github.com/ruby/rbs/pull/1977))
|
|
8
|
+
|
|
9
|
+
## 3.5.2 (2024-07-10)
|
|
10
|
+
|
|
11
|
+
### Library changes
|
|
12
|
+
|
|
13
|
+
* 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))
|
|
14
|
+
* 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))
|
|
15
|
+
* Fix #1905: Fix typo in `UntypedFunction` ([#1906](https://github.com/ruby/rbs/pull/1906), Backported in [#1925](https://github.com/ruby/rbs/pull/1925))
|
|
16
|
+
|
|
17
|
+
### Miscellaneous
|
|
18
|
+
|
|
19
|
+
* Use `File.open` instead of `IO.sysopen` ([#1913](https://github.com/ruby/rbs/pull/1913))
|
|
20
|
+
|
|
3
21
|
## 3.5.1 (2024-06-07)
|
|
4
22
|
|
|
5
23
|
### Library changes
|
data/core/rubygems/errors.rbs
CHANGED
|
@@ -94,6 +94,72 @@
|
|
|
94
94
|
#
|
|
95
95
|
# -The RubyGems Team
|
|
96
96
|
#
|
|
97
|
+
# <!-- rdoc-file=lib/rubygems/deprecate.rb -->
|
|
98
|
+
# Provides 3 methods for declaring when something is going away.
|
|
99
|
+
#
|
|
100
|
+
# +deprecate(name, repl, year, month)+:
|
|
101
|
+
# Indicate something may be removed on/after a certain date.
|
|
102
|
+
#
|
|
103
|
+
# +rubygems_deprecate(name, replacement=:none)+:
|
|
104
|
+
# Indicate something will be removed in the next major RubyGems version,
|
|
105
|
+
# and (optionally) a replacement for it.
|
|
106
|
+
#
|
|
107
|
+
# `rubygems_deprecate_command`:
|
|
108
|
+
# Indicate a RubyGems command (in +lib/rubygems/commands/*.rb+) will be
|
|
109
|
+
# removed in the next RubyGems version.
|
|
110
|
+
#
|
|
111
|
+
# Also provides `skip_during` for temporarily turning off deprecation warnings.
|
|
112
|
+
# This is intended to be used in the test suite, so deprecation warnings don't
|
|
113
|
+
# cause test failures if you need to make sure stderr is otherwise empty.
|
|
114
|
+
#
|
|
115
|
+
# Example usage of `deprecate` and `rubygems_deprecate`:
|
|
116
|
+
#
|
|
117
|
+
# class Legacy
|
|
118
|
+
# def self.some_class_method
|
|
119
|
+
# # ...
|
|
120
|
+
# end
|
|
121
|
+
#
|
|
122
|
+
# def some_instance_method
|
|
123
|
+
# # ...
|
|
124
|
+
# end
|
|
125
|
+
#
|
|
126
|
+
# def some_old_method
|
|
127
|
+
# # ...
|
|
128
|
+
# end
|
|
129
|
+
#
|
|
130
|
+
# extend Gem::Deprecate
|
|
131
|
+
# deprecate :some_instance_method, "X.z", 2011, 4
|
|
132
|
+
# rubygems_deprecate :some_old_method, "Modern#some_new_method"
|
|
133
|
+
#
|
|
134
|
+
# class << self
|
|
135
|
+
# extend Gem::Deprecate
|
|
136
|
+
# deprecate :some_class_method, :none, 2011, 4
|
|
137
|
+
# end
|
|
138
|
+
# end
|
|
139
|
+
#
|
|
140
|
+
# Example usage of `rubygems_deprecate_command`:
|
|
141
|
+
#
|
|
142
|
+
# class Gem::Commands::QueryCommand < Gem::Command
|
|
143
|
+
# extend Gem::Deprecate
|
|
144
|
+
# rubygems_deprecate_command
|
|
145
|
+
#
|
|
146
|
+
# # ...
|
|
147
|
+
# end
|
|
148
|
+
#
|
|
149
|
+
# Example usage of `skip_during`:
|
|
150
|
+
#
|
|
151
|
+
# class TestSomething < Gem::Testcase
|
|
152
|
+
# def test_some_thing_with_deprecations
|
|
153
|
+
# Gem::Deprecate.skip_during do
|
|
154
|
+
# actual_stdout, actual_stderr = capture_output do
|
|
155
|
+
# Gem.something_deprecated
|
|
156
|
+
# end
|
|
157
|
+
# assert_empty actual_stdout
|
|
158
|
+
# assert_equal(expected, actual_stderr)
|
|
159
|
+
# end
|
|
160
|
+
# end
|
|
161
|
+
# end
|
|
162
|
+
#
|
|
97
163
|
module Gem
|
|
98
164
|
# <!-- rdoc-file=lib/rubygems/errors.rb -->
|
|
99
165
|
# Raised when RubyGems is unable to load or activate a gem. Contains the name
|
data/core/rubygems/rubygems.rbs
CHANGED
|
@@ -94,6 +94,72 @@
|
|
|
94
94
|
#
|
|
95
95
|
# -The RubyGems Team
|
|
96
96
|
#
|
|
97
|
+
# <!-- rdoc-file=lib/rubygems/deprecate.rb -->
|
|
98
|
+
# Provides 3 methods for declaring when something is going away.
|
|
99
|
+
#
|
|
100
|
+
# +deprecate(name, repl, year, month)+:
|
|
101
|
+
# Indicate something may be removed on/after a certain date.
|
|
102
|
+
#
|
|
103
|
+
# +rubygems_deprecate(name, replacement=:none)+:
|
|
104
|
+
# Indicate something will be removed in the next major RubyGems version,
|
|
105
|
+
# and (optionally) a replacement for it.
|
|
106
|
+
#
|
|
107
|
+
# `rubygems_deprecate_command`:
|
|
108
|
+
# Indicate a RubyGems command (in +lib/rubygems/commands/*.rb+) will be
|
|
109
|
+
# removed in the next RubyGems version.
|
|
110
|
+
#
|
|
111
|
+
# Also provides `skip_during` for temporarily turning off deprecation warnings.
|
|
112
|
+
# This is intended to be used in the test suite, so deprecation warnings don't
|
|
113
|
+
# cause test failures if you need to make sure stderr is otherwise empty.
|
|
114
|
+
#
|
|
115
|
+
# Example usage of `deprecate` and `rubygems_deprecate`:
|
|
116
|
+
#
|
|
117
|
+
# class Legacy
|
|
118
|
+
# def self.some_class_method
|
|
119
|
+
# # ...
|
|
120
|
+
# end
|
|
121
|
+
#
|
|
122
|
+
# def some_instance_method
|
|
123
|
+
# # ...
|
|
124
|
+
# end
|
|
125
|
+
#
|
|
126
|
+
# def some_old_method
|
|
127
|
+
# # ...
|
|
128
|
+
# end
|
|
129
|
+
#
|
|
130
|
+
# extend Gem::Deprecate
|
|
131
|
+
# deprecate :some_instance_method, "X.z", 2011, 4
|
|
132
|
+
# rubygems_deprecate :some_old_method, "Modern#some_new_method"
|
|
133
|
+
#
|
|
134
|
+
# class << self
|
|
135
|
+
# extend Gem::Deprecate
|
|
136
|
+
# deprecate :some_class_method, :none, 2011, 4
|
|
137
|
+
# end
|
|
138
|
+
# end
|
|
139
|
+
#
|
|
140
|
+
# Example usage of `rubygems_deprecate_command`:
|
|
141
|
+
#
|
|
142
|
+
# class Gem::Commands::QueryCommand < Gem::Command
|
|
143
|
+
# extend Gem::Deprecate
|
|
144
|
+
# rubygems_deprecate_command
|
|
145
|
+
#
|
|
146
|
+
# # ...
|
|
147
|
+
# end
|
|
148
|
+
#
|
|
149
|
+
# Example usage of `skip_during`:
|
|
150
|
+
#
|
|
151
|
+
# class TestSomething < Gem::Testcase
|
|
152
|
+
# def test_some_thing_with_deprecations
|
|
153
|
+
# Gem::Deprecate.skip_during do
|
|
154
|
+
# actual_stdout, actual_stderr = capture_output do
|
|
155
|
+
# Gem.something_deprecated
|
|
156
|
+
# end
|
|
157
|
+
# assert_empty actual_stdout
|
|
158
|
+
# assert_equal(expected, actual_stderr)
|
|
159
|
+
# end
|
|
160
|
+
# end
|
|
161
|
+
# end
|
|
162
|
+
#
|
|
97
163
|
module Gem
|
|
98
164
|
interface _HashLike[K, V]
|
|
99
165
|
def each_pair: () { ([ K, V ]) -> untyped } -> self
|
data/core/string.rbs
CHANGED
|
@@ -699,6 +699,10 @@ class String
|
|
|
699
699
|
# String.new(capacity: 1)
|
|
700
700
|
# String.new('foo', capacity: 4096)
|
|
701
701
|
#
|
|
702
|
+
# Note that Ruby strings are null-terminated internally, so the internal buffer
|
|
703
|
+
# size will be one or more bytes larger than the requested capacity depending on
|
|
704
|
+
# the encoding.
|
|
705
|
+
#
|
|
702
706
|
# The `string`, `encoding`, and `capacity` arguments may all be used together:
|
|
703
707
|
#
|
|
704
708
|
# String.new('hello', encoding: 'UTF-8', capacity: 25)
|
data/ext/rbs_extension/parser.c
CHANGED
|
@@ -2836,7 +2836,10 @@ parse_type_try(VALUE a) {
|
|
|
2836
2836
|
static VALUE
|
|
2837
2837
|
rbsparser_parse_type(VALUE self, VALUE buffer, VALUE start_pos, VALUE end_pos, VALUE variables, VALUE require_eof)
|
|
2838
2838
|
{
|
|
2839
|
-
|
|
2839
|
+
VALUE string = rb_funcall(buffer, rb_intern("content"), 0);
|
|
2840
|
+
StringValue(string);
|
|
2841
|
+
lexstate *lexer = alloc_lexer(string, FIX2INT(start_pos), FIX2INT(end_pos));
|
|
2842
|
+
parserstate *parser = alloc_parser(buffer, lexer, FIX2INT(start_pos), FIX2INT(end_pos), variables);
|
|
2840
2843
|
struct parse_type_arg arg = {
|
|
2841
2844
|
parser,
|
|
2842
2845
|
require_eof
|
|
@@ -2864,7 +2867,10 @@ parse_method_type_try(VALUE a) {
|
|
|
2864
2867
|
static VALUE
|
|
2865
2868
|
rbsparser_parse_method_type(VALUE self, VALUE buffer, VALUE start_pos, VALUE end_pos, VALUE variables, VALUE require_eof)
|
|
2866
2869
|
{
|
|
2867
|
-
|
|
2870
|
+
VALUE string = rb_funcall(buffer, rb_intern("content"), 0);
|
|
2871
|
+
StringValue(string);
|
|
2872
|
+
lexstate *lexer = alloc_lexer(string, FIX2INT(start_pos), FIX2INT(end_pos));
|
|
2873
|
+
parserstate *parser = alloc_parser(buffer, lexer, FIX2INT(start_pos), FIX2INT(end_pos), variables);
|
|
2868
2874
|
struct parse_type_arg arg = {
|
|
2869
2875
|
parser,
|
|
2870
2876
|
require_eof
|
|
@@ -2881,13 +2887,18 @@ parse_signature_try(VALUE a) {
|
|
|
2881
2887
|
static VALUE
|
|
2882
2888
|
rbsparser_parse_signature(VALUE self, VALUE buffer, VALUE end_pos)
|
|
2883
2889
|
{
|
|
2884
|
-
|
|
2890
|
+
VALUE string = rb_funcall(buffer, rb_intern("content"), 0);
|
|
2891
|
+
StringValue(string);
|
|
2892
|
+
lexstate *lexer = alloc_lexer(string, 0, FIX2INT(end_pos));
|
|
2893
|
+
parserstate *parser = alloc_parser(buffer, lexer, 0, FIX2INT(end_pos), Qnil);
|
|
2885
2894
|
return rb_ensure(parse_signature_try, (VALUE)parser, ensure_free_parser, (VALUE)parser);
|
|
2886
2895
|
}
|
|
2887
2896
|
|
|
2888
2897
|
static VALUE
|
|
2889
2898
|
rbsparser_lex(VALUE self, VALUE buffer, VALUE end_pos) {
|
|
2890
|
-
|
|
2899
|
+
VALUE string = rb_funcall(buffer, rb_intern("content"), 0);
|
|
2900
|
+
StringValue(string);
|
|
2901
|
+
lexstate *lexer = alloc_lexer(string, 0, FIX2INT(end_pos));
|
|
2891
2902
|
VALUE results = rb_ary_new();
|
|
2892
2903
|
|
|
2893
2904
|
token token = NullToken;
|
|
@@ -2906,6 +2917,7 @@ rbsparser_lex(VALUE self, VALUE buffer, VALUE end_pos) {
|
|
|
2906
2917
|
|
|
2907
2918
|
void rbs__init_parser(void) {
|
|
2908
2919
|
RBS_Parser = rb_define_class_under(RBS, "Parser", rb_cObject);
|
|
2920
|
+
rb_gc_register_mark_object(RBS_Parser);
|
|
2909
2921
|
rb_define_singleton_method(RBS_Parser, "_parse_type", rbsparser_parse_type, 5);
|
|
2910
2922
|
rb_define_singleton_method(RBS_Parser, "_parse_method_type", rbsparser_parse_method_type, 5);
|
|
2911
2923
|
rb_define_singleton_method(RBS_Parser, "_parse_signature", rbsparser_parse_signature, 2);
|
|
@@ -274,11 +274,7 @@ VALUE comment_to_ruby(comment *com, VALUE buffer) {
|
|
|
274
274
|
);
|
|
275
275
|
}
|
|
276
276
|
|
|
277
|
-
lexstate *alloc_lexer(VALUE
|
|
278
|
-
VALUE string = rb_funcall(buffer, rb_intern("content"), 0);
|
|
279
|
-
|
|
280
|
-
StringValue(string);
|
|
281
|
-
|
|
277
|
+
lexstate *alloc_lexer(VALUE string, int start_pos, int end_pos) {
|
|
282
278
|
if (start_pos < 0 || end_pos < 0) {
|
|
283
279
|
rb_raise(rb_eArgError, "negative position range: %d...%d", start_pos, end_pos);
|
|
284
280
|
}
|
|
@@ -295,8 +291,7 @@ lexstate *alloc_lexer(VALUE buffer, int start_pos, int end_pos) {
|
|
|
295
291
|
return lexer;
|
|
296
292
|
}
|
|
297
293
|
|
|
298
|
-
parserstate *alloc_parser(VALUE buffer, int start_pos, int end_pos, VALUE variables) {
|
|
299
|
-
lexstate *lexer = alloc_lexer(buffer, start_pos, end_pos);
|
|
294
|
+
parserstate *alloc_parser(VALUE buffer, lexstate *lexer, int start_pos, int end_pos, VALUE variables) {
|
|
300
295
|
parserstate *parser = calloc(1, sizeof(parserstate));
|
|
301
296
|
parser->lexstate = lexer;
|
|
302
297
|
parser->buffer = buffer;
|
|
@@ -97,20 +97,21 @@ bool parser_typevar_member(parserstate *state, ID id);
|
|
|
97
97
|
* Allocate new lexstate object.
|
|
98
98
|
*
|
|
99
99
|
* ```
|
|
100
|
-
*
|
|
100
|
+
* VALUE string = rb_funcall(buffer, rb_intern("content"), 0);
|
|
101
|
+
* alloc_lexer(string, 0, 31) // New lexstate with buffer content
|
|
101
102
|
* ```
|
|
102
103
|
* */
|
|
103
|
-
lexstate *alloc_lexer(VALUE
|
|
104
|
+
lexstate *alloc_lexer(VALUE string, int start_pos, int end_pos);
|
|
104
105
|
|
|
105
106
|
/**
|
|
106
107
|
* Allocate new parserstate object.
|
|
107
108
|
*
|
|
108
109
|
* ```
|
|
109
|
-
* alloc_parser(buffer, 0, 1, variables) // New parserstate with variables
|
|
110
|
-
* alloc_parser(buffer, 3, 5, Qnil) // New parserstate without variables
|
|
110
|
+
* alloc_parser(buffer, lexer, 0, 1, variables) // New parserstate with variables
|
|
111
|
+
* alloc_parser(buffer, lexer, 3, 5, Qnil) // New parserstate without variables
|
|
111
112
|
* ```
|
|
112
113
|
* */
|
|
113
|
-
parserstate *alloc_parser(VALUE buffer, int start_pos, int end_pos, VALUE variables);
|
|
114
|
+
parserstate *alloc_parser(VALUE buffer, lexstate *lexer, int start_pos, int end_pos, VALUE variables);
|
|
114
115
|
void free_parser(parserstate *parser);
|
|
115
116
|
/**
|
|
116
117
|
* Advance one token.
|
data/lib/rbs/types.rb
CHANGED
data/lib/rbs/version.rb
CHANGED
|
@@ -184,10 +184,10 @@ class StringScanner
|
|
|
184
184
|
# If nothing was priorly matched, it returns nil.
|
|
185
185
|
#
|
|
186
186
|
# s = StringScanner.new("Fri Dec 12 1975 14:39")
|
|
187
|
-
# s.scan(/(\w+) (\w+) (\d+)
|
|
188
|
-
# s.captures
|
|
189
|
-
# s.scan(/(\w+) (\w+) (\d+)
|
|
190
|
-
# s.captures
|
|
187
|
+
# s.scan(/(\w+) (\w+) (\d+) (1980)?/) # -> "Fri Dec 12 "
|
|
188
|
+
# s.captures # -> ["Fri", "Dec", "12", nil]
|
|
189
|
+
# s.scan(/(\w+) (\w+) (\d+) (1980)?/) # -> nil
|
|
190
|
+
# s.captures # -> nil
|
|
191
191
|
#
|
|
192
192
|
def captures: () -> Array[String]?
|
|
193
193
|
|
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.5.
|
|
4
|
+
version: 3.5.3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Soutaro Matsumoto
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2024-
|
|
11
|
+
date: 2024-08-23 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: logger
|
|
@@ -527,7 +527,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
527
527
|
- !ruby/object:Gem::Version
|
|
528
528
|
version: '0'
|
|
529
529
|
requirements: []
|
|
530
|
-
rubygems_version: 3.5.
|
|
530
|
+
rubygems_version: 3.5.17
|
|
531
531
|
signing_key:
|
|
532
532
|
specification_version: 4
|
|
533
533
|
summary: Type signature for Ruby.
|