steep 1.1.1 → 1.2.0.pre.1
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 +20 -0
- data/Gemfile +0 -1
- data/Gemfile.lock +12 -11
- data/Gemfile.steep +1 -1
- data/Gemfile.steep.lock +9 -9
- data/README.md +3 -3
- data/Steepfile +23 -0
- data/bin/steep-prof +2 -1
- data/lib/steep/annotation_parser.rb +1 -1
- data/lib/steep/ast/types/class.rb +4 -0
- data/lib/steep/ast/types/factory.rb +86 -602
- data/lib/steep/ast/types/instance.rb +4 -0
- data/lib/steep/ast/types/literal.rb +1 -1
- data/lib/steep/ast/types/proc.rb +22 -8
- data/lib/steep/ast/types/self.rb +4 -0
- data/lib/steep/ast/types/union.rb +1 -1
- data/lib/steep/cli.rb +24 -1
- data/lib/steep/diagnostic/ruby.rb +17 -22
- data/lib/steep/drivers/checkfile.rb +205 -0
- data/lib/steep/drivers/validate.rb +3 -1
- data/lib/steep/equatable.rb +2 -0
- data/lib/steep/interface/block.rb +21 -11
- data/lib/steep/interface/builder.rb +756 -0
- data/lib/steep/interface/function.rb +32 -24
- data/lib/steep/interface/method_type.rb +191 -78
- data/lib/steep/interface/shape.rb +132 -0
- data/lib/steep/interface/substitution.rb +23 -12
- data/lib/steep/interface/type_param.rb +1 -2
- data/lib/steep/path_helper.rb +1 -1
- data/lib/steep/project.rb +5 -7
- data/lib/steep/server/base_worker.rb +2 -2
- data/lib/steep/server/change_buffer.rb +4 -3
- data/lib/steep/server/interaction_worker.rb +1 -1
- data/lib/steep/server/master.rb +69 -9
- data/lib/steep/server/type_check_worker.rb +13 -11
- data/lib/steep/server/worker_process.rb +9 -7
- data/lib/steep/services/completion_provider.rb +15 -3
- data/lib/steep/services/hover_provider/singleton_methods.rb +5 -6
- data/lib/steep/services/signature_service.rb +13 -8
- data/lib/steep/services/type_check_service.rb +2 -0
- data/lib/steep/signature/validator.rb +1 -1
- data/lib/steep/subtyping/check.rb +154 -103
- data/lib/steep/subtyping/relation.rb +3 -3
- data/lib/steep/subtyping/result.rb +20 -2
- data/lib/steep/subtyping/variable_variance.rb +9 -0
- data/lib/steep/type_construction.rb +558 -299
- data/lib/steep/type_inference/block_params.rb +169 -86
- data/lib/steep/type_inference/logic_type_interpreter.rb +9 -14
- data/lib/steep/type_inference/method_params.rb +12 -7
- data/lib/steep/type_inference/send_args.rb +41 -35
- data/lib/steep/type_inference/type_env_builder.rb +1 -1
- data/lib/steep/version.rb +1 -1
- data/lib/steep.rb +71 -2
- data/rbs_collection.steep.lock.yaml +18 -30
- data/rbs_collection.steep.yaml +1 -0
- data/sig/shims/language-server_protocol.rbs +20 -0
- data/sig/shims/tagged_logging.rbs +6 -0
- data/sig/steep/ast/annotation/collection.rbs +6 -6
- data/sig/steep/ast/types/class.rbs +3 -0
- data/sig/steep/ast/types/factory.rbs +38 -32
- data/sig/steep/ast/types/instance.rbs +3 -0
- data/sig/steep/ast/types/intersection.rbs +1 -1
- data/sig/steep/ast/types/literal.rbs +7 -7
- data/sig/steep/ast/types/name.rbs +14 -13
- data/sig/steep/ast/types/proc.rbs +3 -1
- data/sig/steep/ast/types/self.rbs +3 -0
- data/sig/steep/ast/types/var.rbs +1 -1
- data/sig/steep/diagnostic/ruby.rbs +30 -34
- data/sig/steep/drivers/annotations.rbs +17 -0
- data/sig/steep/drivers/check.rbs +33 -0
- data/sig/steep/drivers/checkfile.rbs +26 -0
- data/sig/steep/drivers/diagnostic_printer.rbs +25 -0
- data/sig/steep/drivers/init.rbs +19 -0
- data/sig/steep/drivers/langserver.rbs +35 -0
- data/sig/steep/drivers/print_project.rbs +15 -0
- data/sig/steep/drivers/stats.rbs +37 -0
- data/sig/steep/drivers/utils/driver_helper.rbs +23 -0
- data/sig/steep/drivers/utils/jobs_count.rbs +11 -0
- data/sig/steep/drivers/validate.rbs +15 -0
- data/sig/steep/drivers/vendor.rbs +19 -0
- data/sig/steep/drivers/watch.rbs +27 -0
- data/sig/steep/drivers/worker.rbs +31 -0
- data/sig/steep/equatable.rbs +11 -0
- data/sig/steep/index/rbs_index.rbs +91 -0
- data/sig/steep/index/signature_symbol_provider.rbs +29 -0
- data/sig/steep/index/source_index.rbs +63 -0
- data/sig/steep/interface/block.rbs +3 -1
- data/sig/steep/interface/builder.rbs +152 -0
- data/sig/steep/interface/function.rbs +67 -55
- data/sig/steep/interface/method_type.rbs +60 -12
- data/sig/steep/interface/shape.rbs +61 -0
- data/sig/steep/interface/substitution.rbs +18 -22
- data/sig/steep/interface/type_param.rbs +9 -1
- data/sig/steep/path_helper.rbs +7 -0
- data/sig/steep/project/pattern.rbs +10 -10
- data/sig/steep/project/target.rbs +2 -2
- data/sig/steep/project.rbs +15 -8
- data/sig/steep/server/base_worker.rbs +49 -0
- data/sig/steep/server/change_buffer.rbs +32 -0
- data/sig/steep/server/interaction_worker.rbs +41 -0
- data/sig/steep/server/lsp_formatter.rbs +29 -0
- data/sig/steep/server/master.rbs +260 -0
- data/sig/steep/server/type_check_worker.rbs +135 -0
- data/sig/steep/server/worker_process.rbs +29 -0
- data/sig/steep/services/completion_provider.rbs +5 -5
- data/sig/steep/services/content_change.rbs +14 -12
- data/sig/steep/services/file_loader.rbs +12 -4
- data/sig/steep/services/hover_provider/singleton_methods.rbs +1 -1
- data/sig/steep/services/path_assignment.rbs +7 -7
- data/sig/steep/services/signature_service.rbs +67 -40
- data/sig/steep/services/type_check_service.rbs +53 -39
- data/sig/steep/subtyping/check.rbs +80 -44
- data/sig/steep/subtyping/relation.rbs +24 -22
- data/sig/steep/subtyping/result.rbs +48 -30
- data/sig/steep/subtyping/variable_variance.rbs +2 -0
- data/sig/steep/type_construction.rbs +132 -23
- data/sig/steep/type_inference/block_params.rbs +120 -18
- data/sig/steep/type_inference/context.rbs +45 -20
- data/sig/steep/type_inference/context_array.rbs +37 -0
- data/sig/steep/type_inference/logic_type_interpreter.rbs +3 -1
- data/sig/steep/type_inference/method_params.rbs +13 -9
- data/sig/steep/type_inference/send_args.rbs +229 -0
- data/sig/steep/type_inference/type_env_builder.rbs +1 -1
- data/sig/steep/typing.rbs +4 -4
- data/sig/steep.rbs +4 -2
- data/smoke/block/e.rb +12 -0
- data/smoke/block/e.rbs +4 -0
- data/smoke/block/test_expectations.yml +12 -0
- data/smoke/regression/block_param_split.rb +7 -0
- data/smoke/regression/block_param_split.rbs +3 -0
- data/smoke/regression/empty_yield.rb +5 -0
- data/smoke/regression/empty_yield.rbs +3 -0
- data/smoke/regression/test_expectations.yml +12 -0
- data/smoke/yield/test_expectations.yml +4 -4
- data/steep.gemspec +2 -1
- metadata +61 -9
- data/lib/steep/interface/interface.rb +0 -34
- data/sig/steep/interface/interface.rbs +0 -23
- data/sig/version.rbs +0 -3
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: steep
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0.pre.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Soutaro Matsumoto
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-10-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: parser
|
@@ -98,14 +98,14 @@ dependencies:
|
|
98
98
|
requirements:
|
99
99
|
- - ">="
|
100
100
|
- !ruby/object:Gem::Version
|
101
|
-
version: 2.
|
101
|
+
version: 2.7.0.pre
|
102
102
|
type: :runtime
|
103
103
|
prerelease: false
|
104
104
|
version_requirements: !ruby/object:Gem::Requirement
|
105
105
|
requirements:
|
106
106
|
- - ">="
|
107
107
|
- !ruby/object:Gem::Version
|
108
|
-
version: 2.
|
108
|
+
version: 2.7.0.pre
|
109
109
|
- !ruby/object:Gem::Dependency
|
110
110
|
name: parallel
|
111
111
|
requirement: !ruby/object:Gem::Requirement
|
@@ -140,6 +140,20 @@ dependencies:
|
|
140
140
|
- - "<"
|
141
141
|
- !ruby/object:Gem::Version
|
142
142
|
version: '4'
|
143
|
+
- !ruby/object:Gem::Dependency
|
144
|
+
name: securerandom
|
145
|
+
requirement: !ruby/object:Gem::Requirement
|
146
|
+
requirements:
|
147
|
+
- - ">="
|
148
|
+
- !ruby/object:Gem::Version
|
149
|
+
version: '0.1'
|
150
|
+
type: :runtime
|
151
|
+
prerelease: false
|
152
|
+
version_requirements: !ruby/object:Gem::Requirement
|
153
|
+
requirements:
|
154
|
+
- - ">="
|
155
|
+
- !ruby/object:Gem::Version
|
156
|
+
version: '0.1'
|
143
157
|
description: Gradual Typing for Ruby
|
144
158
|
email:
|
145
159
|
- matsumoto@soutaro.com
|
@@ -204,6 +218,7 @@ files:
|
|
204
218
|
- lib/steep/diagnostic/signature.rb
|
205
219
|
- lib/steep/drivers/annotations.rb
|
206
220
|
- lib/steep/drivers/check.rb
|
221
|
+
- lib/steep/drivers/checkfile.rb
|
207
222
|
- lib/steep/drivers/diagnostic_printer.rb
|
208
223
|
- lib/steep/drivers/init.rb
|
209
224
|
- lib/steep/drivers/langserver.rb
|
@@ -221,9 +236,10 @@ files:
|
|
221
236
|
- lib/steep/index/signature_symbol_provider.rb
|
222
237
|
- lib/steep/index/source_index.rb
|
223
238
|
- lib/steep/interface/block.rb
|
239
|
+
- lib/steep/interface/builder.rb
|
224
240
|
- lib/steep/interface/function.rb
|
225
|
-
- lib/steep/interface/interface.rb
|
226
241
|
- lib/steep/interface/method_type.rb
|
242
|
+
- lib/steep/interface/shape.rb
|
227
243
|
- lib/steep/interface/substitution.rb
|
228
244
|
- lib/steep/interface/type_param.rb
|
229
245
|
- lib/steep/method_name.rb
|
@@ -286,9 +302,11 @@ files:
|
|
286
302
|
- sample/lib/length.rb
|
287
303
|
- sample/sig/conference.rbs
|
288
304
|
- sample/sig/length.rbs
|
305
|
+
- sig/shims/language-server_protocol.rbs
|
289
306
|
- sig/shims/parser.rbs
|
290
307
|
- sig/shims/parser/source/map.rbs
|
291
308
|
- sig/shims/parser/source/range.rbs
|
309
|
+
- sig/shims/tagged_logging.rbs
|
292
310
|
- sig/steep.rbs
|
293
311
|
- sig/steep/ast/annotation.rbs
|
294
312
|
- sig/steep/ast/annotation/collection.rbs
|
@@ -320,20 +338,47 @@ files:
|
|
320
338
|
- sig/steep/diagnostic/lsp_formatter.rbs
|
321
339
|
- sig/steep/diagnostic/ruby.rbs
|
322
340
|
- sig/steep/diagnostic/signature.rbs
|
341
|
+
- sig/steep/drivers/annotations.rbs
|
342
|
+
- sig/steep/drivers/check.rbs
|
343
|
+
- sig/steep/drivers/checkfile.rbs
|
344
|
+
- sig/steep/drivers/diagnostic_printer.rbs
|
345
|
+
- sig/steep/drivers/init.rbs
|
346
|
+
- sig/steep/drivers/langserver.rbs
|
347
|
+
- sig/steep/drivers/print_project.rbs
|
348
|
+
- sig/steep/drivers/stats.rbs
|
349
|
+
- sig/steep/drivers/utils/driver_helper.rbs
|
350
|
+
- sig/steep/drivers/utils/jobs_count.rbs
|
351
|
+
- sig/steep/drivers/validate.rbs
|
352
|
+
- sig/steep/drivers/vendor.rbs
|
353
|
+
- sig/steep/drivers/watch.rbs
|
354
|
+
- sig/steep/drivers/worker.rbs
|
355
|
+
- sig/steep/equatable.rbs
|
356
|
+
- sig/steep/index/rbs_index.rbs
|
357
|
+
- sig/steep/index/signature_symbol_provider.rbs
|
358
|
+
- sig/steep/index/source_index.rbs
|
323
359
|
- sig/steep/interface/block.rbs
|
360
|
+
- sig/steep/interface/builder.rbs
|
324
361
|
- sig/steep/interface/function.rbs
|
325
|
-
- sig/steep/interface/interface.rbs
|
326
362
|
- sig/steep/interface/method_type.rbs
|
363
|
+
- sig/steep/interface/shape.rbs
|
327
364
|
- sig/steep/interface/substitution.rbs
|
328
365
|
- sig/steep/interface/type_param.rbs
|
329
366
|
- sig/steep/method_name.rbs
|
330
367
|
- sig/steep/module_helper.rbs
|
331
368
|
- sig/steep/node_helper.rbs
|
369
|
+
- sig/steep/path_helper.rbs
|
332
370
|
- sig/steep/project.rbs
|
333
371
|
- sig/steep/project/dsl.rbs
|
334
372
|
- sig/steep/project/options.rbs
|
335
373
|
- sig/steep/project/pattern.rbs
|
336
374
|
- sig/steep/project/target.rbs
|
375
|
+
- sig/steep/server/base_worker.rbs
|
376
|
+
- sig/steep/server/change_buffer.rbs
|
377
|
+
- sig/steep/server/interaction_worker.rbs
|
378
|
+
- sig/steep/server/lsp_formatter.rbs
|
379
|
+
- sig/steep/server/master.rbs
|
380
|
+
- sig/steep/server/type_check_worker.rbs
|
381
|
+
- sig/steep/server/worker_process.rbs
|
337
382
|
- sig/steep/services/completion_provider.rbs
|
338
383
|
- sig/steep/services/content_change.rbs
|
339
384
|
- sig/steep/services/file_loader.rbs
|
@@ -356,14 +401,15 @@ files:
|
|
356
401
|
- sig/steep/type_inference/block_params.rbs
|
357
402
|
- sig/steep/type_inference/constant_env.rbs
|
358
403
|
- sig/steep/type_inference/context.rbs
|
404
|
+
- sig/steep/type_inference/context_array.rbs
|
359
405
|
- sig/steep/type_inference/logic_type_interpreter.rbs
|
360
406
|
- sig/steep/type_inference/method_call.rbs
|
361
407
|
- sig/steep/type_inference/method_params.rbs
|
362
408
|
- sig/steep/type_inference/multiple_assignment.rbs
|
409
|
+
- sig/steep/type_inference/send_args.rbs
|
363
410
|
- sig/steep/type_inference/type_env.rbs
|
364
411
|
- sig/steep/type_inference/type_env_builder.rbs
|
365
412
|
- sig/steep/typing.rbs
|
366
|
-
- sig/version.rbs
|
367
413
|
- smoke/alias/Steepfile
|
368
414
|
- smoke/alias/a.rb
|
369
415
|
- smoke/alias/a.rbs
|
@@ -385,6 +431,8 @@ files:
|
|
385
431
|
- smoke/block/c.rb
|
386
432
|
- smoke/block/c.rbs
|
387
433
|
- smoke/block/d.rb
|
434
|
+
- smoke/block/e.rb
|
435
|
+
- smoke/block/e.rbs
|
388
436
|
- smoke/block/test_expectations.yml
|
389
437
|
- smoke/case/Steepfile
|
390
438
|
- smoke/case/a.rb
|
@@ -558,6 +606,10 @@ files:
|
|
558
606
|
- smoke/regexp/test_expectations.yml
|
559
607
|
- smoke/regression/Steepfile
|
560
608
|
- smoke/regression/array.rb
|
609
|
+
- smoke/regression/block_param_split.rb
|
610
|
+
- smoke/regression/block_param_split.rbs
|
611
|
+
- smoke/regression/empty_yield.rb
|
612
|
+
- smoke/regression/empty_yield.rbs
|
561
613
|
- smoke/regression/fun.rb
|
562
614
|
- smoke/regression/fun.rbs
|
563
615
|
- smoke/regression/hash.rb
|
@@ -630,9 +682,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
630
682
|
version: 2.6.0
|
631
683
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
632
684
|
requirements:
|
633
|
-
- - "
|
685
|
+
- - ">"
|
634
686
|
- !ruby/object:Gem::Version
|
635
|
-
version:
|
687
|
+
version: 1.3.1
|
636
688
|
requirements: []
|
637
689
|
rubygems_version: 3.3.3
|
638
690
|
signing_key:
|
@@ -1,34 +0,0 @@
|
|
1
|
-
module Steep
|
2
|
-
module Interface
|
3
|
-
class Interface
|
4
|
-
class Entry
|
5
|
-
attr_reader :method_types
|
6
|
-
|
7
|
-
def initialize(method_types:)
|
8
|
-
@method_types = method_types
|
9
|
-
end
|
10
|
-
|
11
|
-
def to_s
|
12
|
-
"{ #{method_types.join(" || ")} }"
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
attr_reader :type
|
17
|
-
attr_reader :methods
|
18
|
-
|
19
|
-
def initialize(type:, private:)
|
20
|
-
@type = type
|
21
|
-
@private = private
|
22
|
-
@methods = {}
|
23
|
-
end
|
24
|
-
|
25
|
-
def private?
|
26
|
-
@private
|
27
|
-
end
|
28
|
-
|
29
|
-
def public?
|
30
|
-
!private?
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
@@ -1,23 +0,0 @@
|
|
1
|
-
module Steep
|
2
|
-
module Interface
|
3
|
-
class Interface
|
4
|
-
class Entry
|
5
|
-
attr_reader method_types: untyped
|
6
|
-
|
7
|
-
def initialize: (method_types: untyped) -> void
|
8
|
-
|
9
|
-
def to_s: () -> ::String
|
10
|
-
end
|
11
|
-
|
12
|
-
attr_reader type: untyped
|
13
|
-
|
14
|
-
attr_reader methods: untyped
|
15
|
-
|
16
|
-
def initialize: (type: untyped, private: untyped) -> void
|
17
|
-
|
18
|
-
def private?: () -> untyped
|
19
|
-
|
20
|
-
def public?: () -> untyped
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
data/sig/version.rbs
DELETED