steep 0.27.0 → 0.28.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +15 -0
- data/bin/smoke_runner.rb +3 -4
- data/lib/steep.rb +1 -1
- data/lib/steep/ast/builtin.rb +2 -20
- data/lib/steep/ast/types/factory.rb +60 -51
- data/lib/steep/ast/types/intersection.rb +12 -9
- data/lib/steep/ast/types/name.rb +2 -58
- data/lib/steep/ast/types/union.rb +5 -6
- data/lib/steep/errors.rb +14 -0
- data/lib/steep/interface/interface.rb +5 -62
- data/lib/steep/interface/method_type.rb +335 -74
- data/lib/steep/interface/substitution.rb +16 -4
- data/lib/steep/project/completion_provider.rb +1 -1
- data/lib/steep/project/hover_content.rb +1 -1
- data/lib/steep/server/base_worker.rb +1 -0
- data/lib/steep/server/code_worker.rb +2 -0
- data/lib/steep/server/master.rb +10 -3
- data/lib/steep/source.rb +2 -2
- data/lib/steep/subtyping/check.rb +29 -40
- data/lib/steep/type_construction.rb +192 -188
- data/lib/steep/type_inference/block_params.rb +5 -0
- data/lib/steep/version.rb +1 -1
- data/smoke/alias/a.rb +1 -1
- data/smoke/case/a.rb +1 -1
- data/smoke/if/a.rb +1 -1
- data/smoke/module/a.rb +1 -1
- data/smoke/rescue/a.rb +4 -13
- data/steep.gemspec +1 -1
- metadata +5 -5
data/lib/steep/version.rb
CHANGED
data/smoke/alias/a.rb
CHANGED
data/smoke/case/a.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# @type var a: Integer
|
2
2
|
|
3
|
-
# !expects IncompatibleAssignment: lhs_type=::Integer, rhs_type=(::Array[::String] |
|
3
|
+
# !expects IncompatibleAssignment: lhs_type=::Integer, rhs_type=(::Integer | ::Array[::String] | nil | ::String)
|
4
4
|
a = case 1
|
5
5
|
when 2
|
6
6
|
1
|
data/smoke/if/a.rb
CHANGED
data/smoke/module/a.rb
CHANGED
@@ -13,7 +13,7 @@ module A
|
|
13
13
|
# !expects IncompatibleAssignment: lhs_type=::String, rhs_type=::Integer
|
14
14
|
s = n
|
15
15
|
|
16
|
-
# !expects NoMethodError: type=(::
|
16
|
+
# !expects NoMethodError: type=(::Object & ::_Each2[::Integer, ::A] & ::A), method=foo
|
17
17
|
foo()
|
18
18
|
|
19
19
|
n
|
data/smoke/rescue/a.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# @type var a: Integer
|
2
2
|
|
3
|
-
# !expects IncompatibleAssignment: lhs_type=::Integer, rhs_type=(::
|
3
|
+
# !expects IncompatibleAssignment: lhs_type=::Integer, rhs_type=(::String | ::Integer)
|
4
4
|
a = begin
|
5
5
|
'foo'
|
6
6
|
rescue
|
@@ -9,12 +9,12 @@ a = begin
|
|
9
9
|
|
10
10
|
# @type var b: Integer
|
11
11
|
|
12
|
-
# !expects IncompatibleAssignment: lhs_type=::Integer, rhs_type=(::
|
12
|
+
# !expects IncompatibleAssignment: lhs_type=::Integer, rhs_type=(::String | ::Integer)
|
13
13
|
b = 'foo' rescue 1
|
14
14
|
|
15
15
|
# @type var c: Integer
|
16
16
|
|
17
|
-
# !expects IncompatibleAssignment: lhs_type=::Integer, rhs_type=(::
|
17
|
+
# !expects IncompatibleAssignment: lhs_type=::Integer, rhs_type=(::String | ::Symbol | ::Integer)
|
18
18
|
c = begin
|
19
19
|
'foo'
|
20
20
|
rescue RuntimeError
|
@@ -23,18 +23,9 @@ c = begin
|
|
23
23
|
1
|
24
24
|
end
|
25
25
|
|
26
|
-
# @type var d: Integer
|
27
|
-
|
28
|
-
# !expects IncompatibleAssignment: lhs_type=::Integer, rhs_type=::String
|
29
|
-
d = begin
|
30
|
-
1
|
31
|
-
else
|
32
|
-
'foo'
|
33
|
-
end
|
34
|
-
|
35
26
|
# @type var e: Integer
|
36
27
|
|
37
|
-
# !expects IncompatibleAssignment: lhs_type=::Integer, rhs_type=(::Array[::Integer] | ::
|
28
|
+
# !expects IncompatibleAssignment: lhs_type=::Integer, rhs_type=(::Array[::Integer] | ::Symbol | ::Integer)
|
38
29
|
e = begin
|
39
30
|
'foo'
|
40
31
|
rescue RuntimeError
|
data/steep.gemspec
CHANGED
@@ -34,5 +34,5 @@ Gem::Specification.new do |spec|
|
|
34
34
|
spec.add_runtime_dependency "rainbow", ">= 2.2.2", "< 4.0"
|
35
35
|
spec.add_runtime_dependency "listen", "~> 3.1"
|
36
36
|
spec.add_runtime_dependency "language_server-protocol", "~> 3.14.0.2"
|
37
|
-
spec.add_runtime_dependency "rbs", "~> 0.
|
37
|
+
spec.add_runtime_dependency "rbs", "~> 0.12.0"
|
38
38
|
end
|
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.28.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: 2020-
|
11
|
+
date: 2020-09-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: parser
|
@@ -106,14 +106,14 @@ dependencies:
|
|
106
106
|
requirements:
|
107
107
|
- - "~>"
|
108
108
|
- !ruby/object:Gem::Version
|
109
|
-
version: 0.
|
109
|
+
version: 0.12.0
|
110
110
|
type: :runtime
|
111
111
|
prerelease: false
|
112
112
|
version_requirements: !ruby/object:Gem::Requirement
|
113
113
|
requirements:
|
114
114
|
- - "~>"
|
115
115
|
- !ruby/object:Gem::Version
|
116
|
-
version: 0.
|
116
|
+
version: 0.12.0
|
117
117
|
description: Gradual Typing for Ruby
|
118
118
|
email:
|
119
119
|
- matsumoto@soutaro.com
|
@@ -374,7 +374,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
374
374
|
- !ruby/object:Gem::Version
|
375
375
|
version: '0'
|
376
376
|
requirements: []
|
377
|
-
rubygems_version: 3.
|
377
|
+
rubygems_version: 3.1.2
|
378
378
|
signing_key:
|
379
379
|
specification_version: 4
|
380
380
|
summary: Gradual Typing for Ruby
|