solargraph 0.47.0 → 0.47.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +7 -0
- data/lib/solargraph/complex_type.rb +4 -0
- data/lib/solargraph/diagnostics/rubocop.rb +1 -1
- data/lib/solargraph/shell.rb +1 -5
- data/lib/solargraph/source.rb +0 -2
- data/lib/solargraph/type_checker/checks.rb +13 -0
- data/lib/solargraph/type_checker.rb +2 -2
- data/lib/solargraph/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9d35030ae56f6aaff108a24e4fb06713f911ba4366feb2223b24ad0ea4568522
|
4
|
+
data.tar.gz: a9eeaee16171bc762922ac55d10c61d53bcfe6ef1df0b20623c81e0978a80c7d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0b13ae6284def50f72c9aaed3cad6f89e879306dc8421b1c13f622e18181e6d9aaecf4f57ffa56601a00c92066557bb798d3e8ee6a397920ff0072f909e05463
|
7
|
+
data.tar.gz: 9a0366309ebe9a4a784c2933a8452e2084c376ff9aa3cd6c3bf555f4d6ce046f11245679c688bef43c6c1e67d94b70afb4250149c9b01b80fc525b80a80b6486
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
+
## 0.47.2 - September 30, 2022
|
2
|
+
- Fix complex type inference (#578)
|
3
|
+
- Off-by-one diagnostic (#595)
|
4
|
+
|
5
|
+
## 0.47.1 - September 27, 2022
|
6
|
+
- Remove debug code from release (#600)
|
7
|
+
|
1
8
|
## 0.47.0 - September 25, 2022
|
2
9
|
- Completion candidates for union types (#507)
|
3
10
|
- Nullify Hover object instead of contents value (#583)
|
data/lib/solargraph/shell.rb
CHANGED
@@ -175,11 +175,7 @@ module Solargraph
|
|
175
175
|
api_map = nil
|
176
176
|
time = Benchmark.measure {
|
177
177
|
api_map = Solargraph::ApiMap.load(directory)
|
178
|
-
pins
|
179
|
-
api_map.source_maps.each do |sm|
|
180
|
-
pins.concat sm.locals
|
181
|
-
end
|
182
|
-
pins.each do |pin|
|
178
|
+
api_map.pins.each do |pin|
|
183
179
|
begin
|
184
180
|
puts pin_description(pin) if options[:verbose]
|
185
181
|
pin.typify api_map
|
data/lib/solargraph/source.rb
CHANGED
@@ -45,8 +45,6 @@ module Solargraph
|
|
45
45
|
@node, @comments = Solargraph::Parser.parse_with_comments(@code, filename)
|
46
46
|
@parsed = true
|
47
47
|
rescue Parser::SyntaxError, EncodingError => e
|
48
|
-
puts "[#{e.class}] #{e.message}"
|
49
|
-
puts e.backtrace
|
50
48
|
@node = nil
|
51
49
|
@comments = {}
|
52
50
|
@parsed = false
|
@@ -61,6 +61,19 @@ module Solargraph
|
|
61
61
|
false
|
62
62
|
end
|
63
63
|
|
64
|
+
# @param api_map [ApiMap]
|
65
|
+
# @param inferred [ComplexType]
|
66
|
+
# @param expected [ComplexType]
|
67
|
+
# @return [Boolean]
|
68
|
+
def all_types_match? api_map, inferred, expected
|
69
|
+
return duck_types_match?(api_map, expected, inferred) if expected.duck_type?
|
70
|
+
inferred.each do |inf|
|
71
|
+
next if inf.duck_type?
|
72
|
+
return false unless expected.any? { |exp| exp == inf || either_way?(api_map, inf, exp) }
|
73
|
+
end
|
74
|
+
true
|
75
|
+
end
|
76
|
+
|
64
77
|
# @param api_map [ApiMap]
|
65
78
|
# @param expected [ComplexType]
|
66
79
|
# @param inferred [ComplexType]
|
@@ -105,7 +105,7 @@ module Solargraph
|
|
105
105
|
result.push Problem.new(pin.location, "#{pin.path} return type could not be inferred", pin: pin)
|
106
106
|
end
|
107
107
|
else
|
108
|
-
unless (rules.rank > 1 ?
|
108
|
+
unless (rules.rank > 1 ? all_types_match?(api_map, inferred, declared) : any_types_match?(api_map, declared, inferred))
|
109
109
|
result.push Problem.new(pin.location, "Declared return type #{declared} does not match inferred type #{inferred} for #{pin.path}", pin: pin)
|
110
110
|
end
|
111
111
|
end
|
@@ -177,7 +177,7 @@ module Solargraph
|
|
177
177
|
result.push Problem.new(pin.location, "Variable type could not be inferred for #{pin.name}", pin: pin)
|
178
178
|
end
|
179
179
|
else
|
180
|
-
unless
|
180
|
+
unless any_types_match?(api_map, declared, inferred)
|
181
181
|
result.push Problem.new(pin.location, "Declared type #{declared} does not match inferred type #{inferred} for variable #{pin.name}", pin: pin)
|
182
182
|
end
|
183
183
|
end
|
data/lib/solargraph/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: solargraph
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.47.
|
4
|
+
version: 0.47.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Fred Snyder
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-09-
|
11
|
+
date: 2022-09-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: backport
|