steep 1.5.3 → 1.6.0.pre.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/ruby-windows.yml +1 -2
- data/.github/workflows/ruby.yml +1 -2
- data/CHANGELOG.md +46 -0
- data/Gemfile +3 -1
- data/Gemfile.lock +37 -10
- data/gemfile_steep/Gemfile.lock +3 -3
- data/lib/steep/ast/types/logic.rb +6 -0
- data/lib/steep/cli.rb +39 -19
- data/lib/steep/diagnostic/ruby.rb +4 -4
- data/lib/steep/interface/builder.rb +9 -0
- data/lib/steep/path_helper.rb +2 -0
- data/lib/steep/project/pattern.rb +1 -1
- data/lib/steep/server/change_buffer.rb +9 -0
- data/lib/steep/server/delay_queue.rb +41 -0
- data/lib/steep/server/interaction_worker.rb +4 -2
- data/lib/steep/server/master.rb +106 -10
- data/lib/steep/server/type_check_worker.rb +10 -3
- data/lib/steep/services/completion_provider.rb +2 -2
- data/lib/steep/services/stats_calculator.rb +2 -2
- data/lib/steep/services/type_name_completion.rb +86 -15
- data/lib/steep/signature/validator.rb +9 -2
- data/lib/steep/subtyping/check.rb +24 -18
- data/lib/steep/type_construction.rb +61 -17
- data/lib/steep/type_inference/logic_type_interpreter.rb +26 -0
- data/lib/steep/type_inference/method_params.rb +1 -1
- data/lib/steep/version.rb +1 -1
- data/lib/steep.rb +1 -3
- data/sig/shims/language-server_protocol.rbs +12 -0
- data/sig/steep/ast/types/logic.rbs +5 -0
- data/sig/steep/ast/types.rbs +1 -1
- data/sig/steep/cli.rbs +2 -0
- data/sig/steep/diagnostic/ruby.rbs +7 -7
- data/sig/steep/project/pattern.rbs +22 -0
- data/sig/steep/server/change_buffer.rbs +4 -0
- data/sig/steep/server/delay_queue.rbs +37 -0
- data/sig/steep/server/master.rbs +4 -0
- data/sig/steep/services/stats_calculator.rbs +30 -6
- data/sig/steep/services/type_name_completion.rbs +13 -0
- data/sig/steep/signature/validator.rbs +5 -0
- data/sig/steep/subtyping/check.rbs +1 -1
- data/sig/steep/subtyping/relation.rbs +11 -1
- data/sig/steep/subtyping/result.rbs +1 -1
- data/sig/steep/type_construction.rbs +1 -1
- data/smoke/block/test_expectations.yml +10 -14
- data/smoke/enumerator/test_expectations.yml +10 -10
- data/smoke/integer/test_expectations.yml +5 -16
- data/smoke/regression/hello world.rb +1 -0
- data/smoke/regression/test_expectations.yml +12 -0
- data/steep.gemspec +1 -1
- metadata +8 -7
- data/lib/steep/shims/filter_map.rb +0 -30
- data/lib/steep/shims/symbol_start_with.rb +0 -18
@@ -35,6 +35,18 @@
|
|
35
35
|
severity: ERROR
|
36
36
|
message: 'Cannot find the declaration of class: `Foo`'
|
37
37
|
code: Ruby::UnknownConstant
|
38
|
+
- file: hello world.rb
|
39
|
+
diagnostics:
|
40
|
+
- range:
|
41
|
+
start:
|
42
|
+
line: 1
|
43
|
+
character: 2
|
44
|
+
end:
|
45
|
+
line: 1
|
46
|
+
character: 5
|
47
|
+
severity: ERROR
|
48
|
+
message: Type `::Integer` does not have method `foo`
|
49
|
+
code: Ruby::NoMethod
|
38
50
|
- file: issue_332.rb
|
39
51
|
diagnostics:
|
40
52
|
- range:
|
data/steep.gemspec
CHANGED
@@ -26,7 +26,7 @@ Gem::Specification.new do |spec|
|
|
26
26
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
27
27
|
spec.require_paths = ["lib"]
|
28
28
|
|
29
|
-
spec.required_ruby_version = '>=
|
29
|
+
spec.required_ruby_version = '>= 3.0.0'
|
30
30
|
|
31
31
|
spec.add_runtime_dependency "parser", ">= 3.1"
|
32
32
|
spec.add_runtime_dependency "activesupport", ">= 5.1"
|
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.6.0.pre.2
|
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-10-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: parser
|
@@ -332,6 +332,7 @@ files:
|
|
332
332
|
- lib/steep/range_extension.rb
|
333
333
|
- lib/steep/server/base_worker.rb
|
334
334
|
- lib/steep/server/change_buffer.rb
|
335
|
+
- lib/steep/server/delay_queue.rb
|
335
336
|
- lib/steep/server/interaction_worker.rb
|
336
337
|
- lib/steep/server/lsp_formatter.rb
|
337
338
|
- lib/steep/server/master.rb
|
@@ -350,8 +351,6 @@ files:
|
|
350
351
|
- lib/steep/services/stats_calculator.rb
|
351
352
|
- lib/steep/services/type_check_service.rb
|
352
353
|
- lib/steep/services/type_name_completion.rb
|
353
|
-
- lib/steep/shims/filter_map.rb
|
354
|
-
- lib/steep/shims/symbol_start_with.rb
|
355
354
|
- lib/steep/signature/validator.rb
|
356
355
|
- lib/steep/source.rb
|
357
356
|
- lib/steep/subtyping/cache.rb
|
@@ -467,6 +466,7 @@ files:
|
|
467
466
|
- sig/steep/range_extension.rbs
|
468
467
|
- sig/steep/server/base_worker.rbs
|
469
468
|
- sig/steep/server/change_buffer.rbs
|
469
|
+
- sig/steep/server/delay_queue.rbs
|
470
470
|
- sig/steep/server/interaction_worker.rbs
|
471
471
|
- sig/steep/server/lsp_formatter.rbs
|
472
472
|
- sig/steep/server/master.rbs
|
@@ -712,6 +712,7 @@ files:
|
|
712
712
|
- smoke/regression/fun.rb
|
713
713
|
- smoke/regression/fun.rbs
|
714
714
|
- smoke/regression/hash.rb
|
715
|
+
- smoke/regression/hello world.rb
|
715
716
|
- smoke/regression/issue_328.rb
|
716
717
|
- smoke/regression/issue_328.rbs
|
717
718
|
- smoke/regression/issue_332.rb
|
@@ -777,12 +778,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
777
778
|
requirements:
|
778
779
|
- - ">="
|
779
780
|
- !ruby/object:Gem::Version
|
780
|
-
version:
|
781
|
+
version: 3.0.0
|
781
782
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
782
783
|
requirements:
|
783
|
-
- - "
|
784
|
+
- - ">"
|
784
785
|
- !ruby/object:Gem::Version
|
785
|
-
version:
|
786
|
+
version: 1.3.1
|
786
787
|
requirements: []
|
787
788
|
rubygems_version: 3.4.10
|
788
789
|
signing_key:
|
@@ -1,30 +0,0 @@
|
|
1
|
-
# Steep runs on Ruby 2.6 and it needs a shim of `filter_map`
|
2
|
-
|
3
|
-
module Shims
|
4
|
-
module EnumerableFilterMap
|
5
|
-
def filter_map(&block)
|
6
|
-
if block
|
7
|
-
result = []
|
8
|
-
|
9
|
-
each do |element|
|
10
|
-
if value = yield(element)
|
11
|
-
result << value
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
result
|
16
|
-
else
|
17
|
-
enum_for :filter_map
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
unless Enumerable.method_defined?(:filter_map)
|
23
|
-
Enumerable.include EnumerableFilterMap
|
24
|
-
|
25
|
-
module ::Enumerable
|
26
|
-
alias filter_map filter_map
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
@@ -1,18 +0,0 @@
|
|
1
|
-
# Steep runs on Ruby 2.6 and it needs a shim of `Symbol#start_with?`
|
2
|
-
|
3
|
-
module Shims
|
4
|
-
module SymbolStartWith
|
5
|
-
def start_with?(*args)
|
6
|
-
to_s.start_with?(*args)
|
7
|
-
end
|
8
|
-
|
9
|
-
def end_with?(*args)
|
10
|
-
to_s.end_with?(*args)
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
unless Symbol.method_defined?(:start_with?)
|
15
|
-
Symbol.include(SymbolStartWith)
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|