rbs 3.5.2 → 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 +6 -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/version.rb +1 -1
- 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
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/version.rb
CHANGED
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.
|