steep 1.5.3 → 1.6.0.pre.2
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-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
|
-
|