steep 1.5.0 → 1.5.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 +12 -0
- data/Gemfile.lock +2 -2
- data/Gemfile.steep.lock +11 -9
- data/Steepfile +2 -3
- data/lib/steep/ast/annotation/collection.rb +6 -6
- data/lib/steep/diagnostic/ruby.rb +22 -2
- data/lib/steep/drivers/checkfile.rb +1 -2
- data/lib/steep/drivers/stats.rb +1 -1
- data/lib/steep/interface/function.rb +8 -8
- data/lib/steep/project/dsl.rb +2 -2
- data/lib/steep/server/interaction_worker.rb +2 -2
- data/lib/steep/subtyping/check.rb +2 -2
- data/lib/steep/subtyping/constraints.rb +2 -2
- data/lib/steep/type_construction.rb +7 -3
- data/lib/steep/type_inference/type_env.rb +3 -3
- data/lib/steep/version.rb +1 -1
- data/sample/lib/conference.rb +5 -0
- data/sig/steep/ast/annotation/collection.rbs +25 -22
- data/sig/steep/diagnostic/ruby.rbs +2 -4
- data/smoke/unexpected/test_expectations.yml +0 -12
- metadata +2 -5
- data/lib/steep/ast/type_params.rb +0 -13
- data/sig/steep/ast/type_params.rbs +0 -11
- data/smoke/unexpected/unexpected.rb +0 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d7775c9db83acf70b19f27b4983923ee40e8d1a39043c981726573b0c06eb1c8
|
4
|
+
data.tar.gz: 1d9f2753a19a577cce778f6ec1ee924534523812764c0350c21280d82a0e1c69
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6bd6340dfecc114df47a959d25a4201a87ccccbc0b1e59238962de51c28218b01aa25499ae8a760e678481192131dfdd3c99b6c89412ce4b6e0b3fad2bf34ca5
|
7
|
+
data.tar.gz: 87437181a053c65f297192eb9e339c0b58ad074d4c6716eef2a1019116d3ed06d0525eebcc49855ae99a8393bffac82640d77f608479b98f67e158b42c54d327
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,18 @@
|
|
2
2
|
|
3
3
|
## master
|
4
4
|
|
5
|
+
## 1.5.1 (2023-07-20)
|
6
|
+
|
7
|
+
### Type checker core
|
8
|
+
|
9
|
+
* Support unreachable branch detection with `elsif` ([#879](https://github.com/soutaro/steep/pull/879))
|
10
|
+
* Give an optional type hint to lhs of `||` ([#874](https://github.com/soutaro/steep/pull/874))
|
11
|
+
|
12
|
+
### Miscellaneous
|
13
|
+
|
14
|
+
* Update steep ([#878](https://github.com/soutaro/steep/pull/878))
|
15
|
+
* Update inline type comments ([#875](https://github.com/soutaro/steep/pull/875))
|
16
|
+
|
5
17
|
## 1.5.0 (2023-07-13)
|
6
18
|
|
7
19
|
### Type checker core
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
steep (1.5.
|
4
|
+
steep (1.5.1)
|
5
5
|
activesupport (>= 5.1)
|
6
6
|
concurrent-ruby (>= 1.1.10)
|
7
7
|
csv (>= 3.0.9)
|
@@ -53,7 +53,7 @@ GEM
|
|
53
53
|
rb-fsevent (0.11.2)
|
54
54
|
rb-inotify (0.10.1)
|
55
55
|
ffi (~> 1.0)
|
56
|
-
rbs (3.1.
|
56
|
+
rbs (3.1.1)
|
57
57
|
ruby-lsp (0.5.1)
|
58
58
|
language_server-protocol (~> 3.17.0)
|
59
59
|
sorbet-runtime
|
data/Gemfile.steep.lock
CHANGED
@@ -1,17 +1,17 @@
|
|
1
1
|
GEM
|
2
2
|
remote: https://rubygems.org/
|
3
3
|
specs:
|
4
|
-
activesupport (7.0.
|
4
|
+
activesupport (7.0.6)
|
5
5
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
6
6
|
i18n (>= 1.6, < 2)
|
7
7
|
minitest (>= 5.1)
|
8
8
|
tzinfo (~> 2.0)
|
9
9
|
ast (2.4.2)
|
10
10
|
concurrent-ruby (1.2.2)
|
11
|
-
csv (3.2.
|
11
|
+
csv (3.2.7)
|
12
12
|
ffi (1.15.5)
|
13
13
|
fileutils (1.7.1)
|
14
|
-
i18n (1.
|
14
|
+
i18n (1.14.1)
|
15
15
|
concurrent-ruby (~> 1.0)
|
16
16
|
json (2.6.3)
|
17
17
|
language_server-protocol (3.17.0.3)
|
@@ -19,18 +19,20 @@ GEM
|
|
19
19
|
rb-fsevent (~> 0.10, >= 0.10.3)
|
20
20
|
rb-inotify (~> 0.9, >= 0.9.10)
|
21
21
|
logger (1.5.3)
|
22
|
-
minitest (5.18.
|
23
|
-
parser (3.2.2.
|
22
|
+
minitest (5.18.1)
|
23
|
+
parser (3.2.2.3)
|
24
24
|
ast (~> 2.4.1)
|
25
|
+
racc
|
26
|
+
racc (1.7.1)
|
25
27
|
rainbow (3.1.1)
|
26
28
|
rb-fsevent (0.11.2)
|
27
29
|
rb-inotify (0.10.1)
|
28
30
|
ffi (~> 1.0)
|
29
|
-
rbs (3.1.
|
31
|
+
rbs (3.1.1)
|
30
32
|
securerandom (0.2.2)
|
31
|
-
steep (1.
|
33
|
+
steep (1.5.0)
|
32
34
|
activesupport (>= 5.1)
|
33
|
-
concurrent-ruby (>= 1.
|
35
|
+
concurrent-ruby (>= 1.1.10)
|
34
36
|
csv (>= 3.0.9)
|
35
37
|
fileutils (>= 1.1.0)
|
36
38
|
json (>= 2.1.0)
|
@@ -39,7 +41,7 @@ GEM
|
|
39
41
|
logger (>= 1.3.0)
|
40
42
|
parser (>= 3.1)
|
41
43
|
rainbow (>= 2.2.2, < 4.0)
|
42
|
-
rbs (>=
|
44
|
+
rbs (>= 3.1.0)
|
43
45
|
securerandom (>= 0.1)
|
44
46
|
strscan (>= 1.0.0)
|
45
47
|
terminal-table (>= 2, < 4)
|
data/Steepfile
CHANGED
@@ -3,13 +3,12 @@ D = Steep::Diagnostic
|
|
3
3
|
target :app do
|
4
4
|
check "lib"
|
5
5
|
ignore "lib/steep/shims"
|
6
|
-
|
6
|
+
|
7
7
|
signature "sig"
|
8
8
|
|
9
9
|
collection_config "rbs_collection.steep.yaml"
|
10
10
|
|
11
|
-
configure_code_diagnostics do |hash|
|
12
|
-
hash[D::Ruby::MethodDefinitionMissing] = :hint
|
11
|
+
configure_code_diagnostics(D::Ruby.strict) do |hash|
|
13
12
|
end
|
14
13
|
|
15
14
|
FileUtils.mkpath("tmp")
|
@@ -110,20 +110,20 @@ module Steep
|
|
110
110
|
end
|
111
111
|
|
112
112
|
def lvar_types
|
113
|
-
var_type_annotations.each_key.with_object({}) do |name, hash|
|
114
|
-
hash[name] = var_type(lvar: name)
|
113
|
+
var_type_annotations.each_key.with_object({}) do |name, hash| #$ Hash[Symbol, Types::t]
|
114
|
+
hash[name] = var_type(lvar: name) || raise
|
115
115
|
end
|
116
116
|
end
|
117
117
|
|
118
118
|
def ivar_types
|
119
|
-
ivar_type_annotations.each_key.with_object({}) do |name, hash|
|
120
|
-
hash[name] = var_type(ivar: name)
|
119
|
+
ivar_type_annotations.each_key.with_object({}) do |name, hash| #$ Hash[Symbol, Types::t]
|
120
|
+
hash[name] = var_type(ivar: name) || raise
|
121
121
|
end
|
122
122
|
end
|
123
123
|
|
124
124
|
def const_types
|
125
|
-
const_type_annotations.each_key.with_object({}) do |name, hash|
|
126
|
-
hash[name] = var_type(const: name)
|
125
|
+
const_type_annotations.each_key.with_object({}) do |name, hash| #$ Hash[RBS::TypeName, Types::t]
|
126
|
+
hash[name] = var_type(const: name) || raise
|
127
127
|
end
|
128
128
|
end
|
129
129
|
|
@@ -841,7 +841,6 @@ module Steep
|
|
841
841
|
end
|
842
842
|
|
843
843
|
class UnexpectedError < Base
|
844
|
-
attr_reader :message
|
845
844
|
attr_reader :error
|
846
845
|
|
847
846
|
def initialize(node:, error:)
|
@@ -850,7 +849,28 @@ module Steep
|
|
850
849
|
end
|
851
850
|
|
852
851
|
def header_line
|
853
|
-
"UnexpectedError: #{error.message}"
|
852
|
+
"UnexpectedError: #{error.message}(#{error.class})"
|
853
|
+
end
|
854
|
+
|
855
|
+
def detail_lines
|
856
|
+
if trace = error.backtrace
|
857
|
+
io = StringIO.new
|
858
|
+
|
859
|
+
total = trace.size
|
860
|
+
if total > 30
|
861
|
+
trace = trace.take(15)
|
862
|
+
end
|
863
|
+
|
864
|
+
trace.each.with_index do |line, index|
|
865
|
+
io.puts "#{index+1}. #{line}"
|
866
|
+
end
|
867
|
+
|
868
|
+
if trace.size != total
|
869
|
+
io.puts " (#{total - trace.size} more backtrace)"
|
870
|
+
end
|
871
|
+
|
872
|
+
io.string
|
873
|
+
end
|
854
874
|
end
|
855
875
|
end
|
856
876
|
|
@@ -168,8 +168,7 @@ module Steep
|
|
168
168
|
|
169
169
|
Steep.logger.info { "Starting type checking: #{request_guid}" }
|
170
170
|
|
171
|
-
|
172
|
-
error_messages = []
|
171
|
+
error_messages = [] #: Array[String]
|
173
172
|
client_reader.read do |response|
|
174
173
|
case
|
175
174
|
when response[:method] == "textDocument/publishDiagnostics"
|
data/lib/steep/drivers/stats.rb
CHANGED
@@ -471,8 +471,8 @@ module Steep
|
|
471
471
|
|
472
472
|
# For overloading
|
473
473
|
def +(other)
|
474
|
-
requireds = {}
|
475
|
-
optionals = {}
|
474
|
+
requireds = {} #: Hash[Symbol, AST::Types::t]
|
475
|
+
optionals = {} #: Hash[Symbol, AST::Types::t]
|
476
476
|
|
477
477
|
all_keys = Set[] + self.requireds.keys + self.optionals.keys + other.requireds.keys + other.optionals.keys
|
478
478
|
all_keys.each do |key|
|
@@ -535,8 +535,8 @@ module Steep
|
|
535
535
|
|
536
536
|
# For union
|
537
537
|
def |(other)
|
538
|
-
requireds = {}
|
539
|
-
optionals = {}
|
538
|
+
requireds = {} #: Hash[Symbol, AST::Types::t]
|
539
|
+
optionals = {} #: Hash[Symbol, AST::Types::t]
|
540
540
|
|
541
541
|
all_keys = Set[] + self.requireds.keys + self.optionals.keys + other.requireds.keys + other.optionals.keys
|
542
542
|
all_keys.each do |key|
|
@@ -600,8 +600,8 @@ module Steep
|
|
600
600
|
|
601
601
|
# For intersection
|
602
602
|
def &(other)
|
603
|
-
requireds = {}
|
604
|
-
optionals = {}
|
603
|
+
requireds = {} #: Hash[Symbol, AST::Types::t]
|
604
|
+
optionals = {} #: Hash[Symbol, AST::Types::t]
|
605
605
|
|
606
606
|
all_keys = Set[] + self.requireds.keys + self.optionals.keys + other.requireds.keys + other.optionals.keys
|
607
607
|
all_keys.each do |key|
|
@@ -665,7 +665,7 @@ module Steep
|
|
665
665
|
end
|
666
666
|
|
667
667
|
def required
|
668
|
-
array = []
|
668
|
+
array = [] #: Array[AST::Types::t]
|
669
669
|
|
670
670
|
positional_params&.each do |param|
|
671
671
|
case param
|
@@ -680,7 +680,7 @@ module Steep
|
|
680
680
|
end
|
681
681
|
|
682
682
|
def optional
|
683
|
-
array = []
|
683
|
+
array = [] #: Array[AST::Types::t]
|
684
684
|
|
685
685
|
positional_params&.each do |param|
|
686
686
|
case param
|
data/lib/steep/project/dsl.rb
CHANGED
@@ -66,7 +66,7 @@ module Steep
|
|
66
66
|
def typing_options(level = nil, **hash)
|
67
67
|
Steep.logger.error "#typing_options is deprecated and has no effect as of version 0.46.0. Update your Steepfile as follows for (almost) equivalent setting:"
|
68
68
|
|
69
|
-
messages = []
|
69
|
+
messages = [] #: Array[String]
|
70
70
|
|
71
71
|
messages << "# D = Steep::Diagnostic # Define a constant to shorten namespace"
|
72
72
|
|
@@ -83,7 +83,7 @@ module Steep
|
|
83
83
|
Steep.logger.error " #{msg}"
|
84
84
|
end
|
85
85
|
|
86
|
-
config = []
|
86
|
+
config = [] #: Array[String]
|
87
87
|
|
88
88
|
if hash[:allow_missing_definitions]
|
89
89
|
config << "hash[D::Ruby::MethodDefinitionMissing] = nil # allow_missing_definitions"
|
@@ -122,7 +122,7 @@ module Steep
|
|
122
122
|
items = begin
|
123
123
|
provider.run(line: job.line, column: job.column)
|
124
124
|
rescue Parser::SyntaxError
|
125
|
-
[]
|
125
|
+
[] #: Array[Services::CompletionProvider::item]
|
126
126
|
end
|
127
127
|
|
128
128
|
completion_items = items.map do |item|
|
@@ -157,7 +157,7 @@ module Steep
|
|
157
157
|
locator = RBS::Locator.new(buffer: buffer, dirs: dirs, decls: decls)
|
158
158
|
|
159
159
|
_hd, tail = locator.find2(line: job.line, column: job.column)
|
160
|
-
tail ||= []
|
160
|
+
tail ||= [] #: Array[RBS::Locator::component]
|
161
161
|
|
162
162
|
tail.reverse_each do |t|
|
163
163
|
case t
|
@@ -430,7 +430,7 @@ module Steep
|
|
430
430
|
when AST::Types::Name::Singleton
|
431
431
|
singleton_super_types(relation.sub_type.name)
|
432
432
|
else
|
433
|
-
[]
|
433
|
+
[] #: Array[super_type]
|
434
434
|
end
|
435
435
|
|
436
436
|
unless possible_sub_types.empty?
|
@@ -743,7 +743,7 @@ module Steep
|
|
743
743
|
args.each {|arg| constraints.unknown!(arg.name) }
|
744
744
|
|
745
745
|
upper_bounds = {}
|
746
|
-
relations = []
|
746
|
+
relations = [] #: Array[Relation]
|
747
747
|
|
748
748
|
args.zip(sub_type.type_params, super_type.type_params).each do |arg, sub_param, sup_param|
|
749
749
|
sub_ub = sub_param.upper_bound
|
@@ -1778,7 +1778,10 @@ module Steep
|
|
1778
1778
|
yield_self do
|
1779
1779
|
left_node, right_node = node.children
|
1780
1780
|
|
1781
|
-
|
1781
|
+
if hint
|
1782
|
+
left_hint = union_type_unify(hint, AST::Builtin.nil_type, AST::Builtin.false_type)
|
1783
|
+
end
|
1784
|
+
left_type, constr, left_context = synthesize(left_node, hint: left_hint, condition: true).to_ary
|
1782
1785
|
|
1783
1786
|
interpreter = TypeInference::LogicTypeInterpreter.new(subtyping: checker, typing: typing, config: builder_config)
|
1784
1787
|
left_truthy, left_falsy = interpreter.eval(env: left_context.type_env, node: left_node)
|
@@ -1888,7 +1891,7 @@ module Steep
|
|
1888
1891
|
if loc.respond_to?(:keyword)
|
1889
1892
|
condition_loc = loc #: NodeHelper::condition_loc
|
1890
1893
|
case condition_loc.keyword.source
|
1891
|
-
when "if"
|
1894
|
+
when "if", "elsif"
|
1892
1895
|
location = condition_loc.begin || condition_loc.keyword
|
1893
1896
|
when "unless"
|
1894
1897
|
# `else` token always exists
|
@@ -1913,8 +1916,9 @@ module Steep
|
|
1913
1916
|
|
1914
1917
|
if loc.respond_to?(:keyword)
|
1915
1918
|
condition_loc = loc #: NodeHelper::condition_loc
|
1919
|
+
|
1916
1920
|
case condition_loc.keyword.source
|
1917
|
-
when "if"
|
1921
|
+
when "if", "elsif"
|
1918
1922
|
# `else` token always exists
|
1919
1923
|
location = condition_loc.else || raise
|
1920
1924
|
when "unless"
|
@@ -9,7 +9,7 @@ module Steep
|
|
9
9
|
attr_reader :pure_method_calls
|
10
10
|
|
11
11
|
def to_s
|
12
|
-
array = []
|
12
|
+
array = [] #: Array[String]
|
13
13
|
|
14
14
|
local_variable_types.each do |name, entry|
|
15
15
|
if enforced_type = entry[1]
|
@@ -108,7 +108,7 @@ module Steep
|
|
108
108
|
end
|
109
109
|
|
110
110
|
def assign_local_variables(assignments)
|
111
|
-
local_variable_types = {}
|
111
|
+
local_variable_types = {} #: Hash[Symbol, local_variable_entry]
|
112
112
|
invalidated_nodes = Set[]
|
113
113
|
|
114
114
|
assignments.each do |name, new_type|
|
@@ -135,7 +135,7 @@ module Steep
|
|
135
135
|
end
|
136
136
|
|
137
137
|
def refine_types(local_variable_types: {}, pure_call_types: {})
|
138
|
-
local_variable_updates = {}
|
138
|
+
local_variable_updates = {} #: Hash[Symbol, local_variable_entry]
|
139
139
|
|
140
140
|
local_variable_types.each do |name, type|
|
141
141
|
local_variable_name!(name)
|
data/lib/steep/version.rb
CHANGED
data/sample/lib/conference.rb
CHANGED
@@ -2,7 +2,7 @@ module Steep
|
|
2
2
|
module AST
|
3
3
|
module Annotation
|
4
4
|
class Collection
|
5
|
-
attr_reader annotations:
|
5
|
+
attr_reader annotations: Array[Annotation::t]
|
6
6
|
|
7
7
|
attr_reader factory: Types::Factory
|
8
8
|
|
@@ -14,31 +14,34 @@ module Steep
|
|
14
14
|
|
15
15
|
attr_reader ivar_type_annotations: Hash[Symbol, IvarType]
|
16
16
|
|
17
|
-
attr_reader method_type_annotations:
|
17
|
+
attr_reader method_type_annotations: Hash[Symbol, MethodType?]
|
18
18
|
|
19
|
-
attr_reader block_type_annotation:
|
19
|
+
attr_reader block_type_annotation: BlockType?
|
20
20
|
|
21
|
-
attr_reader return_type_annotation:
|
21
|
+
attr_reader return_type_annotation: ReturnType?
|
22
22
|
|
23
|
-
attr_reader self_type_annotation:
|
23
|
+
attr_reader self_type_annotation: SelfType?
|
24
24
|
|
25
|
-
attr_reader instance_type_annotation:
|
25
|
+
attr_reader instance_type_annotation: InstanceType?
|
26
26
|
|
27
|
-
attr_reader module_type_annotation:
|
27
|
+
attr_reader module_type_annotation: ModuleType?
|
28
28
|
|
29
29
|
attr_reader implement_module_annotation: Implements?
|
30
30
|
|
31
|
-
attr_reader dynamic_annotations:
|
31
|
+
attr_reader dynamic_annotations: Array[Dynamic]
|
32
32
|
|
33
|
-
attr_reader break_type_annotation:
|
33
|
+
attr_reader break_type_annotation: BreakType?
|
34
34
|
|
35
|
-
def initialize: (annotations:
|
35
|
+
def initialize: (annotations: Array[Annotation::t], factory: Types::Factory, context: RBS::Resolver::context) -> void
|
36
36
|
|
37
|
-
def absolute_type: (
|
37
|
+
def absolute_type: (Types::t) -> Types::t
|
38
|
+
| (Types::t?) -> Types::t?
|
38
39
|
|
39
|
-
def var_type: (
|
40
|
+
def var_type: (lvar: Symbol) -> Types::t?
|
41
|
+
| (ivar: Symbol) -> Types::t?
|
42
|
+
| (const: RBS::TypeName) -> Types::t?
|
40
43
|
|
41
|
-
def method_type: (
|
44
|
+
def method_type: (Symbol name) -> Interface::MethodType?
|
42
45
|
|
43
46
|
%a{pure} def block_type: () -> Types::t?
|
44
47
|
|
@@ -52,23 +55,23 @@ module Steep
|
|
52
55
|
|
53
56
|
%a{pure} def break_type: () -> Types::t?
|
54
57
|
|
55
|
-
def lvar_types: () ->
|
58
|
+
def lvar_types: () -> Hash[Symbol, Types::t]
|
56
59
|
|
57
|
-
def ivar_types: () ->
|
60
|
+
def ivar_types: () -> Hash[Symbol, Types::t]
|
58
61
|
|
59
|
-
def const_types: () ->
|
62
|
+
def const_types: () -> Hash[RBS::TypeName, Types::t]
|
60
63
|
|
61
|
-
def instance_dynamics: () ->
|
64
|
+
def instance_dynamics: () -> Array[Symbol]
|
62
65
|
|
63
|
-
def module_dynamics: () ->
|
66
|
+
def module_dynamics: () -> Array[Symbol]
|
64
67
|
|
65
|
-
def merge_block_annotations: (
|
68
|
+
def merge_block_annotations: (Collection annotations) -> Collection
|
66
69
|
|
67
|
-
def any?: () { () ->
|
70
|
+
def any?: () { (Annotation::t) -> boolish } -> bool
|
68
71
|
|
69
|
-
def size: () ->
|
72
|
+
def size: () -> Integer
|
70
73
|
|
71
|
-
def include?: (
|
74
|
+
def include?: (Annotation::t obj) -> bool
|
72
75
|
end
|
73
76
|
end
|
74
77
|
end
|
@@ -546,11 +546,9 @@ module Steep
|
|
546
546
|
end
|
547
547
|
|
548
548
|
class UnexpectedError < Base
|
549
|
-
attr_reader
|
550
|
-
|
551
|
-
attr_reader error: untyped
|
549
|
+
attr_reader error: Exception
|
552
550
|
|
553
|
-
def initialize: (node:
|
551
|
+
def initialize: (node: Parser::AST::Node, error: Exception) -> void
|
554
552
|
|
555
553
|
def header_line: () -> ::String
|
556
554
|
end
|
@@ -1,16 +1,4 @@
|
|
1
1
|
---
|
2
|
-
- file: unexpected.rb
|
3
|
-
diagnostics:
|
4
|
-
- range:
|
5
|
-
start:
|
6
|
-
line: 1
|
7
|
-
character: 0
|
8
|
-
end:
|
9
|
-
line: 1
|
10
|
-
character: 14
|
11
|
-
severity: ERROR
|
12
|
-
message: 'UnexpectedError: unexpected.rbs:2:17...2:24: Could not find String1'
|
13
|
-
code: Ruby::UnexpectedError
|
14
2
|
- file: unexpected.rbs
|
15
3
|
diagnostics:
|
16
4
|
- range:
|
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.5.
|
4
|
+
version: 1.5.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: 2023-07-
|
11
|
+
date: 2023-07-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: parser
|
@@ -266,7 +266,6 @@ files:
|
|
266
266
|
- lib/steep/ast/builtin.rb
|
267
267
|
- lib/steep/ast/node/type_application.rb
|
268
268
|
- lib/steep/ast/node/type_assertion.rb
|
269
|
-
- lib/steep/ast/type_params.rb
|
270
269
|
- lib/steep/ast/types/any.rb
|
271
270
|
- lib/steep/ast/types/boolean.rb
|
272
271
|
- lib/steep/ast/types/bot.rb
|
@@ -401,7 +400,6 @@ files:
|
|
401
400
|
- sig/steep/ast/builtin.rbs
|
402
401
|
- sig/steep/ast/node/type_application.rbs
|
403
402
|
- sig/steep/ast/node/type_assertion.rbs
|
404
|
-
- sig/steep/ast/type_params.rbs
|
405
403
|
- sig/steep/ast/types.rbs
|
406
404
|
- sig/steep/ast/types/any.rbs
|
407
405
|
- sig/steep/ast/types/boolean.rbs
|
@@ -757,7 +755,6 @@ files:
|
|
757
755
|
- smoke/type_case/test_expectations.yml
|
758
756
|
- smoke/unexpected/Steepfile
|
759
757
|
- smoke/unexpected/test_expectations.yml
|
760
|
-
- smoke/unexpected/unexpected.rb
|
761
758
|
- smoke/unexpected/unexpected.rbs
|
762
759
|
- smoke/yield/Steepfile
|
763
760
|
- smoke/yield/a.rb
|
@@ -1 +0,0 @@
|
|
1
|
-
Unexpected.new.foo().bar
|