steep 1.5.0.pre.2 → 1.5.0.pre.3
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 +21 -0
- data/Gemfile.lock +1 -1
- data/lib/steep/ast/node/type_application.rb +4 -1
- data/lib/steep/ast/node/type_assertion.rb +4 -2
- data/lib/steep/diagnostic/ruby.rb +3 -3
- data/lib/steep/server/interaction_worker.rb +4 -2
- data/lib/steep/version.rb +1 -1
- data/sig/steep/server/interaction_worker.rbs +4 -0
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1fe028736497aa5746e128c32a325b6b98101dc30a97f82b16d572db9a3d39b8
|
4
|
+
data.tar.gz: 1ac7376836e97b860052b75aab42a08ad7a06143d8e0208c9fc764ea54e74cee
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9e1dbff5baebfd9ffd88390dcff4831d7d2bead258bd860fa7a6cf62e4c7880c398788c1d6f3ad163ac4256bcf9f25e59f78350a0422e4afa6ee360d38dbc876
|
7
|
+
data.tar.gz: ba0a4d84cb3a50c764369766fceae755fd6ec5717a488904db5d29f5b2ad48d05dadcec6ce37ef9092616aa540e3c513eaa526983ed15fe3096349d685aa0f24
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,20 @@
|
|
2
2
|
|
3
3
|
## master
|
4
4
|
|
5
|
+
## 1.5.0.pre.3 (2023-07-05)
|
6
|
+
|
7
|
+
### Type checker core
|
8
|
+
|
9
|
+
* Resolve type names from TypeAssertion and TypeApplication ([#836](https://github.com/soutaro/steep/pull/836))
|
10
|
+
|
11
|
+
### Commandline tool
|
12
|
+
|
13
|
+
* Replace ElseOnExhaustiveCase by UnreachableBranch from steep/diagnostic/ruby.rb ([#833](https://github.com/soutaro/steep/pull/833))
|
14
|
+
|
15
|
+
### Language server
|
16
|
+
|
17
|
+
* Reuse the latest result to keep SignatureHelp opened while typing ([#835](https://github.com/soutaro/steep/pull/835))
|
18
|
+
|
5
19
|
## 1.5.0.pre.2 (2023-07-05)
|
6
20
|
|
7
21
|
### Language server
|
@@ -21,6 +35,10 @@
|
|
21
35
|
* Fix type assertion parsing error ([#805](https://github.com/soutaro/steep/pull/805))
|
22
36
|
* Distribute `untyped` to block params ([#798](https://github.com/soutaro/steep/pull/798))
|
23
37
|
* Should escape underscore for method name ([#770](https://github.com/soutaro/steep/pull/770))
|
38
|
+
* Give a special typing rule to `#lambda` calls ([#811](https://github.com/soutaro/steep/pull/811))
|
39
|
+
* Support early return code using "and return" ([#828](https://github.com/soutaro/steep/pull/828))
|
40
|
+
* Validate type applications in ancestors ([#810](https://github.com/soutaro/steep/pull/810))
|
41
|
+
* Convert block-pass-arguments with `#to_proc` ([#806](https://github.com/soutaro/steep/pull/806))
|
24
42
|
|
25
43
|
### Commandline tool
|
26
44
|
|
@@ -38,11 +56,14 @@
|
|
38
56
|
|
39
57
|
* Completion in annotations ([#818](https://github.com/soutaro/steep/pull/818))
|
40
58
|
* Implement *go to type definition* ([#784](https://github.com/soutaro/steep/pull/784))
|
59
|
+
* completion: Support completion for optional chaining (&.) ([#827](https://github.com/soutaro/steep/pull/827))
|
60
|
+
* signature helps are not shown if the target code has comments ([#829](https://github.com/soutaro/steep/pull/829))
|
41
61
|
|
42
62
|
### Miscellaneous
|
43
63
|
|
44
64
|
* Typecheck sources ([#820](https://github.com/soutaro/steep/pull/820))
|
45
65
|
* Relax concurrent-ruby requirement ([#812](https://github.com/soutaro/steep/pull/812))
|
66
|
+
* Cast from union for faster type checking ([#830](https://github.com/soutaro/steep/pull/830))
|
46
67
|
|
47
68
|
## 1.4.0 (2023-04-25)
|
48
69
|
|
data/Gemfile.lock
CHANGED
@@ -25,6 +25,8 @@ module Steep
|
|
25
25
|
end
|
26
26
|
|
27
27
|
def types(context, subtyping, type_vars)
|
28
|
+
resolver = RBS::Resolver::TypeNameResolver.new(subtyping.factory.env)
|
29
|
+
|
28
30
|
# @type var types: Array[Types::t]
|
29
31
|
types = []
|
30
32
|
|
@@ -32,6 +34,7 @@ module Steep
|
|
32
34
|
|
33
35
|
while true
|
34
36
|
ty = RBS::Parser.parse_type(loc.buffer, range: loc.range, variables: type_vars) or break
|
37
|
+
ty = ty.map_type_name {|name| resolver.resolve(name, context: context) || name.absolute! }
|
35
38
|
|
36
39
|
validator = Signature::Validator.new(checker: subtyping)
|
37
40
|
validator.validate_type(ty)
|
@@ -41,7 +44,7 @@ module Steep
|
|
41
44
|
end
|
42
45
|
|
43
46
|
ty = subtyping.factory.type(ty)
|
44
|
-
types <<
|
47
|
+
types << ty
|
45
48
|
|
46
49
|
match = RBS::Location.new(loc.buffer, ty.location.end_pos, type_location.end_pos).source.match(/\A\s*,\s*/) or break
|
47
50
|
offset = match.length
|
@@ -18,12 +18,14 @@ module Steep
|
|
18
18
|
|
19
19
|
def type(context, subtyping, type_vars)
|
20
20
|
if ty = RBS::Parser.parse_type(type_location.buffer, range: type_location.range, variables: type_vars, require_eof: true)
|
21
|
+
resolver = RBS::Resolver::TypeNameResolver.new(subtyping.factory.env)
|
22
|
+
ty = ty.map_type_name {|name| resolver.resolve(name, context: context) || name.absolute! }
|
23
|
+
|
21
24
|
validator = Signature::Validator.new(checker: subtyping)
|
22
25
|
validator.validate_type(ty)
|
23
26
|
|
24
27
|
unless validator.has_error?
|
25
|
-
|
26
|
-
subtyping.factory.absolute_type(ty, context: context)
|
28
|
+
subtyping.factory.type(ty)
|
27
29
|
end
|
28
30
|
else
|
29
31
|
nil
|
@@ -968,7 +968,7 @@ module Steep
|
|
968
968
|
{
|
969
969
|
ImplicitBreakValueMismatch => :warning,
|
970
970
|
FallbackAny => :information,
|
971
|
-
|
971
|
+
UnreachableBranch => :warning,
|
972
972
|
UnknownConstant => :warning,
|
973
973
|
MethodDefinitionMissing => :information,
|
974
974
|
FalseAssertion => :information,
|
@@ -989,7 +989,7 @@ module Steep
|
|
989
989
|
NoMethod => nil,
|
990
990
|
ImplicitBreakValueMismatch => nil,
|
991
991
|
FallbackAny => nil,
|
992
|
-
|
992
|
+
UnreachableBranch => nil,
|
993
993
|
UnknownConstant => nil,
|
994
994
|
MethodDefinitionMissing => nil,
|
995
995
|
UnsupportedSyntax => nil,
|
@@ -1006,7 +1006,7 @@ module Steep
|
|
1006
1006
|
NoMethod => nil,
|
1007
1007
|
ImplicitBreakValueMismatch => nil,
|
1008
1008
|
FallbackAny => nil,
|
1009
|
-
|
1009
|
+
UnreachableBranch => nil,
|
1010
1010
|
UnknownConstant => nil,
|
1011
1011
|
MethodDefinitionMissing => nil,
|
1012
1012
|
UnexpectedJump => nil,
|
@@ -406,7 +406,8 @@ module Steep
|
|
406
406
|
)
|
407
407
|
end
|
408
408
|
|
409
|
-
|
409
|
+
@last_signature_help_line = job.line
|
410
|
+
@last_signature_help_result = LSP::Interface::SignatureHelp.new(
|
410
411
|
signatures: signatures,
|
411
412
|
active_signature: index
|
412
413
|
)
|
@@ -414,7 +415,8 @@ module Steep
|
|
414
415
|
end
|
415
416
|
end
|
416
417
|
rescue Parser::SyntaxError
|
417
|
-
#
|
418
|
+
# Reuse the latest result to keep SignatureHelp opened while typing
|
419
|
+
@last_signature_help_result if @last_signature_help_line == job.line
|
418
420
|
end
|
419
421
|
end
|
420
422
|
end
|
data/lib/steep/version.rb
CHANGED
@@ -52,6 +52,10 @@ module Steep
|
|
52
52
|
|
53
53
|
module LSP = LanguageServer::Protocol
|
54
54
|
|
55
|
+
@last_signature_help_line: Integer
|
56
|
+
|
57
|
+
@last_signature_help_result: LanguageServer::Protocol::Interface::SignatureHelp
|
58
|
+
|
55
59
|
attr_reader service: Services::TypeCheckService
|
56
60
|
|
57
61
|
def initialize: (project: Project, reader: Reader, writer: Writer, ?queue: Queue) -> void
|