rbs 1.7.0.beta.2 → 1.7.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/.github/workflows/ruby.yml +20 -1
- data/.gitignore +9 -2
- data/CHANGELOG.md +36 -9
- data/Rakefile +15 -0
- data/Steepfile +0 -1
- data/core/binding.rbs +2 -0
- data/core/complex.rbs +0 -2
- data/core/env.rbs +881 -0
- data/core/false_class.rbs +2 -0
- data/core/float.rbs +0 -2
- data/core/integer.rbs +0 -2
- data/core/nil_class.rbs +2 -0
- data/core/numeric.rbs +7 -0
- data/core/object.rbs +1 -1
- data/core/proc.rbs +2 -0
- data/core/rational.rbs +0 -2
- data/core/symbol.rbs +2 -0
- data/core/true_class.rbs +2 -0
- data/core/unbound_method.rbs +13 -0
- data/docs/rbs_by_example.md +2 -2
- data/docs/syntax.md +2 -3
- data/ext/rbs_extension/constants.c +0 -1
- data/ext/rbs_extension/lexer.c +2526 -1063
- data/ext/rbs_extension/lexer.h +33 -17
- data/ext/rbs_extension/lexer.re +140 -0
- data/ext/rbs_extension/lexstate.c +139 -0
- data/ext/rbs_extension/parser.c +2 -32
- data/ext/rbs_extension/parser.h +0 -5
- data/ext/rbs_extension/parserstate.c +0 -1
- data/ext/rbs_extension/rbs_extension.h +1 -1
- data/ext/rbs_extension/ruby_objs.c +84 -148
- data/ext/rbs_extension/ruby_objs.h +0 -2
- data/lib/rbs/collection/installer.rb +1 -0
- data/lib/rbs/collection/sources/git.rb +6 -1
- data/lib/rbs/errors.rb +6 -0
- data/lib/rbs/parser_aux.rb +37 -5
- data/lib/rbs/parser_compat/lexer_error.rb +4 -0
- data/lib/rbs/parser_compat/located_value.rb +5 -0
- data/lib/rbs/parser_compat/semantics_error.rb +4 -0
- data/lib/rbs/parser_compat/syntax_error.rb +4 -0
- data/lib/rbs/prototype/helpers.rb +113 -0
- data/lib/rbs/prototype/rb.rb +2 -105
- data/lib/rbs/prototype/runtime.rb +16 -0
- data/lib/rbs/test/setup.rb +1 -0
- data/lib/rbs/types.rb +2 -2
- data/lib/rbs/version.rb +1 -1
- data/lib/rbs.rb +12 -0
- data/sig/parser.rbs +2 -0
- data/sig/rbs.rbs +4 -0
- data/stdlib/bigdecimal/0/big_decimal.rbs +44 -0
- data/stdlib/csv/0/csv.rbs +49 -3
- data/stdlib/io-console/0/io-console.rbs +137 -0
- data/stdlib/net-http/0/net-http.rbs +2 -1
- data/stdlib/tempfile/0/tempfile.rbs +4 -6
- metadata +13 -5
- data/lib/rbs/parser.y +0 -1805
@@ -1,15 +1,23 @@
|
|
1
1
|
#include "rbs_extension.h"
|
2
2
|
|
3
|
+
#ifdef RB_PASS_KEYWORDS
|
4
|
+
// Ruby 2.7 or later
|
5
|
+
#define CLASS_NEW_INSTANCE(klass, argc, argv)\
|
6
|
+
rb_class_new_instance_kw(argc, argv, klass, RB_PASS_KEYWORDS)
|
7
|
+
#else
|
8
|
+
// Ruby 2.6
|
9
|
+
#define CLASS_NEW_INSTANCE(receiver, argc, argv)\
|
10
|
+
rb_class_new_instance(argc, argv, receiver)
|
11
|
+
#endif
|
12
|
+
|
3
13
|
VALUE rbs_base_type(VALUE klass, VALUE location) {
|
4
14
|
VALUE args = rb_hash_new();
|
5
15
|
rb_hash_aset(args, ID2SYM(rb_intern("location")), location);
|
6
16
|
|
7
|
-
return
|
17
|
+
return CLASS_NEW_INSTANCE(
|
8
18
|
klass,
|
9
|
-
rb_intern("new"),
|
10
19
|
1,
|
11
|
-
&args
|
12
|
-
RB_PASS_KEYWORDS
|
20
|
+
&args
|
13
21
|
);
|
14
22
|
}
|
15
23
|
|
@@ -18,12 +26,10 @@ VALUE rbs_namespace(VALUE path, VALUE absolute) {
|
|
18
26
|
rb_hash_aset(args, ID2SYM(rb_intern("path")), path);
|
19
27
|
rb_hash_aset(args, ID2SYM(rb_intern("absolute")), absolute);
|
20
28
|
|
21
|
-
return
|
29
|
+
return CLASS_NEW_INSTANCE(
|
22
30
|
RBS_Namespace,
|
23
|
-
rb_intern("new"),
|
24
31
|
1,
|
25
|
-
&args
|
26
|
-
RB_PASS_KEYWORDS
|
32
|
+
&args
|
27
33
|
);
|
28
34
|
}
|
29
35
|
|
@@ -32,12 +38,10 @@ VALUE rbs_type_name(VALUE namespace, VALUE name) {
|
|
32
38
|
rb_hash_aset(args, ID2SYM(rb_intern("namespace")), namespace);
|
33
39
|
rb_hash_aset(args, ID2SYM(rb_intern("name")), name);
|
34
40
|
|
35
|
-
return
|
41
|
+
return CLASS_NEW_INSTANCE(
|
36
42
|
RBS_TypeName,
|
37
|
-
rb_intern("new"),
|
38
43
|
1,
|
39
|
-
&args
|
40
|
-
RB_PASS_KEYWORDS
|
44
|
+
&args
|
41
45
|
);
|
42
46
|
}
|
43
47
|
|
@@ -47,12 +51,10 @@ VALUE rbs_class_instance(VALUE typename, VALUE type_args, VALUE location) {
|
|
47
51
|
rb_hash_aset(args, ID2SYM(rb_intern("args")), type_args);
|
48
52
|
rb_hash_aset(args, ID2SYM(rb_intern("location")), location);
|
49
53
|
|
50
|
-
return
|
54
|
+
return CLASS_NEW_INSTANCE(
|
51
55
|
RBS_Types_ClassInstance,
|
52
|
-
rb_intern("new"),
|
53
56
|
1,
|
54
|
-
&args
|
55
|
-
RB_PASS_KEYWORDS
|
57
|
+
&args
|
56
58
|
);
|
57
59
|
}
|
58
60
|
|
@@ -61,12 +63,10 @@ VALUE rbs_class_singleton(VALUE typename, VALUE location) {
|
|
61
63
|
rb_hash_aset(args, ID2SYM(rb_intern("name")), typename);
|
62
64
|
rb_hash_aset(args, ID2SYM(rb_intern("location")), location);
|
63
65
|
|
64
|
-
return
|
66
|
+
return CLASS_NEW_INSTANCE(
|
65
67
|
RBS_Types_ClassSingleton,
|
66
|
-
rb_intern("new"),
|
67
68
|
1,
|
68
|
-
&args
|
69
|
-
RB_PASS_KEYWORDS
|
69
|
+
&args
|
70
70
|
);
|
71
71
|
}
|
72
72
|
|
@@ -75,12 +75,10 @@ VALUE rbs_alias(VALUE typename, VALUE location) {
|
|
75
75
|
rb_hash_aset(args, ID2SYM(rb_intern("name")), typename);
|
76
76
|
rb_hash_aset(args, ID2SYM(rb_intern("location")), location);
|
77
77
|
|
78
|
-
return
|
78
|
+
return CLASS_NEW_INSTANCE(
|
79
79
|
RBS_Types_Alias,
|
80
|
-
rb_intern("new"),
|
81
80
|
1,
|
82
|
-
&args
|
83
|
-
RB_PASS_KEYWORDS
|
81
|
+
&args
|
84
82
|
);
|
85
83
|
}
|
86
84
|
|
@@ -90,12 +88,10 @@ VALUE rbs_interface(VALUE typename, VALUE type_args, VALUE location) {
|
|
90
88
|
rb_hash_aset(args, ID2SYM(rb_intern("args")), type_args);
|
91
89
|
rb_hash_aset(args, ID2SYM(rb_intern("location")), location);
|
92
90
|
|
93
|
-
return
|
91
|
+
return CLASS_NEW_INSTANCE(
|
94
92
|
RBS_Types_Interface,
|
95
|
-
rb_intern("new"),
|
96
93
|
1,
|
97
|
-
&args
|
98
|
-
RB_PASS_KEYWORDS
|
94
|
+
&args
|
99
95
|
);
|
100
96
|
}
|
101
97
|
|
@@ -104,12 +100,10 @@ VALUE rbs_union(VALUE types, VALUE location) {
|
|
104
100
|
rb_hash_aset(args, ID2SYM(rb_intern("types")), types);
|
105
101
|
rb_hash_aset(args, ID2SYM(rb_intern("location")), location);
|
106
102
|
|
107
|
-
return
|
103
|
+
return CLASS_NEW_INSTANCE(
|
108
104
|
RBS_Types_Union,
|
109
|
-
rb_intern("new"),
|
110
105
|
1,
|
111
|
-
&args
|
112
|
-
RB_PASS_KEYWORDS
|
106
|
+
&args
|
113
107
|
);
|
114
108
|
}
|
115
109
|
|
@@ -118,12 +112,10 @@ VALUE rbs_intersection(VALUE types, VALUE location) {
|
|
118
112
|
rb_hash_aset(args, ID2SYM(rb_intern("types")), types);
|
119
113
|
rb_hash_aset(args, ID2SYM(rb_intern("location")), location);
|
120
114
|
|
121
|
-
return
|
115
|
+
return CLASS_NEW_INSTANCE(
|
122
116
|
RBS_Types_Intersection,
|
123
|
-
rb_intern("new"),
|
124
117
|
1,
|
125
|
-
&args
|
126
|
-
RB_PASS_KEYWORDS
|
118
|
+
&args
|
127
119
|
);
|
128
120
|
}
|
129
121
|
|
@@ -132,12 +124,10 @@ VALUE rbs_tuple(VALUE types, VALUE location) {
|
|
132
124
|
rb_hash_aset(args, ID2SYM(rb_intern("types")), types);
|
133
125
|
rb_hash_aset(args, ID2SYM(rb_intern("location")), location);
|
134
126
|
|
135
|
-
return
|
127
|
+
return CLASS_NEW_INSTANCE(
|
136
128
|
RBS_Types_Tuple,
|
137
|
-
rb_intern("new"),
|
138
129
|
1,
|
139
|
-
&args
|
140
|
-
RB_PASS_KEYWORDS
|
130
|
+
&args
|
141
131
|
);
|
142
132
|
}
|
143
133
|
|
@@ -146,12 +136,10 @@ VALUE rbs_optional(VALUE type, VALUE location) {
|
|
146
136
|
rb_hash_aset(args, ID2SYM(rb_intern("type")), type);
|
147
137
|
rb_hash_aset(args, ID2SYM(rb_intern("location")), location);
|
148
138
|
|
149
|
-
return
|
139
|
+
return CLASS_NEW_INSTANCE(
|
150
140
|
RBS_Types_Optional,
|
151
|
-
rb_intern("new"),
|
152
141
|
1,
|
153
|
-
&args
|
154
|
-
RB_PASS_KEYWORDS
|
142
|
+
&args
|
155
143
|
);
|
156
144
|
}
|
157
145
|
|
@@ -160,12 +148,10 @@ VALUE rbs_block(VALUE type, VALUE required) {
|
|
160
148
|
rb_hash_aset(args, ID2SYM(rb_intern("type")), type);
|
161
149
|
rb_hash_aset(args, ID2SYM(rb_intern("required")), required);
|
162
150
|
|
163
|
-
return
|
151
|
+
return CLASS_NEW_INSTANCE(
|
164
152
|
RBS_Types_Block,
|
165
|
-
rb_intern("new"),
|
166
153
|
1,
|
167
|
-
&args
|
168
|
-
RB_PASS_KEYWORDS
|
154
|
+
&args
|
169
155
|
);
|
170
156
|
}
|
171
157
|
|
@@ -175,12 +161,10 @@ VALUE rbs_function_param(VALUE type, VALUE name, VALUE location) {
|
|
175
161
|
rb_hash_aset(args, ID2SYM(rb_intern("name")), name);
|
176
162
|
rb_hash_aset(args, ID2SYM(rb_intern("location")), location);
|
177
163
|
|
178
|
-
return
|
164
|
+
return CLASS_NEW_INSTANCE(
|
179
165
|
RBS_Types_Function_Param,
|
180
|
-
rb_intern("new"),
|
181
166
|
1,
|
182
|
-
&args
|
183
|
-
RB_PASS_KEYWORDS
|
167
|
+
&args
|
184
168
|
);
|
185
169
|
}
|
186
170
|
|
@@ -204,12 +188,10 @@ VALUE rbs_function(
|
|
204
188
|
rb_hash_aset(args, ID2SYM(rb_intern("rest_keywords")), rest_keyword_param);
|
205
189
|
rb_hash_aset(args, ID2SYM(rb_intern("return_type")), return_type);
|
206
190
|
|
207
|
-
return
|
191
|
+
return CLASS_NEW_INSTANCE(
|
208
192
|
RBS_Types_Function,
|
209
|
-
rb_intern("new"),
|
210
193
|
1,
|
211
|
-
&args
|
212
|
-
RB_PASS_KEYWORDS
|
194
|
+
&args
|
213
195
|
);
|
214
196
|
}
|
215
197
|
|
@@ -219,12 +201,10 @@ VALUE rbs_proc(VALUE function, VALUE block, VALUE location) {
|
|
219
201
|
rb_hash_aset(args, ID2SYM(rb_intern("block")), block);
|
220
202
|
rb_hash_aset(args, ID2SYM(rb_intern("location")), location);
|
221
203
|
|
222
|
-
return
|
204
|
+
return CLASS_NEW_INSTANCE(
|
223
205
|
RBS_Types_Proc,
|
224
|
-
rb_intern("new"),
|
225
206
|
1,
|
226
|
-
&args
|
227
|
-
RB_PASS_KEYWORDS
|
207
|
+
&args
|
228
208
|
);
|
229
209
|
}
|
230
210
|
|
@@ -232,12 +212,10 @@ VALUE rbs_void(VALUE location) {
|
|
232
212
|
VALUE args = rb_hash_new();
|
233
213
|
rb_hash_aset(args, ID2SYM(rb_intern("location")), location);
|
234
214
|
|
235
|
-
return
|
215
|
+
return CLASS_NEW_INSTANCE(
|
236
216
|
RBS_Types_Bases_Void,
|
237
|
-
rb_intern("new"),
|
238
217
|
1,
|
239
|
-
&args
|
240
|
-
RB_PASS_KEYWORDS
|
218
|
+
&args
|
241
219
|
);
|
242
220
|
}
|
243
221
|
|
@@ -246,12 +224,10 @@ VALUE rbs_literal(VALUE literal, VALUE location) {
|
|
246
224
|
rb_hash_aset(args, ID2SYM(rb_intern("location")), location);
|
247
225
|
rb_hash_aset(args, ID2SYM(rb_intern("literal")), literal);
|
248
226
|
|
249
|
-
return
|
227
|
+
return CLASS_NEW_INSTANCE(
|
250
228
|
RBS_Types_Literal,
|
251
|
-
rb_intern("new"),
|
252
229
|
1,
|
253
|
-
&args
|
254
|
-
RB_PASS_KEYWORDS
|
230
|
+
&args
|
255
231
|
);
|
256
232
|
}
|
257
233
|
|
@@ -260,12 +236,10 @@ VALUE rbs_record(VALUE fields, VALUE location) {
|
|
260
236
|
rb_hash_aset(args, ID2SYM(rb_intern("location")), location);
|
261
237
|
rb_hash_aset(args, ID2SYM(rb_intern("fields")), fields);
|
262
238
|
|
263
|
-
return
|
239
|
+
return CLASS_NEW_INSTANCE(
|
264
240
|
RBS_Types_Record,
|
265
|
-
rb_intern("new"),
|
266
241
|
1,
|
267
|
-
&args
|
268
|
-
RB_PASS_KEYWORDS
|
242
|
+
&args
|
269
243
|
);
|
270
244
|
}
|
271
245
|
|
@@ -274,12 +248,10 @@ VALUE rbs_variable(VALUE name, VALUE location) {
|
|
274
248
|
rb_hash_aset(args, ID2SYM(rb_intern("location")), location);
|
275
249
|
rb_hash_aset(args, ID2SYM(rb_intern("name")), name);
|
276
250
|
|
277
|
-
return
|
251
|
+
return CLASS_NEW_INSTANCE(
|
278
252
|
RBS_Types_Variable,
|
279
|
-
rb_intern("new"),
|
280
253
|
1,
|
281
|
-
&args
|
282
|
-
RB_PASS_KEYWORDS
|
254
|
+
&args
|
283
255
|
);
|
284
256
|
}
|
285
257
|
|
@@ -290,12 +262,10 @@ VALUE rbs_method_type(VALUE type_params, VALUE type, VALUE block, VALUE location
|
|
290
262
|
rb_hash_aset(args, ID2SYM(rb_intern("block")), block);
|
291
263
|
rb_hash_aset(args, ID2SYM(rb_intern("location")), location);
|
292
264
|
|
293
|
-
return
|
265
|
+
return CLASS_NEW_INSTANCE(
|
294
266
|
RBS_MethodType,
|
295
|
-
rb_intern("new"),
|
296
267
|
1,
|
297
|
-
&args
|
298
|
-
RB_PASS_KEYWORDS
|
268
|
+
&args
|
299
269
|
);
|
300
270
|
}
|
301
271
|
|
@@ -304,12 +274,10 @@ VALUE rbs_ast_comment(VALUE string, VALUE location) {
|
|
304
274
|
rb_hash_aset(args, ID2SYM(rb_intern("string")), string);
|
305
275
|
rb_hash_aset(args, ID2SYM(rb_intern("location")), location);
|
306
276
|
|
307
|
-
return
|
277
|
+
return CLASS_NEW_INSTANCE(
|
308
278
|
RBS_AST_Comment,
|
309
|
-
rb_intern("new"),
|
310
279
|
1,
|
311
|
-
&args
|
312
|
-
RB_PASS_KEYWORDS
|
280
|
+
&args
|
313
281
|
);
|
314
282
|
}
|
315
283
|
|
@@ -318,12 +286,10 @@ VALUE rbs_ast_annotation(VALUE string, VALUE location) {
|
|
318
286
|
rb_hash_aset(args, ID2SYM(rb_intern("string")), string);
|
319
287
|
rb_hash_aset(args, ID2SYM(rb_intern("location")), location);
|
320
288
|
|
321
|
-
return
|
289
|
+
return CLASS_NEW_INSTANCE(
|
322
290
|
RBS_AST_Annotation,
|
323
|
-
rb_intern("new"),
|
324
291
|
1,
|
325
|
-
&args
|
326
|
-
RB_PASS_KEYWORDS
|
292
|
+
&args
|
327
293
|
);
|
328
294
|
}
|
329
295
|
|
@@ -338,12 +304,10 @@ VALUE rbs_ast_decl_module_type_params_param(VALUE name, VALUE variance, VALUE sk
|
|
338
304
|
rb_hash_aset(args, ID2SYM(rb_intern("skip_validation")), skip_validation);
|
339
305
|
rb_hash_aset(args, ID2SYM(rb_intern("location")), location);
|
340
306
|
|
341
|
-
return
|
307
|
+
return CLASS_NEW_INSTANCE(
|
342
308
|
RBS_AST_Declarations_ModuleTypeParams_TypeParam,
|
343
|
-
rb_intern("new"),
|
344
309
|
1,
|
345
|
-
&args
|
346
|
-
RB_PASS_KEYWORDS
|
310
|
+
&args
|
347
311
|
);
|
348
312
|
}
|
349
313
|
|
@@ -354,12 +318,10 @@ VALUE rbs_ast_decl_constant(VALUE name, VALUE type, VALUE location, VALUE commen
|
|
354
318
|
rb_hash_aset(args, ID2SYM(rb_intern("location")), location);
|
355
319
|
rb_hash_aset(args, ID2SYM(rb_intern("comment")), comment);
|
356
320
|
|
357
|
-
return
|
321
|
+
return CLASS_NEW_INSTANCE(
|
358
322
|
RBS_AST_Declarations_Constant,
|
359
|
-
rb_intern("new"),
|
360
323
|
1,
|
361
|
-
&args
|
362
|
-
RB_PASS_KEYWORDS
|
324
|
+
&args
|
363
325
|
);
|
364
326
|
}
|
365
327
|
|
@@ -370,12 +332,10 @@ VALUE rbs_ast_decl_global(VALUE name, VALUE type, VALUE location, VALUE comment)
|
|
370
332
|
rb_hash_aset(args, ID2SYM(rb_intern("location")), location);
|
371
333
|
rb_hash_aset(args, ID2SYM(rb_intern("comment")), comment);
|
372
334
|
|
373
|
-
return
|
335
|
+
return CLASS_NEW_INSTANCE(
|
374
336
|
RBS_AST_Declarations_Global,
|
375
|
-
rb_intern("new"),
|
376
337
|
1,
|
377
|
-
&args
|
378
|
-
RB_PASS_KEYWORDS
|
338
|
+
&args
|
379
339
|
);
|
380
340
|
}
|
381
341
|
|
@@ -387,12 +347,10 @@ VALUE rbs_ast_decl_alias(VALUE name, VALUE type, VALUE annotations, VALUE locati
|
|
387
347
|
rb_hash_aset(args, ID2SYM(rb_intern("location")), location);
|
388
348
|
rb_hash_aset(args, ID2SYM(rb_intern("comment")), comment);
|
389
349
|
|
390
|
-
return
|
350
|
+
return CLASS_NEW_INSTANCE(
|
391
351
|
RBS_AST_Declarations_Alias,
|
392
|
-
rb_intern("new"),
|
393
352
|
1,
|
394
|
-
&args
|
395
|
-
RB_PASS_KEYWORDS
|
353
|
+
&args
|
396
354
|
);
|
397
355
|
}
|
398
356
|
|
@@ -405,12 +363,10 @@ VALUE rbs_ast_decl_interface(VALUE name, VALUE type_params, VALUE members, VALUE
|
|
405
363
|
rb_hash_aset(args, ID2SYM(rb_intern("location")), location);
|
406
364
|
rb_hash_aset(args, ID2SYM(rb_intern("comment")), comment);
|
407
365
|
|
408
|
-
return
|
366
|
+
return CLASS_NEW_INSTANCE(
|
409
367
|
RBS_AST_Declarations_Interface,
|
410
|
-
rb_intern("new"),
|
411
368
|
1,
|
412
|
-
&args
|
413
|
-
RB_PASS_KEYWORDS
|
369
|
+
&args
|
414
370
|
);
|
415
371
|
}
|
416
372
|
|
@@ -420,12 +376,10 @@ VALUE rbs_ast_decl_module_self(VALUE name, VALUE args, VALUE location) {
|
|
420
376
|
rb_hash_aset(kw_args, ID2SYM(rb_intern("args")), args);
|
421
377
|
rb_hash_aset(kw_args, ID2SYM(rb_intern("location")), location);
|
422
378
|
|
423
|
-
return
|
379
|
+
return CLASS_NEW_INSTANCE(
|
424
380
|
RBS_AST_Declarations_Module_Self,
|
425
|
-
rb_intern("new"),
|
426
381
|
1,
|
427
|
-
&kw_args
|
428
|
-
RB_PASS_KEYWORDS
|
382
|
+
&kw_args
|
429
383
|
);
|
430
384
|
}
|
431
385
|
|
@@ -439,12 +393,10 @@ VALUE rbs_ast_decl_module(VALUE name, VALUE type_params, VALUE self_types, VALUE
|
|
439
393
|
rb_hash_aset(args, ID2SYM(rb_intern("location")), location);
|
440
394
|
rb_hash_aset(args, ID2SYM(rb_intern("comment")), comment);
|
441
395
|
|
442
|
-
return
|
396
|
+
return CLASS_NEW_INSTANCE(
|
443
397
|
RBS_AST_Declarations_Module,
|
444
|
-
rb_intern("new"),
|
445
398
|
1,
|
446
|
-
&args
|
447
|
-
RB_PASS_KEYWORDS
|
399
|
+
&args
|
448
400
|
);
|
449
401
|
}
|
450
402
|
|
@@ -458,12 +410,10 @@ VALUE rbs_ast_members_method_definition(VALUE name, VALUE kind, VALUE types, VAL
|
|
458
410
|
rb_hash_aset(args, ID2SYM(rb_intern("comment")), comment);
|
459
411
|
rb_hash_aset(args, ID2SYM(rb_intern("overload")), overload);
|
460
412
|
|
461
|
-
return
|
413
|
+
return CLASS_NEW_INSTANCE(
|
462
414
|
RBS_AST_Members_MethodDefinition,
|
463
|
-
rb_intern("new"),
|
464
415
|
1,
|
465
|
-
&args
|
466
|
-
RB_PASS_KEYWORDS
|
416
|
+
&args
|
467
417
|
);
|
468
418
|
}
|
469
419
|
|
@@ -474,12 +424,10 @@ VALUE rbs_ast_members_variable(VALUE klass, VALUE name, VALUE type, VALUE locati
|
|
474
424
|
rb_hash_aset(args, ID2SYM(rb_intern("location")), location);
|
475
425
|
rb_hash_aset(args, ID2SYM(rb_intern("comment")), comment);
|
476
426
|
|
477
|
-
return
|
427
|
+
return CLASS_NEW_INSTANCE(
|
478
428
|
klass,
|
479
|
-
rb_intern("new"),
|
480
429
|
1,
|
481
|
-
&args
|
482
|
-
RB_PASS_KEYWORDS
|
430
|
+
&args
|
483
431
|
);
|
484
432
|
}
|
485
433
|
|
@@ -491,12 +439,10 @@ VALUE rbs_ast_members_mixin(VALUE klass, VALUE name, VALUE module_args, VALUE an
|
|
491
439
|
rb_hash_aset(args, ID2SYM(rb_intern("location")), location);
|
492
440
|
rb_hash_aset(args, ID2SYM(rb_intern("comment")), comment);
|
493
441
|
|
494
|
-
return
|
442
|
+
return CLASS_NEW_INSTANCE(
|
495
443
|
klass,
|
496
|
-
rb_intern("new"),
|
497
444
|
1,
|
498
|
-
&args
|
499
|
-
RB_PASS_KEYWORDS
|
445
|
+
&args
|
500
446
|
);
|
501
447
|
}
|
502
448
|
|
@@ -510,12 +456,10 @@ VALUE rbs_ast_members_attribute(VALUE klass, VALUE name, VALUE type, VALUE ivar_
|
|
510
456
|
rb_hash_aset(args, ID2SYM(rb_intern("location")), location);
|
511
457
|
rb_hash_aset(args, ID2SYM(rb_intern("comment")), comment);
|
512
458
|
|
513
|
-
return
|
459
|
+
return CLASS_NEW_INSTANCE(
|
514
460
|
klass,
|
515
|
-
rb_intern("new"),
|
516
461
|
1,
|
517
|
-
&args
|
518
|
-
RB_PASS_KEYWORDS
|
462
|
+
&args
|
519
463
|
);
|
520
464
|
}
|
521
465
|
|
@@ -523,12 +467,10 @@ VALUE rbs_ast_members_visibility(VALUE klass, VALUE location) {
|
|
523
467
|
VALUE args = rb_hash_new();
|
524
468
|
rb_hash_aset(args, ID2SYM(rb_intern("location")), location);
|
525
469
|
|
526
|
-
return
|
470
|
+
return CLASS_NEW_INSTANCE(
|
527
471
|
klass,
|
528
|
-
rb_intern("new"),
|
529
472
|
1,
|
530
|
-
&args
|
531
|
-
RB_PASS_KEYWORDS
|
473
|
+
&args
|
532
474
|
);
|
533
475
|
}
|
534
476
|
|
@@ -541,12 +483,10 @@ VALUE rbs_ast_members_alias(VALUE new_name, VALUE old_name, VALUE kind, VALUE an
|
|
541
483
|
rb_hash_aset(args, ID2SYM(rb_intern("location")), location);
|
542
484
|
rb_hash_aset(args, ID2SYM(rb_intern("comment")), comment);
|
543
485
|
|
544
|
-
return
|
486
|
+
return CLASS_NEW_INSTANCE(
|
545
487
|
RBS_AST_Members_Alias,
|
546
|
-
rb_intern("new"),
|
547
488
|
1,
|
548
|
-
&args
|
549
|
-
RB_PASS_KEYWORDS
|
489
|
+
&args
|
550
490
|
);
|
551
491
|
}
|
552
492
|
|
@@ -556,12 +496,10 @@ VALUE rbs_ast_decl_class_super(VALUE name, VALUE args, VALUE location) {
|
|
556
496
|
rb_hash_aset(kwargs, ID2SYM(rb_intern("args")), args);
|
557
497
|
rb_hash_aset(kwargs, ID2SYM(rb_intern("location")), location);
|
558
498
|
|
559
|
-
return
|
499
|
+
return CLASS_NEW_INSTANCE(
|
560
500
|
RBS_AST_Declarations_Class_Super,
|
561
|
-
rb_intern("new"),
|
562
501
|
1,
|
563
|
-
&kwargs
|
564
|
-
RB_PASS_KEYWORDS
|
502
|
+
&kwargs
|
565
503
|
);
|
566
504
|
}
|
567
505
|
|
@@ -575,11 +513,9 @@ VALUE rbs_ast_decl_class(VALUE name, VALUE type_params, VALUE super_class, VALUE
|
|
575
513
|
rb_hash_aset(kwargs, ID2SYM(rb_intern("location")), location);
|
576
514
|
rb_hash_aset(kwargs, ID2SYM(rb_intern("comment")), comment);
|
577
515
|
|
578
|
-
return
|
516
|
+
return CLASS_NEW_INSTANCE(
|
579
517
|
RBS_AST_Declarations_Class,
|
580
|
-
rb_intern("new"),
|
581
518
|
1,
|
582
|
-
&kwargs
|
583
|
-
RB_PASS_KEYWORDS
|
519
|
+
&kwargs
|
584
520
|
);
|
585
521
|
}
|
@@ -102,7 +102,12 @@ module RBS
|
|
102
102
|
git 'fetch', 'origin'
|
103
103
|
end
|
104
104
|
else
|
105
|
-
|
105
|
+
begin
|
106
|
+
# git v2.27.0 or greater
|
107
|
+
git 'clone', '--filter=blob:none', remote, git_dir.to_s
|
108
|
+
rescue CommandError
|
109
|
+
git 'clone', remote, git_dir.to_s
|
110
|
+
end
|
106
111
|
end
|
107
112
|
|
108
113
|
begin
|
data/lib/rbs/errors.rb
CHANGED
@@ -32,10 +32,16 @@ module RBS
|
|
32
32
|
end
|
33
33
|
|
34
34
|
def error_value
|
35
|
+
RBS.print_warning {
|
36
|
+
"#{self.class.name}#error_value is deprecated and will be deleted in RBS 2.0. Consider using `location.source` instead."
|
37
|
+
}
|
35
38
|
location.source
|
36
39
|
end
|
37
40
|
|
38
41
|
def token_str
|
42
|
+
RBS.print_warning {
|
43
|
+
"#{self.class.name}#token_str is deprecated and will be deleted in RBS 2.0. Consider using `token_type` instead."
|
44
|
+
}
|
39
45
|
token_type
|
40
46
|
end
|
41
47
|
end
|
data/lib/rbs/parser_aux.rb
CHANGED
@@ -21,11 +21,43 @@ module RBS
|
|
21
21
|
end
|
22
22
|
end
|
23
23
|
|
24
|
-
SyntaxError
|
25
|
-
SemanticsError
|
26
|
-
LexerError
|
24
|
+
autoload :SyntaxError, "rbs/parser_compat/syntax_error"
|
25
|
+
autoload :SemanticsError, "rbs/parser_compat/semantics_error"
|
26
|
+
autoload :LexerError, "rbs/parser_compat/lexer_error"
|
27
|
+
autoload :LocatedValue, "rbs/parser_compat/located_value"
|
27
28
|
|
28
|
-
|
29
|
-
|
29
|
+
KEYWORDS = %w(
|
30
|
+
bool
|
31
|
+
bot
|
32
|
+
class
|
33
|
+
instance
|
34
|
+
interface
|
35
|
+
nil
|
36
|
+
self
|
37
|
+
singleton
|
38
|
+
top
|
39
|
+
void
|
40
|
+
type
|
41
|
+
unchecked
|
42
|
+
in
|
43
|
+
out
|
44
|
+
end
|
45
|
+
def
|
46
|
+
include
|
47
|
+
extend
|
48
|
+
prepend
|
49
|
+
alias
|
50
|
+
module
|
51
|
+
attr_reader
|
52
|
+
attr_writer
|
53
|
+
attr_accessor
|
54
|
+
public
|
55
|
+
private
|
56
|
+
untyped
|
57
|
+
true
|
58
|
+
false
|
59
|
+
).each_with_object({}) do |keyword, hash|
|
60
|
+
hash[keyword] = nil
|
61
|
+
end
|
30
62
|
end
|
31
63
|
end
|