rbs 1.1.0 → 1.3.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 +5 -1
- data/.gitignore +2 -0
- data/CHANGELOG.md +81 -0
- data/README.md +1 -1
- data/Rakefile +11 -0
- data/Steepfile +1 -0
- data/core/array.rbs +2 -2
- data/core/basic_object.rbs +1 -1
- data/core/enumerable.rbs +1 -1
- data/core/hash.rbs +13 -5
- data/core/io.rbs +4 -4
- data/core/kernel.rbs +2 -2
- data/core/marshal.rbs +4 -3
- data/core/module.rbs +1 -1
- data/core/numeric.rbs +10 -0
- data/core/proc.rbs +1 -1
- data/core/random.rbs +4 -2
- data/core/range.rbs +2 -2
- data/core/struct.rbs +3 -2
- data/core/thread.rbs +1 -1
- data/docs/CONTRIBUTING.md +5 -3
- data/docs/rbs_by_example.md +328 -0
- data/docs/sigs.md +21 -2
- data/docs/stdlib.md +1 -1
- data/docs/syntax.md +11 -14
- data/lib/rbs.rb +1 -0
- data/lib/rbs/ast/annotation.rb +2 -2
- data/lib/rbs/ast/comment.rb +2 -2
- data/lib/rbs/ast/declarations.rb +37 -22
- data/lib/rbs/ast/members.rb +26 -26
- data/lib/rbs/cli.rb +3 -0
- data/lib/rbs/constant_table.rb +4 -1
- data/lib/rbs/definition.rb +1 -1
- data/lib/rbs/definition_builder.rb +16 -18
- data/lib/rbs/definition_builder/ancestor_builder.rb +10 -2
- data/lib/rbs/definition_builder/method_builder.rb +4 -2
- data/lib/rbs/errors.rb +36 -0
- data/lib/rbs/location.rb +106 -2
- data/lib/rbs/locator.rb +205 -0
- data/lib/rbs/method_type.rb +2 -2
- data/lib/rbs/parser.rb +1315 -962
- data/lib/rbs/parser.y +411 -75
- data/lib/rbs/prototype/rb.rb +7 -3
- data/lib/rbs/prototype/runtime.rb +118 -42
- data/lib/rbs/test/hook.rb +8 -2
- data/lib/rbs/type_name.rb +2 -3
- data/lib/rbs/type_name_resolver.rb +1 -1
- data/lib/rbs/types.rb +36 -34
- data/lib/rbs/version.rb +1 -1
- data/lib/rbs/writer.rb +4 -2
- data/rbs.gemspec +1 -1
- data/sig/ancestor_builder.rbs +2 -0
- data/sig/annotation.rbs +1 -1
- data/sig/cli.rbs +31 -21
- data/sig/comment.rbs +1 -1
- data/sig/declarations.rbs +106 -21
- data/sig/environment.rbs +2 -2
- data/sig/errors.rbs +15 -0
- data/sig/location.rbs +84 -3
- data/sig/locator.rbs +44 -0
- data/sig/members.rbs +76 -12
- data/sig/method_builder.rbs +1 -1
- data/sig/method_types.rbs +1 -1
- data/sig/namespace.rbs +1 -1
- data/sig/polyfill.rbs +4 -17
- data/sig/rbs.rbs +8 -4
- data/sig/typename.rbs +1 -1
- data/sig/types.rbs +67 -20
- data/sig/util.rbs +0 -4
- data/sig/writer.rbs +8 -2
- data/stdlib/dbm/0/dbm.rbs +43 -30
- data/stdlib/mutex_m/0/mutex_m.rbs +1 -1
- data/stdlib/net-http/0/net-http.rbs +1846 -0
- data/stdlib/optparse/0/optparse.rbs +1214 -0
- data/stdlib/resolv/0/resolv.rbs +1504 -0
- data/stdlib/rubygems/0/requirement.rbs +84 -2
- data/stdlib/rubygems/0/rubygems.rbs +2 -2
- data/stdlib/rubygems/0/version.rbs +2 -1
- data/stdlib/shellwords/0/shellwords.rbs +252 -0
- data/stdlib/socket/0/addrinfo.rbs +469 -0
- data/stdlib/socket/0/basic_socket.rbs +503 -0
- data/stdlib/socket/0/ip_socket.rbs +72 -0
- data/stdlib/socket/0/socket.rbs +2687 -0
- data/stdlib/socket/0/tcp_server.rbs +177 -0
- data/stdlib/socket/0/tcp_socket.rbs +35 -0
- data/stdlib/socket/0/udp_socket.rbs +111 -0
- data/stdlib/socket/0/unix_server.rbs +154 -0
- data/stdlib/socket/0/unix_socket.rbs +132 -0
- data/stdlib/timeout/0/timeout.rbs +5 -0
- data/steep/Gemfile.lock +19 -16
- metadata +18 -11
- data/bin/annotate-with-rdoc +0 -153
- data/bin/console +0 -14
- data/bin/query-rdoc +0 -103
- data/bin/rbs-prof +0 -9
- data/bin/run_in_md.rb +0 -49
- data/bin/setup +0 -8
- data/bin/sort +0 -89
- data/bin/steep +0 -4
- data/bin/test_runner.rb +0 -29
data/lib/rbs/prototype/rb.rb
CHANGED
@@ -148,7 +148,7 @@ module RBS
|
|
148
148
|
types = [
|
149
149
|
MethodType.new(
|
150
150
|
type_params: [],
|
151
|
-
type: function_type_from_body(def_body),
|
151
|
+
type: function_type_from_body(def_body, def_name),
|
152
152
|
block: block_from_body(def_body),
|
153
153
|
location: nil
|
154
154
|
)
|
@@ -377,12 +377,16 @@ module RBS
|
|
377
377
|
each_node node.children, &block
|
378
378
|
end
|
379
379
|
|
380
|
-
def function_type_from_body(node)
|
380
|
+
def function_type_from_body(node, def_name)
|
381
381
|
table_node, args_node, *_ = node.children
|
382
382
|
|
383
383
|
pre_num, _pre_init, opt, _first_post, post_num, _post_init, rest, kw, kwrest, _block = args_from_node(args_node)
|
384
384
|
|
385
|
-
return_type =
|
385
|
+
return_type = if def_name == :initialize
|
386
|
+
Types::Bases::Void.new(location: nil)
|
387
|
+
else
|
388
|
+
function_return_type_from_body(node)
|
389
|
+
end
|
386
390
|
|
387
391
|
fun = Types::Function.empty(return_type)
|
388
392
|
|
@@ -9,6 +9,7 @@ module RBS
|
|
9
9
|
def initialize(patterns:, env:, merge:, owners_included: [])
|
10
10
|
@patterns = patterns
|
11
11
|
@decls = nil
|
12
|
+
@modules = []
|
12
13
|
@env = env
|
13
14
|
@merge = merge
|
14
15
|
@owners_included = owners_included.map do |name|
|
@@ -39,7 +40,8 @@ module RBS
|
|
39
40
|
def decls
|
40
41
|
unless @decls
|
41
42
|
@decls = []
|
42
|
-
ObjectSpace.each_object(Module).
|
43
|
+
@modules = ObjectSpace.each_object(Module).to_a
|
44
|
+
@modules.select {|mod| target?(mod) }.sort_by{|mod| const_name(mod) }.each do |mod|
|
43
45
|
case mod
|
44
46
|
when Class
|
45
47
|
generate_class mod
|
@@ -48,16 +50,21 @@ module RBS
|
|
48
50
|
end
|
49
51
|
end
|
50
52
|
end
|
53
|
+
|
51
54
|
@decls
|
52
55
|
end
|
53
56
|
|
54
|
-
def to_type_name(name)
|
57
|
+
def to_type_name(name, full_name: false)
|
55
58
|
*prefix, last = name.split(/::/)
|
56
59
|
|
57
|
-
if
|
58
|
-
|
60
|
+
if full_name
|
61
|
+
if prefix.empty?
|
62
|
+
TypeName.new(name: last.to_sym, namespace: Namespace.empty)
|
63
|
+
else
|
64
|
+
TypeName.new(name: last.to_sym, namespace: Namespace.parse(prefix.join("::")))
|
65
|
+
end
|
59
66
|
else
|
60
|
-
TypeName.new(name: last.to_sym, namespace: Namespace.
|
67
|
+
TypeName.new(name: last.to_sym, namespace: Namespace.empty)
|
61
68
|
end
|
62
69
|
end
|
63
70
|
|
@@ -131,6 +138,11 @@ module RBS
|
|
131
138
|
end
|
132
139
|
end
|
133
140
|
|
141
|
+
return_type = if method.name == :initialize
|
142
|
+
Types::Bases::Void.new(location: nil)
|
143
|
+
else
|
144
|
+
untyped
|
145
|
+
end
|
134
146
|
method_type = Types::Function.new(
|
135
147
|
required_positionals: required_positionals,
|
136
148
|
optional_positionals: optional_positionals,
|
@@ -139,7 +151,7 @@ module RBS
|
|
139
151
|
required_keywords: required_keywords,
|
140
152
|
optional_keywords: optional_keywords,
|
141
153
|
rest_keywords: rest_keywords,
|
142
|
-
return_type:
|
154
|
+
return_type: return_type,
|
143
155
|
)
|
144
156
|
|
145
157
|
MethodType.new(
|
@@ -300,7 +312,7 @@ module RBS
|
|
300
312
|
end
|
301
313
|
end
|
302
314
|
|
303
|
-
def generate_constants(mod)
|
315
|
+
def generate_constants(mod, decls)
|
304
316
|
mod.constants(false).sort.each do |name|
|
305
317
|
value = mod.const_get(name)
|
306
318
|
|
@@ -324,8 +336,8 @@ module RBS
|
|
324
336
|
Types::ClassInstance.new(name: value_type_name, args: args, location: nil)
|
325
337
|
end
|
326
338
|
|
327
|
-
|
328
|
-
name:
|
339
|
+
decls << AST::Declarations::Constant.new(
|
340
|
+
name: name,
|
329
341
|
type: type,
|
330
342
|
location: nil,
|
331
343
|
comment: nil
|
@@ -333,28 +345,38 @@ module RBS
|
|
333
345
|
end
|
334
346
|
end
|
335
347
|
|
348
|
+
def generate_super_class(mod)
|
349
|
+
if mod.superclass == ::Object
|
350
|
+
nil
|
351
|
+
elsif const_name(mod.superclass).nil?
|
352
|
+
RBS.logger.warn("Skipping anonymous superclass #{mod.superclass} of #{mod}")
|
353
|
+
nil
|
354
|
+
else
|
355
|
+
super_name = to_type_name(const_name(mod.superclass), full_name: true)
|
356
|
+
super_args = type_args(super_name)
|
357
|
+
AST::Declarations::Class::Super.new(name: super_name, args: super_args, location: nil)
|
358
|
+
end
|
359
|
+
end
|
360
|
+
|
336
361
|
def generate_class(mod)
|
337
362
|
type_name = to_type_name(const_name(mod))
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
|
342
|
-
|
343
|
-
|
344
|
-
|
345
|
-
|
346
|
-
|
347
|
-
|
363
|
+
outer_decls = ensure_outer_module_declarations(mod)
|
364
|
+
|
365
|
+
# Check if a declaration exists for the actual module
|
366
|
+
decl = outer_decls.detect { |decl| decl.is_a?(AST::Declarations::Class) && decl.name.name == only_name(mod).to_sym }
|
367
|
+
unless decl
|
368
|
+
decl = AST::Declarations::Class.new(
|
369
|
+
name: to_type_name(only_name(mod)),
|
370
|
+
type_params: AST::Declarations::ModuleTypeParams.empty,
|
371
|
+
super_class: generate_super_class(mod),
|
372
|
+
members: [],
|
373
|
+
annotations: [],
|
374
|
+
location: nil,
|
375
|
+
comment: nil
|
376
|
+
)
|
348
377
|
|
349
|
-
|
350
|
-
|
351
|
-
type_params: AST::Declarations::ModuleTypeParams.empty,
|
352
|
-
super_class: super_class,
|
353
|
-
members: [],
|
354
|
-
annotations: [],
|
355
|
-
location: nil,
|
356
|
-
comment: nil
|
357
|
-
)
|
378
|
+
outer_decls << decl
|
379
|
+
end
|
358
380
|
|
359
381
|
each_included_module(type_name, mod) do |module_name, module_full_name, _|
|
360
382
|
args = type_args(module_full_name)
|
@@ -380,9 +402,7 @@ module RBS
|
|
380
402
|
|
381
403
|
generate_methods(mod, type_name, decl.members)
|
382
404
|
|
383
|
-
|
384
|
-
|
385
|
-
generate_constants mod
|
405
|
+
generate_constants mod, decl.members
|
386
406
|
end
|
387
407
|
|
388
408
|
def generate_module(mod)
|
@@ -394,16 +414,23 @@ module RBS
|
|
394
414
|
end
|
395
415
|
|
396
416
|
type_name = to_type_name(name)
|
417
|
+
outer_decls = ensure_outer_module_declarations(mod)
|
418
|
+
|
419
|
+
# Check if a declaration exists for the actual class
|
420
|
+
decl = outer_decls.detect { |decl| decl.is_a?(AST::Declarations::Module) && decl.name.name == only_name(mod).to_sym }
|
421
|
+
unless decl
|
422
|
+
decl = AST::Declarations::Module.new(
|
423
|
+
name: to_type_name(only_name(mod)),
|
424
|
+
type_params: AST::Declarations::ModuleTypeParams.empty,
|
425
|
+
self_types: [],
|
426
|
+
members: [],
|
427
|
+
annotations: [],
|
428
|
+
location: nil,
|
429
|
+
comment: nil
|
430
|
+
)
|
397
431
|
|
398
|
-
|
399
|
-
|
400
|
-
type_params: AST::Declarations::ModuleTypeParams.empty,
|
401
|
-
self_types: [],
|
402
|
-
members: [],
|
403
|
-
annotations: [],
|
404
|
-
location: nil,
|
405
|
-
comment: nil
|
406
|
-
)
|
432
|
+
outer_decls << decl
|
433
|
+
end
|
407
434
|
|
408
435
|
each_included_module(type_name, mod) do |module_name, module_full_name, _|
|
409
436
|
args = type_args(module_full_name)
|
@@ -429,9 +456,58 @@ module RBS
|
|
429
456
|
|
430
457
|
generate_methods(mod, type_name, decl.members)
|
431
458
|
|
432
|
-
|
459
|
+
generate_constants mod, decl.members
|
460
|
+
end
|
461
|
+
|
462
|
+
# Generate/find outer module declarations
|
463
|
+
# This is broken down into another method to comply with `DRY`
|
464
|
+
# This generates/finds declarations in nested form & returns the last array of declarations
|
465
|
+
def ensure_outer_module_declarations(mod)
|
466
|
+
*outer_module_names, _ = const_name(mod).split(/::/) #=> parent = [A, B], mod = C
|
467
|
+
destination = @decls # Copy the entries in ivar @decls, not .dup
|
468
|
+
|
469
|
+
outer_module_names&.each do |outer_module_name|
|
470
|
+
outer_module = @modules.detect { |x| const_name(x) == outer_module_name }
|
471
|
+
outer_decl = destination.detect { |decl| decl.is_a?(outer_module.is_a?(Class) ? AST::Declarations::Class : AST::Declarations::Module) && decl.name.name == outer_module_name.to_sym }
|
472
|
+
|
473
|
+
# Insert AST::Declarations if declarations are not added previously
|
474
|
+
unless outer_decl
|
475
|
+
if outer_module.is_a?(Class)
|
476
|
+
outer_decl = AST::Declarations::Class.new(
|
477
|
+
name: to_type_name(outer_module_name),
|
478
|
+
type_params: AST::Declarations::ModuleTypeParams.empty,
|
479
|
+
super_class: generate_super_class(outer_module),
|
480
|
+
members: [],
|
481
|
+
annotations: [],
|
482
|
+
location: nil,
|
483
|
+
comment: nil
|
484
|
+
)
|
485
|
+
else
|
486
|
+
outer_decl = AST::Declarations::Module.new(
|
487
|
+
name: to_type_name(outer_module_name),
|
488
|
+
type_params: AST::Declarations::ModuleTypeParams.empty,
|
489
|
+
self_types: [],
|
490
|
+
members: [],
|
491
|
+
annotations: [],
|
492
|
+
location: nil,
|
493
|
+
comment: nil
|
494
|
+
)
|
495
|
+
end
|
496
|
+
|
497
|
+
destination << outer_decl
|
498
|
+
end
|
499
|
+
|
500
|
+
destination = outer_decl.members
|
501
|
+
end
|
502
|
+
|
503
|
+
# Return the array of declarations checked out at the end
|
504
|
+
destination
|
505
|
+
end
|
433
506
|
|
434
|
-
|
507
|
+
# Returns the exact name & not compactly declared name
|
508
|
+
def only_name(mod)
|
509
|
+
# No nil check because this method is invoked after checking if the module exists
|
510
|
+
const_name(mod).split(/::/).last # (A::B::C) => C
|
435
511
|
end
|
436
512
|
|
437
513
|
def const_name(const)
|
data/lib/rbs/test/hook.rb
CHANGED
@@ -25,7 +25,11 @@ module RBS
|
|
25
25
|
:! => "not",
|
26
26
|
:<< => "lshift",
|
27
27
|
:>> => "rshift",
|
28
|
-
:~ => "tilda"
|
28
|
+
:~ => "tilda",
|
29
|
+
:=~ => "eqtilda",
|
30
|
+
:% => "percent",
|
31
|
+
:+@ => "unary_plus",
|
32
|
+
:-@ => "unary_minus"
|
29
33
|
}
|
30
34
|
def self.alias_names(target, random)
|
31
35
|
suffix = "#{RBS::Test.suffix}_#{random}"
|
@@ -71,7 +75,9 @@ module RBS
|
|
71
75
|
with_name, without_name = alias_names(method_name, random)
|
72
76
|
full_method_name = "#{prefix}#{method_name}"
|
73
77
|
|
74
|
-
param_source = params.take_while {|param| param[0] == :req }
|
78
|
+
param_source = params.take_while {|param| param[0] == :req }
|
79
|
+
.map.with_index {|pair, index| pair[1] || "__req__#{random}__#{index}" }
|
80
|
+
param_source.push("*rest_args__#{random}")
|
75
81
|
block_param = "block__#{random}"
|
76
82
|
|
77
83
|
RBS.logger.debug {
|
data/lib/rbs/type_name.rb
CHANGED
data/lib/rbs/types.rb
CHANGED
@@ -52,9 +52,9 @@ module RBS
|
|
52
52
|
include EmptyEachType
|
53
53
|
include NoTypeName
|
54
54
|
|
55
|
-
def to_json(
|
55
|
+
def to_json(state = _ = nil)
|
56
56
|
klass = to_s.to_sym
|
57
|
-
{ class: klass, location: location }.to_json(
|
57
|
+
{ class: klass, location: location }.to_json(state)
|
58
58
|
end
|
59
59
|
|
60
60
|
def to_s(level = 0)
|
@@ -125,8 +125,8 @@ module RBS
|
|
125
125
|
end
|
126
126
|
end
|
127
127
|
|
128
|
-
def to_json(
|
129
|
-
{ class: :variable, name: name, location: location }.to_json(
|
128
|
+
def to_json(state = _ = nil)
|
129
|
+
{ class: :variable, name: name, location: location }.to_json(state)
|
130
130
|
end
|
131
131
|
|
132
132
|
def sub(s)
|
@@ -177,8 +177,8 @@ module RBS
|
|
177
177
|
include NoFreeVariables
|
178
178
|
include NoSubst
|
179
179
|
|
180
|
-
def to_json(
|
181
|
-
{ class: :class_singleton, name: name, location: location }.to_json(
|
180
|
+
def to_json(state = _ = nil)
|
181
|
+
{ class: :class_singleton, name: name, location: location }.to_json(state)
|
182
182
|
end
|
183
183
|
|
184
184
|
def to_s(level = 0)
|
@@ -245,8 +245,8 @@ module RBS
|
|
245
245
|
@location = location
|
246
246
|
end
|
247
247
|
|
248
|
-
def to_json(
|
249
|
-
{ class: :interface, name: name, args: args, location: location }.to_json(
|
248
|
+
def to_json(state = _ = nil)
|
249
|
+
{ class: :interface, name: name, args: args, location: location }.to_json(state)
|
250
250
|
end
|
251
251
|
|
252
252
|
def sub(s)
|
@@ -275,8 +275,8 @@ module RBS
|
|
275
275
|
@location = location
|
276
276
|
end
|
277
277
|
|
278
|
-
def to_json(
|
279
|
-
{ class: :class_instance, name: name, args: args, location: location }.to_json(
|
278
|
+
def to_json(state = _ = nil)
|
279
|
+
{ class: :class_instance, name: name, args: args, location: location }.to_json(state)
|
280
280
|
end
|
281
281
|
|
282
282
|
def sub(s)
|
@@ -316,8 +316,8 @@ module RBS
|
|
316
316
|
include NoFreeVariables
|
317
317
|
include NoSubst
|
318
318
|
|
319
|
-
def to_json(
|
320
|
-
{ class: :alias, name: name, location: location }.to_json(
|
319
|
+
def to_json(state = _ = nil)
|
320
|
+
{ class: :alias, name: name, location: location }.to_json(state)
|
321
321
|
end
|
322
322
|
|
323
323
|
def to_s(level = 0)
|
@@ -361,8 +361,8 @@ module RBS
|
|
361
361
|
end
|
362
362
|
end
|
363
363
|
|
364
|
-
def to_json(
|
365
|
-
{ class: :tuple, types: types, location: location }.to_json(
|
364
|
+
def to_json(state = _ = nil)
|
365
|
+
{ class: :tuple, types: types, location: location }.to_json(state)
|
366
366
|
end
|
367
367
|
|
368
368
|
def sub(s)
|
@@ -421,8 +421,8 @@ module RBS
|
|
421
421
|
end
|
422
422
|
end
|
423
423
|
|
424
|
-
def to_json(
|
425
|
-
{ class: :record, fields: fields, location: location }.to_json(
|
424
|
+
def to_json(state = _ = nil)
|
425
|
+
{ class: :record, fields: fields, location: location }.to_json(state)
|
426
426
|
end
|
427
427
|
|
428
428
|
def sub(s)
|
@@ -482,8 +482,8 @@ module RBS
|
|
482
482
|
type.free_variables(set)
|
483
483
|
end
|
484
484
|
|
485
|
-
def to_json(
|
486
|
-
{ class: :optional, type: type, location: location }.to_json(
|
485
|
+
def to_json(state = _ = nil)
|
486
|
+
{ class: :optional, type: type, location: location }.to_json(state)
|
487
487
|
end
|
488
488
|
|
489
489
|
def sub(s)
|
@@ -545,8 +545,8 @@ module RBS
|
|
545
545
|
end
|
546
546
|
end
|
547
547
|
|
548
|
-
def to_json(
|
549
|
-
{ class: :union, types: types, location: location }.to_json(
|
548
|
+
def to_json(state = _ = nil)
|
549
|
+
{ class: :union, types: types, location: location }.to_json(state)
|
550
550
|
end
|
551
551
|
|
552
552
|
def sub(s)
|
@@ -613,8 +613,8 @@ module RBS
|
|
613
613
|
end
|
614
614
|
end
|
615
615
|
|
616
|
-
def to_json(
|
617
|
-
{ class: :intersection, types: types, location: location }.to_json(
|
616
|
+
def to_json(state = _ = nil)
|
617
|
+
{ class: :intersection, types: types, location: location }.to_json(state)
|
618
618
|
end
|
619
619
|
|
620
620
|
def sub(s)
|
@@ -659,10 +659,12 @@ module RBS
|
|
659
659
|
class Param
|
660
660
|
attr_reader :type
|
661
661
|
attr_reader :name
|
662
|
+
attr_reader :location
|
662
663
|
|
663
|
-
def initialize(type:, name:)
|
664
|
+
def initialize(type:, name:, location: nil)
|
664
665
|
@type = type
|
665
666
|
@name = name
|
667
|
+
@location = location
|
666
668
|
end
|
667
669
|
|
668
670
|
def ==(other)
|
@@ -677,14 +679,14 @@ module RBS
|
|
677
679
|
|
678
680
|
def map_type(&block)
|
679
681
|
if block
|
680
|
-
Param.new(name: name, type: yield(type))
|
682
|
+
Param.new(name: name, type: yield(type), location: location)
|
681
683
|
else
|
682
684
|
enum_for :map_type
|
683
685
|
end
|
684
686
|
end
|
685
687
|
|
686
|
-
def to_json(
|
687
|
-
{ type: type, name: name }.to_json(
|
688
|
+
def to_json(state = _ = nil)
|
689
|
+
{ type: type, name: name }.to_json(state)
|
688
690
|
end
|
689
691
|
|
690
692
|
def to_s
|
@@ -826,7 +828,7 @@ module RBS
|
|
826
828
|
end
|
827
829
|
end
|
828
830
|
|
829
|
-
def to_json(
|
831
|
+
def to_json(state = _ = nil)
|
830
832
|
{
|
831
833
|
required_positionals: required_positionals,
|
832
834
|
optional_positionals: optional_positionals,
|
@@ -836,7 +838,7 @@ module RBS
|
|
836
838
|
optional_keywords: optional_keywords,
|
837
839
|
rest_keywords: rest_keywords,
|
838
840
|
return_type: return_type
|
839
|
-
}.to_json(
|
841
|
+
}.to_json(state)
|
840
842
|
end
|
841
843
|
|
842
844
|
def sub(s)
|
@@ -966,11 +968,11 @@ module RBS
|
|
966
968
|
other.required == required
|
967
969
|
end
|
968
970
|
|
969
|
-
def to_json(
|
971
|
+
def to_json(state = _ = nil)
|
970
972
|
{
|
971
973
|
type: type,
|
972
974
|
required: required
|
973
|
-
}.to_json(
|
975
|
+
}.to_json(state)
|
974
976
|
end
|
975
977
|
|
976
978
|
def sub(s)
|
@@ -1015,13 +1017,13 @@ module RBS
|
|
1015
1017
|
set
|
1016
1018
|
end
|
1017
1019
|
|
1018
|
-
def to_json(
|
1020
|
+
def to_json(state = _ = nil)
|
1019
1021
|
{
|
1020
1022
|
class: :proc,
|
1021
1023
|
type: type,
|
1022
1024
|
block: block,
|
1023
1025
|
location: location
|
1024
|
-
}.to_json(
|
1026
|
+
}.to_json(state)
|
1025
1027
|
end
|
1026
1028
|
|
1027
1029
|
def sub(s)
|
@@ -1083,8 +1085,8 @@ module RBS
|
|
1083
1085
|
include EmptyEachType
|
1084
1086
|
include NoTypeName
|
1085
1087
|
|
1086
|
-
def to_json(
|
1087
|
-
{ class: :literal, literal: literal.inspect, location: location }.to_json(
|
1088
|
+
def to_json(state = _ = nil)
|
1089
|
+
{ class: :literal, literal: literal.inspect, location: location }.to_json(state)
|
1088
1090
|
end
|
1089
1091
|
|
1090
1092
|
def to_s(level = 0)
|