steep 1.4.0.dev.2 → 1.4.0.dev.3
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 +7 -9
- data/Gemfile.steep +1 -2
- data/Gemfile.steep.lock +9 -10
- 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 +79 -4
- data/lib/steep/drivers/check.rb +4 -4
- data/lib/steep/interface/block.rb +10 -0
- data/lib/steep/module_helper.rb +13 -11
- data/lib/steep/path_helper.rb +4 -0
- data/lib/steep/server/interaction_worker.rb +105 -92
- data/lib/steep/services/type_name_completion.rb +157 -0
- data/lib/steep/source.rb +1 -0
- data/lib/steep/type_construction.rb +402 -229
- 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_params.rb +42 -16
- data/lib/steep/type_inference/send_args.rb +79 -50
- data/lib/steep/type_inference/type_env.rb +7 -1
- data/lib/steep/version.rb +1 -1
- data/lib/steep.rb +1 -0
- data/rbs_collection.steep.lock.yaml +0 -28
- data/rbs_collection.steep.yaml +10 -9
- data/sample/lib/conference.rb +12 -0
- data/sample/sig/conference.rbs +5 -0
- data/sig/shims/language-server_protocol.rbs +12 -0
- data/sig/shims/parser/nodes.rbs +37 -0
- data/sig/shims/parser.rbs +1 -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/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 +46 -17
- 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 +2 -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_params.rbs +43 -24
- data/sig/steep/type_inference/multiple_assignment.rbs +1 -1
- data/sig/steep/type_inference/send_args.rbs +13 -3
- data/sig/steep/typing.rbs +7 -2
- data/smoke/diagnostics/test_expectations.yml +1 -0
- data/steep.gemspec +0 -1
- metadata +10 -16
data/sig/steep/typing.rbs
CHANGED
@@ -34,7 +34,7 @@ module Steep
|
|
34
34
|
|
35
35
|
def add_error: (Diagnostic::Ruby::Base error) -> void
|
36
36
|
|
37
|
-
def add_typing: (Parser::AST::Node node, AST::Types::t `type`,
|
37
|
+
def add_typing: (Parser::AST::Node node, AST::Types::t `type`, top) -> untyped
|
38
38
|
|
39
39
|
def add_call: (untyped node, untyped call) -> untyped
|
40
40
|
|
@@ -61,8 +61,13 @@ module Steep
|
|
61
61
|
def new_child: [A] (Range[Integer] range) { (Typing) -> A } -> A
|
62
62
|
| (Range[Integer]) -> Typing
|
63
63
|
|
64
|
-
def each_typing: () { () ->
|
64
|
+
def each_typing: () { (Parser::AST::Node, AST::Types::t) -> void } -> void
|
65
65
|
|
66
|
+
# Push the current changes to the `#parent` typing
|
67
|
+
#
|
68
|
+
# * Raises an error if `#parent` is `nil`
|
69
|
+
# * Raises an error if `#parent` is changed since `#new_child` call that instantiated `self`
|
70
|
+
#
|
66
71
|
def save!: () -> void
|
67
72
|
end
|
68
73
|
end
|
@@ -46,6 +46,7 @@
|
|
46
46
|
message: |-
|
47
47
|
Cannot pass a value of type `^(untyped, untyped, untyped) -> untyped` as a block-pass-argument of type `^(::Integer) -> void`
|
48
48
|
^(untyped, untyped, untyped) -> untyped <: ^(::Integer) -> void
|
49
|
+
(Params are incompatible)
|
49
50
|
code: Ruby::BlockTypeMismatch
|
50
51
|
- file: break_type_mismatch.rb
|
51
52
|
diagnostics:
|
data/steep.gemspec
CHANGED
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.0.dev.
|
4
|
+
version: 1.4.0.dev.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: 2023-
|
11
|
+
date: 2023-04-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: parser
|
@@ -224,20 +224,6 @@ dependencies:
|
|
224
224
|
- - ">="
|
225
225
|
- !ruby/object:Gem::Version
|
226
226
|
version: 3.0.9
|
227
|
-
- !ruby/object:Gem::Dependency
|
228
|
-
name: pathname
|
229
|
-
requirement: !ruby/object:Gem::Requirement
|
230
|
-
requirements:
|
231
|
-
- - ">="
|
232
|
-
- !ruby/object:Gem::Version
|
233
|
-
version: 0.2.1
|
234
|
-
type: :runtime
|
235
|
-
prerelease: false
|
236
|
-
version_requirements: !ruby/object:Gem::Requirement
|
237
|
-
requirements:
|
238
|
-
- - ">="
|
239
|
-
- !ruby/object:Gem::Version
|
240
|
-
version: 0.2.1
|
241
227
|
description: Gradual Typing for Ruby
|
242
228
|
email:
|
243
229
|
- matsumoto@soutaro.com
|
@@ -268,6 +254,10 @@ files:
|
|
268
254
|
- bin/steep
|
269
255
|
- bin/steep-prof
|
270
256
|
- exe/steep
|
257
|
+
- guides/README.md
|
258
|
+
- guides/src/gem-rbs-collection/gem-rbs-collection.md
|
259
|
+
- guides/src/getting-started/getting-started.md
|
260
|
+
- guides/src/nil-optional/nil-optional.md
|
271
261
|
- lib/steep.rb
|
272
262
|
- lib/steep/annotation_parser.rb
|
273
263
|
- lib/steep/ast/annotation.rb
|
@@ -356,6 +346,7 @@ files:
|
|
356
346
|
- lib/steep/services/signature_service.rb
|
357
347
|
- lib/steep/services/stats_calculator.rb
|
358
348
|
- lib/steep/services/type_check_service.rb
|
349
|
+
- lib/steep/services/type_name_completion.rb
|
359
350
|
- lib/steep/shims/filter_map.rb
|
360
351
|
- lib/steep/shims/symbol_start_with.rb
|
361
352
|
- lib/steep/signature/validator.rb
|
@@ -393,8 +384,10 @@ files:
|
|
393
384
|
- sig/shims/parallel.rbs
|
394
385
|
- sig/shims/parser.rbs
|
395
386
|
- sig/shims/parser/comment.rbs
|
387
|
+
- sig/shims/parser/nodes.rbs
|
396
388
|
- sig/shims/parser/source/map.rbs
|
397
389
|
- sig/shims/parser/source/range.rbs
|
390
|
+
- sig/shims/string.rbs
|
398
391
|
- sig/shims/tagged_logging.rbs
|
399
392
|
- sig/steep.rbs
|
400
393
|
- sig/steep/annotation_parser.rbs
|
@@ -484,6 +477,7 @@ files:
|
|
484
477
|
- sig/steep/services/signature_service.rbs
|
485
478
|
- sig/steep/services/stats_calculator.rbs
|
486
479
|
- sig/steep/services/type_check_service.rbs
|
480
|
+
- sig/steep/services/type_name_completion.rbs
|
487
481
|
- sig/steep/signature/validator.rbs
|
488
482
|
- sig/steep/source.rbs
|
489
483
|
- sig/steep/subtyping/cache.rbs
|