rbs 3.5.2 → 3.5.3
Sign up to get free protection for your applications and to get access to all the features.
- 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.
|