steep 0.44.1 → 0.45.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/dependabot.yml +8 -0
- data/.github/workflows/ruby.yml +3 -2
- data/.gitignore +0 -1
- data/CHANGELOG.md +14 -0
- data/Gemfile +0 -2
- data/Gemfile.lock +77 -0
- data/lib/steep.rb +3 -1
- data/lib/steep/ast/builtin.rb +7 -1
- data/lib/steep/ast/types/factory.rb +19 -25
- data/lib/steep/diagnostic/ruby.rb +137 -60
- data/lib/steep/diagnostic/signature.rb +34 -0
- data/lib/steep/equatable.rb +21 -0
- data/lib/steep/interface/function.rb +798 -579
- data/lib/steep/server/interaction_worker.rb +238 -19
- data/lib/steep/services/file_loader.rb +26 -19
- data/lib/steep/services/hover_content.rb +131 -79
- data/lib/steep/source.rb +7 -10
- data/lib/steep/type_construction.rb +435 -502
- data/lib/steep/type_inference/block_params.rb +2 -5
- data/lib/steep/type_inference/method_params.rb +483 -0
- data/lib/steep/type_inference/send_args.rb +610 -128
- data/lib/steep/typing.rb +46 -21
- data/lib/steep/version.rb +1 -1
- data/sig/steep/type_inference/send_args.rbs +42 -0
- data/smoke/array/test_expectations.yml +3 -3
- data/smoke/block/c.rb +0 -1
- data/smoke/class/test_expectations.yml +12 -15
- data/smoke/diagnostics-rbs/mixin-class-error.rbs +6 -0
- data/smoke/diagnostics-rbs/test_expectations.yml +12 -0
- data/smoke/diagnostics/different_method_parameter_kind.rb +9 -0
- data/smoke/diagnostics/method_arity_mismatch.rb +2 -2
- data/smoke/diagnostics/method_parameter_mismatch.rb +10 -0
- data/smoke/diagnostics/test_expectations.yml +108 -31
- data/smoke/ensure/test_expectations.yml +3 -3
- data/smoke/enumerator/test_expectations.yml +1 -1
- data/smoke/literal/test_expectations.yml +2 -2
- data/smoke/method/test_expectations.yml +11 -10
- data/smoke/rescue/test_expectations.yml +3 -3
- data/smoke/toplevel/test_expectations.yml +3 -3
- data/smoke/tsort/test_expectations.yml +2 -2
- data/steep.gemspec +1 -1
- metadata +13 -5
@@ -32,10 +32,10 @@
|
|
32
32
|
- range:
|
33
33
|
start:
|
34
34
|
line: 13
|
35
|
-
character:
|
35
|
+
character: 4
|
36
36
|
end:
|
37
|
-
line:
|
38
|
-
character:
|
37
|
+
line: 13
|
38
|
+
character: 7
|
39
39
|
severity: ERROR
|
40
40
|
message: |-
|
41
41
|
Cannot allow method body have type `::Integer` because declared as type `::String`
|
@@ -102,7 +102,7 @@
|
|
102
102
|
Cannot find compatible overloading of method `with_object` of type `::Enumerator[::Integer, ::Array[::Integer]]`
|
103
103
|
Method types:
|
104
104
|
def with_object: [U] (U) { (::Integer, U) -> untyped } -> U
|
105
|
-
| [U] (U) -> ::Enumerator[[::Integer, U],
|
105
|
+
| [U] (U) -> ::Enumerator[[::Integer, U], U]
|
106
106
|
code: Ruby::UnresolvedOverloading
|
107
107
|
- range:
|
108
108
|
start:
|
@@ -101,6 +101,6 @@
|
|
101
101
|
character: 15
|
102
102
|
severity: ERROR
|
103
103
|
message: |-
|
104
|
-
Cannot
|
104
|
+
Cannot pass a value of type `::Symbol` as an argument of type `:foo`
|
105
105
|
::Symbol <: :foo
|
106
|
-
code: Ruby::
|
106
|
+
code: Ruby::ArgumentTypeMismatch
|
@@ -4,10 +4,10 @@
|
|
4
4
|
- range:
|
5
5
|
start:
|
6
6
|
line: 3
|
7
|
-
character:
|
7
|
+
character: 4
|
8
8
|
end:
|
9
|
-
line:
|
10
|
-
character:
|
9
|
+
line: 3
|
10
|
+
character: 7
|
11
11
|
severity: ERROR
|
12
12
|
message: |-
|
13
13
|
Cannot allow method body have type `::Integer` because declared as type `::String`
|
@@ -49,13 +49,14 @@
|
|
49
49
|
- range:
|
50
50
|
start:
|
51
51
|
line: 15
|
52
|
-
character:
|
52
|
+
character: 11
|
53
53
|
end:
|
54
54
|
line: 15
|
55
|
-
character:
|
55
|
+
character: 12
|
56
56
|
severity: ERROR
|
57
|
-
message:
|
58
|
-
|
57
|
+
message: The method parameter is incompatible with the declaration `(::Integer)
|
58
|
+
-> ::String`
|
59
|
+
code: Ruby::MethodParameterMismatch
|
59
60
|
- range:
|
60
61
|
start:
|
61
62
|
line: 18
|
@@ -76,10 +77,10 @@
|
|
76
77
|
- range:
|
77
78
|
start:
|
78
79
|
line: 4
|
79
|
-
character:
|
80
|
+
character: 6
|
80
81
|
end:
|
81
|
-
line:
|
82
|
-
character:
|
82
|
+
line: 4
|
83
|
+
character: 9
|
83
84
|
severity: ERROR
|
84
85
|
message: |-
|
85
86
|
Cannot allow method body have type `::Symbol` because declared as type `(::Integer | ::String)`
|
@@ -64,10 +64,10 @@
|
|
64
64
|
- range:
|
65
65
|
start:
|
66
66
|
line: 37
|
67
|
-
character:
|
67
|
+
character: 4
|
68
68
|
end:
|
69
|
-
line:
|
70
|
-
character:
|
69
|
+
line: 37
|
70
|
+
character: 7
|
71
71
|
severity: ERROR
|
72
72
|
message: |-
|
73
73
|
Cannot allow method body have type `(::Integer | ::String)` because declared as type `::String`
|
@@ -32,8 +32,8 @@
|
|
32
32
|
character: 41
|
33
33
|
severity: ERROR
|
34
34
|
message: |-
|
35
|
-
Cannot assign a value of type `^(::Integer) -> ::Array[::Integer]` to a variable of type `^(::Integer) { (::Integer) -> void } -> void`
|
36
|
-
^(::Integer) -> ::Array[::Integer] <: ^(::Integer) { (::Integer) -> void } -> void
|
35
|
+
Cannot assign a value of type `^(::Integer) -> ::Enumerator[::Integer, ::Array[::Integer]]` to a variable of type `^(::Integer) { (::Integer) -> void } -> void`
|
36
|
+
^(::Integer) -> ::Enumerator[::Integer, ::Array[::Integer]] <: ^(::Integer) { (::Integer) -> void } -> void
|
37
37
|
code: Ruby::IncompatibleAssignment
|
38
38
|
- range:
|
39
39
|
start:
|
data/steep.gemspec
CHANGED
@@ -28,7 +28,7 @@ Gem::Specification.new do |spec|
|
|
28
28
|
|
29
29
|
spec.required_ruby_version = '>= 2.6.0'
|
30
30
|
|
31
|
-
spec.add_runtime_dependency "parser", ">=
|
31
|
+
spec.add_runtime_dependency "parser", ">= 3.0"
|
32
32
|
spec.add_runtime_dependency "activesupport", ">= 5.1"
|
33
33
|
spec.add_runtime_dependency "rainbow", ">= 2.2.2", "< 4.0"
|
34
34
|
spec.add_runtime_dependency "listen", "~> 3.0"
|
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: 0.
|
4
|
+
version: 0.45.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Soutaro Matsumoto
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-08-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: parser
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '3.0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
26
|
+
version: '3.0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: activesupport
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -148,11 +148,13 @@ executables:
|
|
148
148
|
extensions: []
|
149
149
|
extra_rdoc_files: []
|
150
150
|
files:
|
151
|
+
- ".github/dependabot.yml"
|
151
152
|
- ".github/workflows/ruby.yml"
|
152
153
|
- ".gitignore"
|
153
154
|
- ".gitmodules"
|
154
155
|
- CHANGELOG.md
|
155
156
|
- Gemfile
|
157
|
+
- Gemfile.lock
|
156
158
|
- LICENSE
|
157
159
|
- README.md
|
158
160
|
- Rakefile
|
@@ -209,6 +211,7 @@ files:
|
|
209
211
|
- lib/steep/drivers/vendor.rb
|
210
212
|
- lib/steep/drivers/watch.rb
|
211
213
|
- lib/steep/drivers/worker.rb
|
214
|
+
- lib/steep/equatable.rb
|
212
215
|
- lib/steep/expectations.rb
|
213
216
|
- lib/steep/index/rbs_index.rb
|
214
217
|
- lib/steep/index/signature_symbol_provider.rb
|
@@ -260,6 +263,7 @@ files:
|
|
260
263
|
- lib/steep/type_inference/logic.rb
|
261
264
|
- lib/steep/type_inference/logic_type_interpreter.rb
|
262
265
|
- lib/steep/type_inference/method_call.rb
|
266
|
+
- lib/steep/type_inference/method_params.rb
|
263
267
|
- lib/steep/type_inference/send_args.rb
|
264
268
|
- lib/steep/type_inference/type_env.rb
|
265
269
|
- lib/steep/typing.rb
|
@@ -269,6 +273,7 @@ files:
|
|
269
273
|
- sample/lib/conference.rb
|
270
274
|
- sample/sig/conference.rbs
|
271
275
|
- sig/project.rbi
|
276
|
+
- sig/steep/type_inference/send_args.rbs
|
272
277
|
- smoke/alias/Steepfile
|
273
278
|
- smoke/alias/a.rb
|
274
279
|
- smoke/alias/a.rbs
|
@@ -320,6 +325,7 @@ files:
|
|
320
325
|
- smoke/diagnostics-rbs/invalid-method-overload.rbs
|
321
326
|
- smoke/diagnostics-rbs/invalid-type-application.rbs
|
322
327
|
- smoke/diagnostics-rbs/invalid_variance_annotation.rbs
|
328
|
+
- smoke/diagnostics-rbs/mixin-class-error.rbs
|
323
329
|
- smoke/diagnostics-rbs/recursive-alias.rbs
|
324
330
|
- smoke/diagnostics-rbs/recursive-class.rbs
|
325
331
|
- smoke/diagnostics-rbs/superclass-mismatch.rbs
|
@@ -337,6 +343,7 @@ files:
|
|
337
343
|
- smoke/diagnostics/block_body_type_mismatch.rb
|
338
344
|
- smoke/diagnostics/block_type_mismatch.rb
|
339
345
|
- smoke/diagnostics/break_type_mismatch.rb
|
346
|
+
- smoke/diagnostics/different_method_parameter_kind.rb
|
340
347
|
- smoke/diagnostics/else_on_exhaustive_case.rb
|
341
348
|
- smoke/diagnostics/incompatible_annotation.rb
|
342
349
|
- smoke/diagnostics/incompatible_argument.rb
|
@@ -344,6 +351,7 @@ files:
|
|
344
351
|
- smoke/diagnostics/method_arity_mismatch.rb
|
345
352
|
- smoke/diagnostics/method_body_type_mismatch.rb
|
346
353
|
- smoke/diagnostics/method_definition_missing.rb
|
354
|
+
- smoke/diagnostics/method_parameter_mismatch.rb
|
347
355
|
- smoke/diagnostics/method_return_type_annotation_mismatch.rb
|
348
356
|
- smoke/diagnostics/missing_keyword.rb
|
349
357
|
- smoke/diagnostics/no_method.rb
|
@@ -527,7 +535,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
527
535
|
- !ruby/object:Gem::Version
|
528
536
|
version: '0'
|
529
537
|
requirements: []
|
530
|
-
rubygems_version: 3.2.
|
538
|
+
rubygems_version: 3.2.22
|
531
539
|
signing_key:
|
532
540
|
specification_version: 4
|
533
541
|
summary: Gradual Typing for Ruby
|