steep 1.4.0.dev.2 → 1.4.0.dev.4
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 +1 -2
- data/Gemfile +1 -1
- data/Gemfile.lock +9 -11
- data/Gemfile.steep +1 -2
- data/Gemfile.steep.lock +11 -14
- data/README.md +7 -1
- data/Steepfile +0 -3
- data/bin/rbs +0 -1
- data/guides/README.md +5 -0
- data/guides/src/gem-rbs-collection/gem-rbs-collection.md +143 -0
- data/guides/src/getting-started/getting-started.md +164 -0
- data/guides/src/nil-optional/nil-optional.md +195 -0
- data/lib/steep/diagnostic/ruby.rb +80 -6
- data/lib/steep/drivers/check.rb +4 -4
- data/lib/steep/interface/block.rb +10 -0
- data/lib/steep/interface/builder.rb +3 -3
- data/lib/steep/method_name.rb +8 -0
- data/lib/steep/module_helper.rb +13 -11
- data/lib/steep/path_helper.rb +4 -0
- data/lib/steep/server/interaction_worker.rb +197 -230
- data/lib/steep/server/lsp_formatter.rb +308 -154
- data/lib/steep/server/master.rb +4 -1
- data/lib/steep/services/completion_provider.rb +140 -103
- data/lib/steep/services/hover_provider/rbs.rb +37 -32
- data/lib/steep/services/signature_help_provider.rb +108 -0
- data/lib/steep/services/type_name_completion.rb +165 -0
- data/lib/steep/source.rb +1 -0
- data/lib/steep/type_construction.rb +460 -266
- data/lib/steep/type_inference/block_params.rb +13 -0
- data/lib/steep/type_inference/context.rb +3 -3
- data/lib/steep/type_inference/method_call.rb +1 -1
- data/lib/steep/type_inference/method_params.rb +42 -16
- data/lib/steep/type_inference/send_args.rb +80 -51
- data/lib/steep/type_inference/type_env.rb +12 -4
- data/lib/steep/version.rb +1 -1
- data/lib/steep.rb +2 -0
- data/rbs_collection.steep.lock.yaml +0 -28
- data/rbs_collection.steep.yaml +10 -9
- data/sample/Steepfile +2 -0
- data/sample/lib/conference.rb +12 -0
- data/sample/sig/conference.rbs +5 -0
- data/sig/shims/language-server_protocol.rbs +277 -0
- data/sig/shims/parser/nodes.rbs +37 -0
- data/sig/shims/parser.rbs +4 -0
- data/sig/shims/string.rbs +4 -0
- data/sig/steep/ast/types/factory.rbs +10 -8
- data/sig/steep/diagnostic/lsp_formatter.rbs +1 -1
- data/sig/steep/diagnostic/ruby.rbs +38 -2
- data/sig/steep/drivers/check.rbs +1 -1
- data/sig/steep/drivers/checkfile.rbs +1 -1
- data/sig/steep/drivers/diagnostic_printer.rbs +1 -1
- data/sig/steep/drivers/watch.rbs +1 -1
- data/sig/steep/index/signature_symbol_provider.rbs +1 -1
- data/sig/steep/interface/block.rbs +2 -0
- data/sig/steep/interface/builder.rbs +5 -3
- data/sig/steep/interface/method_type.rbs +5 -3
- data/sig/steep/method_name.rbs +5 -1
- data/sig/steep/module_helper.rbs +9 -0
- data/sig/steep/path_helper.rbs +3 -1
- data/sig/steep/server/base_worker.rbs +1 -1
- data/sig/steep/server/interaction_worker.rbs +52 -17
- data/sig/steep/server/lsp_formatter.rbs +43 -18
- data/sig/steep/server/master.rbs +1 -1
- data/sig/steep/server/type_check_worker.rbs +7 -5
- data/sig/steep/server/worker_process.rbs +6 -4
- data/sig/steep/services/completion_provider.rbs +106 -28
- data/sig/steep/services/hover_provider/rbs.rbs +13 -9
- data/sig/steep/services/signature_help_provider.rbs +39 -0
- data/sig/steep/services/type_name_completion.rbs +122 -0
- data/sig/steep/type_construction.rbs +99 -30
- data/sig/steep/type_inference/block_params.rbs +4 -0
- data/sig/steep/type_inference/context.rbs +70 -22
- data/sig/steep/type_inference/method_call.rbs +1 -1
- data/sig/steep/type_inference/method_params.rbs +43 -24
- data/sig/steep/type_inference/multiple_assignment.rbs +1 -1
- data/sig/steep/type_inference/send_args.rbs +19 -5
- data/sig/steep/typing.rbs +8 -3
- data/smoke/diagnostics/test_expectations.yml +1 -0
- data/steep.gemspec +0 -1
- metadata +12 -16
@@ -328,6 +328,19 @@ module Steep
|
|
328
328
|
end
|
329
329
|
end
|
330
330
|
|
331
|
+
def each_single_param()
|
332
|
+
each do |param|
|
333
|
+
case param
|
334
|
+
when Param
|
335
|
+
yield param
|
336
|
+
when MultipleParam
|
337
|
+
param.each_param do |p|
|
338
|
+
yield p
|
339
|
+
end
|
340
|
+
end
|
341
|
+
end
|
342
|
+
end
|
343
|
+
|
331
344
|
def self.from_multiple(node, annotations)
|
332
345
|
# @type var params: Array[Param | MultipleParam]
|
333
346
|
params = []
|
@@ -6,16 +6,16 @@ module Steep
|
|
6
6
|
attr_reader :method
|
7
7
|
attr_reader :method_type
|
8
8
|
attr_reader :return_type
|
9
|
-
attr_reader :constructor
|
10
9
|
attr_reader :super_method
|
10
|
+
attr_reader :forward_arg_type
|
11
11
|
|
12
|
-
def initialize(name:, method:, method_type:, return_type:,
|
12
|
+
def initialize(name:, method:, method_type:, return_type:, super_method:, forward_arg_type:)
|
13
13
|
@name = name
|
14
14
|
@method = method
|
15
15
|
@return_type = return_type
|
16
16
|
@method_type = method_type
|
17
|
-
@constructor = constructor
|
18
17
|
@super_method = super_method
|
18
|
+
@forward_arg_type = forward_arg_type
|
19
19
|
end
|
20
20
|
|
21
21
|
def block_type
|
@@ -143,24 +143,34 @@ module Steep
|
|
143
143
|
attr_reader :method_type
|
144
144
|
attr_reader :params
|
145
145
|
attr_reader :errors
|
146
|
+
attr_reader :forward_arg_type
|
146
147
|
|
147
|
-
def initialize(args:, method_type:)
|
148
|
+
def initialize(args:, method_type:, forward_arg_type:)
|
148
149
|
@args = args
|
149
150
|
@method_type = method_type
|
150
151
|
@params = {}
|
151
152
|
@errors = []
|
153
|
+
@forward_arg_type = forward_arg_type
|
152
154
|
end
|
153
155
|
|
154
156
|
def [](name)
|
155
157
|
params[name] or raise "Unknown variable name: #{name}"
|
156
158
|
end
|
157
159
|
|
160
|
+
def param?(name)
|
161
|
+
params.key?(name)
|
162
|
+
end
|
163
|
+
|
158
164
|
def size
|
159
165
|
params.size
|
160
166
|
end
|
161
167
|
|
162
168
|
def each_param(&block)
|
163
|
-
|
169
|
+
if block
|
170
|
+
params.each_value(&block)
|
171
|
+
else
|
172
|
+
params.each_value
|
173
|
+
end
|
164
174
|
end
|
165
175
|
|
166
176
|
def each
|
@@ -173,7 +183,12 @@ module Steep
|
|
173
183
|
end
|
174
184
|
end
|
175
185
|
|
186
|
+
def update(forward_arg_type: self.forward_arg_type)
|
187
|
+
MethodParams.new(args: args, method_type: method_type, forward_arg_type: forward_arg_type)
|
188
|
+
end
|
189
|
+
|
176
190
|
def self.empty(node:)
|
191
|
+
# @type var args_node: ::Parser::AST::Node
|
177
192
|
args_node =
|
178
193
|
case node.type
|
179
194
|
when :def
|
@@ -184,9 +199,10 @@ module Steep
|
|
184
199
|
raise
|
185
200
|
end
|
186
201
|
|
187
|
-
params = new(args: args_node.children, method_type: nil)
|
202
|
+
params = new(args: args_node.children, method_type: nil, forward_arg_type: nil)
|
188
203
|
|
189
204
|
args_node.children.each do |arg|
|
205
|
+
# @type var arg: ::Parser::AST::Node
|
190
206
|
case arg.type
|
191
207
|
when :arg, :optarg
|
192
208
|
name = arg.children[0]
|
@@ -210,6 +226,7 @@ module Steep
|
|
210
226
|
end
|
211
227
|
|
212
228
|
def self.build(node:, method_type:)
|
229
|
+
# @type var args_node: ::Parser::AST::Node
|
213
230
|
args_node =
|
214
231
|
case node.type
|
215
232
|
when :def
|
@@ -219,17 +236,17 @@ module Steep
|
|
219
236
|
else
|
220
237
|
raise
|
221
238
|
end
|
222
|
-
original = args_node.children
|
239
|
+
original = args_node.children #: Array[Parser::AST::Node]
|
223
240
|
args = original.dup
|
224
241
|
|
225
|
-
instance = new(args: original, method_type: method_type)
|
242
|
+
instance = new(args: original, method_type: method_type, forward_arg_type: nil)
|
226
243
|
|
227
244
|
positional_params = method_type.type.params.positional_params
|
228
245
|
|
229
246
|
loop do
|
230
|
-
arg = args.first
|
247
|
+
arg = args.first or break
|
231
248
|
|
232
|
-
case arg
|
249
|
+
case arg.type
|
233
250
|
when :arg
|
234
251
|
name = arg.children[0]
|
235
252
|
param = positional_params&.head
|
@@ -300,9 +317,14 @@ module Steep
|
|
300
317
|
args.shift
|
301
318
|
end
|
302
319
|
|
303
|
-
if (arg = args.first)
|
320
|
+
if (arg = args.first) && arg.type == :forward_arg
|
321
|
+
forward_params = method_type.type.params.update(positional_params: positional_params)
|
322
|
+
return instance.update(forward_arg_type: [forward_params, method_type.block])
|
323
|
+
end
|
324
|
+
|
325
|
+
if (arg = args.first) && arg.type == :restarg
|
304
326
|
name = arg.children[0]
|
305
|
-
rest_types = []
|
327
|
+
rest_types = [] #: Array[AST::Types::t]
|
306
328
|
has_error = false
|
307
329
|
|
308
330
|
loop do
|
@@ -325,7 +347,11 @@ module Steep
|
|
325
347
|
break
|
326
348
|
end
|
327
349
|
|
328
|
-
|
350
|
+
if positional_params
|
351
|
+
positional_params = positional_params.tail
|
352
|
+
else
|
353
|
+
raise "Fatal error"
|
354
|
+
end
|
329
355
|
end
|
330
356
|
|
331
357
|
type = rest_types.empty? ? nil : AST::Types::Union.build(types: rest_types)
|
@@ -348,9 +374,9 @@ module Steep
|
|
348
374
|
keywords = keyword_params.keywords
|
349
375
|
|
350
376
|
loop do
|
351
|
-
arg = args.first
|
377
|
+
arg = args.first or break
|
352
378
|
|
353
|
-
case arg
|
379
|
+
case arg.type
|
354
380
|
when :kwarg
|
355
381
|
name = arg.children[0]
|
356
382
|
|
@@ -421,9 +447,9 @@ module Steep
|
|
421
447
|
args.shift
|
422
448
|
end
|
423
449
|
|
424
|
-
if (arg = args.first)
|
450
|
+
if (arg = args.first) && arg.type == :kwrestarg
|
425
451
|
name = arg.children[0]
|
426
|
-
rest_types = []
|
452
|
+
rest_types = [] #: Array[AST::Types::t]
|
427
453
|
has_error = false
|
428
454
|
|
429
455
|
keywords.each do |keyword|
|
@@ -460,8 +486,8 @@ module Steep
|
|
460
486
|
end
|
461
487
|
end
|
462
488
|
|
463
|
-
if (arg = args.first)
|
464
|
-
name = arg.children[0]
|
489
|
+
if (arg = args.first) && arg.type == :blockarg
|
490
|
+
name = arg.children[0] #: Symbol
|
465
491
|
|
466
492
|
if method_type.block
|
467
493
|
instance.params[name] = BlockParameter.new(
|
@@ -101,6 +101,9 @@ module Steep
|
|
101
101
|
|
102
102
|
def next()
|
103
103
|
case
|
104
|
+
when node && node.type == :forwarded_args
|
105
|
+
# If the node is a `:forwarded_args`, abort
|
106
|
+
nil
|
104
107
|
when !node && param.is_a?(Interface::Function::Params::PositionalParams::Required)
|
105
108
|
[
|
106
109
|
MissingArg.new(params: positional_params),
|
@@ -410,8 +413,8 @@ module Steep
|
|
410
413
|
when type = keyword_type(key)
|
411
414
|
consumed_keys << key
|
412
415
|
types << type
|
413
|
-
when rest_type
|
414
|
-
types <<
|
416
|
+
when type = rest_type()
|
417
|
+
types << type
|
415
418
|
else
|
416
419
|
unexpected_keyword = key
|
417
420
|
end
|
@@ -483,6 +486,15 @@ module Steep
|
|
483
486
|
end
|
484
487
|
end
|
485
488
|
|
489
|
+
class ForwardedArgs
|
490
|
+
attr_reader :node, :params
|
491
|
+
|
492
|
+
def initialize(node:, params:)
|
493
|
+
@node = node
|
494
|
+
@params = params
|
495
|
+
end
|
496
|
+
end
|
497
|
+
|
486
498
|
attr_reader :node
|
487
499
|
attr_reader :arguments
|
488
500
|
attr_reader :type
|
@@ -499,6 +511,8 @@ module Steep
|
|
499
511
|
type.type.params
|
500
512
|
when AST::Types::Proc
|
501
513
|
type.type.params
|
514
|
+
else
|
515
|
+
raise
|
502
516
|
end
|
503
517
|
end
|
504
518
|
|
@@ -526,14 +540,20 @@ module Steep
|
|
526
540
|
end
|
527
541
|
|
528
542
|
def positional_arg
|
529
|
-
args =
|
530
|
-
|
531
|
-
|
532
|
-
|
533
|
-
|
543
|
+
args =
|
544
|
+
if keyword_params.empty?
|
545
|
+
arguments.take_while {|node| node.type != :block_pass }
|
546
|
+
else
|
547
|
+
arguments.take_while {|node| node.type != :kwargs && node.type != :block_pass }
|
548
|
+
end
|
549
|
+
|
534
550
|
PositionalArgs.new(args: args, index: 0, positional_params: positional_params)
|
535
551
|
end
|
536
552
|
|
553
|
+
def forwarded_args_node
|
554
|
+
arguments.find {|node| node.type == :forwarded_args }
|
555
|
+
end
|
556
|
+
|
537
557
|
def keyword_args
|
538
558
|
KeywordArgs.new(
|
539
559
|
kwarg_nodes: kwargs_node&.children || [],
|
@@ -549,7 +569,9 @@ module Steep
|
|
549
569
|
|
550
570
|
def each
|
551
571
|
if block_given?
|
552
|
-
errors = []
|
572
|
+
errors = [] #: Array[PositionalArgs::error_arg | KeywordArgs::error_arg]
|
573
|
+
|
574
|
+
last_positional_args = positional_arg
|
553
575
|
|
554
576
|
positional_arg.tap do |args|
|
555
577
|
while (value, args = args.next())
|
@@ -591,66 +613,73 @@ module Steep
|
|
591
613
|
when PositionalArgs::UnexpectedArg, PositionalArgs::MissingArg
|
592
614
|
errors << value
|
593
615
|
end
|
616
|
+
|
617
|
+
last_positional_args = args
|
594
618
|
end
|
595
619
|
end
|
596
620
|
|
597
|
-
|
598
|
-
|
599
|
-
|
600
|
-
|
601
|
-
|
602
|
-
when KeywordArgs::UnexpectedKeyword
|
603
|
-
errors << a
|
604
|
-
end
|
605
|
-
|
606
|
-
yield a
|
607
|
-
|
608
|
-
case a
|
609
|
-
when KeywordArgs::SplatArg
|
610
|
-
case type = a.type
|
611
|
-
when nil
|
612
|
-
raise
|
613
|
-
when AST::Types::Record
|
614
|
-
# @type var keys: Array[Symbol]
|
615
|
-
keys = _ = type.elements.keys
|
616
|
-
ts, args = args.consume_keys(keys, node: a.node)
|
621
|
+
if fag = forwarded_args_node
|
622
|
+
forward_params = Interface::Function::Params.new(
|
623
|
+
positional_params: last_positional_args.positional_params,
|
624
|
+
keyword_params: keyword_params
|
625
|
+
)
|
617
626
|
|
618
|
-
|
619
|
-
|
620
|
-
|
621
|
-
|
622
|
-
|
623
|
-
|
624
|
-
|
625
|
-
|
626
|
-
|
627
|
-
|
627
|
+
forwarded_args = ForwardedArgs.new(node: fag, params: forward_params)
|
628
|
+
else
|
629
|
+
keyword_args.tap do |args|
|
630
|
+
while (a, args = args.next)
|
631
|
+
case a
|
632
|
+
when KeywordArgs::MissingKeyword
|
633
|
+
errors << a
|
634
|
+
when KeywordArgs::UnexpectedKeyword
|
635
|
+
errors << a
|
636
|
+
end
|
628
637
|
|
629
|
-
|
630
|
-
|
631
|
-
|
638
|
+
yield a
|
639
|
+
|
640
|
+
case a
|
641
|
+
when KeywordArgs::SplatArg
|
642
|
+
case type = a.type
|
643
|
+
when nil
|
644
|
+
raise
|
645
|
+
when AST::Types::Record
|
646
|
+
# @type var keys: Array[Symbol]
|
647
|
+
keys = _ = type.elements.keys
|
648
|
+
ts, args = args.consume_keys(keys, node: a.node)
|
649
|
+
|
650
|
+
case ts
|
651
|
+
when KeywordArgs::UnexpectedKeyword
|
652
|
+
yield ts
|
653
|
+
errors << ts
|
654
|
+
when Array
|
655
|
+
pairs = keys.zip(ts) #: Array[[Symbol, AST::Types::t]]
|
656
|
+
record = AST::Types::Record.new(elements: Hash[pairs])
|
657
|
+
yield KeywordArgs::ArgTypePairs.new(pairs: [[a.node, record]])
|
658
|
+
end
|
632
659
|
else
|
633
|
-
|
660
|
+
args = args.update(index: args.index + 1)
|
661
|
+
|
662
|
+
if args.rest_type
|
663
|
+
type = AST::Builtin::Hash.instance_type(AST::Builtin::Symbol.instance_type, args.possible_value_type)
|
664
|
+
yield KeywordArgs::ArgTypePairs.new(pairs: [[a.node, type]])
|
665
|
+
else
|
666
|
+
yield KeywordArgs::UnexpectedKeyword.new(keyword: nil, node: a.node)
|
667
|
+
end
|
634
668
|
end
|
635
669
|
end
|
636
670
|
end
|
637
671
|
end
|
638
672
|
end
|
639
673
|
|
640
|
-
|
641
|
-
# if pass.node
|
642
|
-
# yield pass
|
643
|
-
# end
|
644
|
-
|
645
|
-
diagnostics = []
|
674
|
+
diagnostics = [] #: Array[Diagnostic::Ruby::Base]
|
646
675
|
|
647
|
-
missing_keywords = []
|
676
|
+
missing_keywords = [] #: Array[Symbol]
|
648
677
|
errors.each do |error|
|
649
678
|
case error
|
650
679
|
when KeywordArgs::UnexpectedKeyword
|
651
680
|
diagnostics << Diagnostic::Ruby::UnexpectedKeywordArgument.new(node: error.node, params: params)
|
652
681
|
when KeywordArgs::MissingKeyword
|
653
|
-
missing_keywords.push(*error.keywords)
|
682
|
+
missing_keywords.push(*error.keywords.to_a)
|
654
683
|
when PositionalArgs::UnexpectedArg
|
655
684
|
diagnostics << Diagnostic::Ruby::UnexpectedPositionalArgument.new(node: error.node, params: params)
|
656
685
|
when PositionalArgs::MissingArg
|
@@ -662,7 +691,7 @@ module Steep
|
|
662
691
|
diagnostics << Diagnostic::Ruby::InsufficientKeywordArguments.new(node: node, params: params, missing_keywords: missing_keywords)
|
663
692
|
end
|
664
693
|
|
665
|
-
diagnostics
|
694
|
+
[forwarded_args, diagnostics]
|
666
695
|
else
|
667
696
|
enum_for :each
|
668
697
|
end
|
@@ -242,12 +242,14 @@ module Steep
|
|
242
242
|
|
243
243
|
common_pure_nodes = envs
|
244
244
|
.map {|env| Set.new(env.pure_method_calls.each_key) }
|
245
|
-
.inject
|
245
|
+
.inject {|s1, s2| s1.intersection(s2) } || Set[]
|
246
246
|
|
247
247
|
pure_call_updates = common_pure_nodes.each_with_object({}) do |node, hash|
|
248
248
|
pairs = envs.map {|env| env.pure_method_calls[node] }
|
249
|
-
refined_type = AST::Types::Union.build(types: pairs.map {|
|
250
|
-
|
249
|
+
refined_type = AST::Types::Union.build(types: pairs.map {|call, type| type || call.return_type })
|
250
|
+
|
251
|
+
# Any *pure_method_call* can be used because it's *pure*
|
252
|
+
(call, _ = envs[0].pure_method_calls[node]) or raise
|
251
253
|
|
252
254
|
hash[node] = [call, refined_type]
|
253
255
|
end
|
@@ -308,7 +310,13 @@ module Steep
|
|
308
310
|
end
|
309
311
|
|
310
312
|
def local_variable_name?(name)
|
311
|
-
|
313
|
+
# Ruby constants start with Uppercase_Letter or Titlecase_Letter in the unicode property.
|
314
|
+
# If name start with `@`, it is instance variable or class instance variable.
|
315
|
+
# If name start with `$`, it is global variable.
|
316
|
+
return false if name.start_with?(/[\p{Uppercase_Letter}\p{Titlecase_Letter}@$]/)
|
317
|
+
return false if TypeConstruction::SPECIAL_LVAR_NAMES.include?(name)
|
318
|
+
|
319
|
+
true
|
312
320
|
end
|
313
321
|
|
314
322
|
def local_variable_name!(name)
|
data/lib/steep/version.rb
CHANGED
data/lib/steep.rb
CHANGED
@@ -105,7 +105,9 @@ require "steep/services/type_check_service"
|
|
105
105
|
require "steep/services/hover_provider/singleton_methods"
|
106
106
|
require "steep/services/hover_provider/ruby"
|
107
107
|
require "steep/services/hover_provider/rbs"
|
108
|
+
require "steep/services/type_name_completion"
|
108
109
|
require "steep/services/completion_provider"
|
110
|
+
require "steep/services/signature_help_provider"
|
109
111
|
require "steep/services/stats_calculator"
|
110
112
|
require "steep/services/file_loader"
|
111
113
|
require "steep/services/goto_service"
|
@@ -15,14 +15,6 @@ gems:
|
|
15
15
|
revision: c42c09528dd99252db98f0744181a6de54ec2f55
|
16
16
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
17
17
|
repo_dir: gems
|
18
|
-
- name: ast
|
19
|
-
version: '2.4'
|
20
|
-
source:
|
21
|
-
type: git
|
22
|
-
name: ruby/gem_rbs_collection
|
23
|
-
revision: c42c09528dd99252db98f0744181a6de54ec2f55
|
24
|
-
remote: https://github.com/ruby/gem_rbs_collection.git
|
25
|
-
repo_dir: gems
|
26
18
|
- name: concurrent-ruby
|
27
19
|
version: '1.1'
|
28
20
|
source:
|
@@ -39,10 +31,6 @@ gems:
|
|
39
31
|
version: '0'
|
40
32
|
source:
|
41
33
|
type: stdlib
|
42
|
-
- name: dbm
|
43
|
-
version: '0'
|
44
|
-
source:
|
45
|
-
type: stdlib
|
46
34
|
- name: fileutils
|
47
35
|
version: '0'
|
48
36
|
source:
|
@@ -87,18 +75,6 @@ gems:
|
|
87
75
|
version: '0'
|
88
76
|
source:
|
89
77
|
type: stdlib
|
90
|
-
- name: optparse
|
91
|
-
version: '0'
|
92
|
-
source:
|
93
|
-
type: stdlib
|
94
|
-
- name: parallel
|
95
|
-
version: '1.20'
|
96
|
-
source:
|
97
|
-
type: git
|
98
|
-
name: ruby/gem_rbs_collection
|
99
|
-
revision: c42c09528dd99252db98f0744181a6de54ec2f55
|
100
|
-
remote: https://github.com/ruby/gem_rbs_collection.git
|
101
|
-
repo_dir: gems
|
102
78
|
- name: pathname
|
103
79
|
version: '0'
|
104
80
|
source:
|
@@ -115,10 +91,6 @@ gems:
|
|
115
91
|
version: '0'
|
116
92
|
source:
|
117
93
|
type: stdlib
|
118
|
-
- name: set
|
119
|
-
version: '0'
|
120
|
-
source:
|
121
|
-
type: stdlib
|
122
94
|
- name: singleton
|
123
95
|
version: '0'
|
124
96
|
source:
|
data/rbs_collection.steep.yaml
CHANGED
@@ -9,14 +9,15 @@ sources:
|
|
9
9
|
path: .gem_rbs_collection
|
10
10
|
|
11
11
|
gems:
|
12
|
-
# Skip loading rbs gem's RBS.
|
13
|
-
# It's unnecessary if you don't use rbs as a library.
|
14
|
-
- name: steep
|
15
|
-
ignore: true
|
16
|
-
- name: set
|
17
|
-
- name: rbs
|
18
|
-
ignore: true
|
19
12
|
- name: with_steep_types
|
20
13
|
ignore: true
|
21
|
-
- name:
|
22
|
-
- name:
|
14
|
+
- name: activesupport
|
15
|
+
- name: rainbow
|
16
|
+
- name: listen
|
17
|
+
- name: json
|
18
|
+
- name: logger
|
19
|
+
- name: fileutils
|
20
|
+
- name: strscan
|
21
|
+
- name: csv
|
22
|
+
- name: pathname
|
23
|
+
- name: securerandom
|
data/sample/Steepfile
CHANGED
@@ -5,6 +5,8 @@ target :lib do
|
|
5
5
|
|
6
6
|
check "lib" # Directory name
|
7
7
|
|
8
|
+
library "rbs"
|
9
|
+
|
8
10
|
# configure_code_diagnostics(D::Ruby.strict) # `strict` diagnostics setting
|
9
11
|
# configure_code_diagnostics(D::Ruby.lenient) # `lenient` diagnostics setting
|
10
12
|
# configure_code_diagnostics do |hash| # You can setup everything yourself
|
data/sample/lib/conference.rb
CHANGED
data/sample/sig/conference.rbs
CHANGED