steep 0.13.0 → 0.16.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.
Files changed (214) hide show
  1. checksums.yaml +4 -4
  2. data/.gitmodules +0 -3
  3. data/CHANGELOG.md +28 -0
  4. data/Rakefile +0 -13
  5. data/bin/setup +0 -2
  6. data/bin/smoke_runner.rb +0 -1
  7. data/exe/steep +0 -1
  8. data/lib/steep.rb +33 -1
  9. data/lib/steep/annotation_parser.rb +4 -4
  10. data/lib/steep/ast/buffer.rb +11 -7
  11. data/lib/steep/ast/builtin.rb +8 -0
  12. data/lib/steep/ast/types/factory.rb +124 -89
  13. data/lib/steep/cli.rb +16 -1
  14. data/lib/steep/drivers/annotations.rb +1 -1
  15. data/lib/steep/drivers/check.rb +20 -4
  16. data/lib/steep/drivers/init.rb +5 -5
  17. data/lib/steep/drivers/langserver.rb +13 -287
  18. data/lib/steep/drivers/utils/driver_helper.rb +1 -1
  19. data/lib/steep/drivers/vendor.rb +2 -2
  20. data/lib/steep/drivers/watch.rb +97 -85
  21. data/lib/steep/drivers/worker.rb +51 -0
  22. data/lib/steep/project.rb +9 -5
  23. data/lib/steep/project/completion_provider.rb +298 -0
  24. data/lib/steep/project/dsl.rb +14 -0
  25. data/lib/steep/project/file.rb +54 -47
  26. data/lib/steep/project/hover_content.rb +17 -8
  27. data/lib/steep/project/options.rb +25 -3
  28. data/lib/steep/project/target.rb +40 -24
  29. data/lib/steep/server/base_worker.rb +56 -0
  30. data/lib/steep/server/code_worker.rb +151 -0
  31. data/lib/steep/server/interaction_worker.rb +281 -0
  32. data/lib/steep/server/master.rb +196 -0
  33. data/lib/steep/server/signature_worker.rb +148 -0
  34. data/lib/steep/server/utils.rb +36 -0
  35. data/lib/steep/server/worker_process.rb +62 -0
  36. data/lib/steep/signature/errors.rb +1 -1
  37. data/lib/steep/signature/validator.rb +13 -13
  38. data/lib/steep/source.rb +1 -1
  39. data/lib/steep/type_construction.rb +1004 -727
  40. data/lib/steep/type_inference/constant_env.rb +3 -11
  41. data/lib/steep/type_inference/context.rb +8 -3
  42. data/lib/steep/type_inference/context_array.rb +111 -0
  43. data/lib/steep/type_inference/local_variable_type_env.rb +226 -0
  44. data/lib/steep/type_inference/logic.rb +130 -0
  45. data/lib/steep/type_inference/type_env.rb +5 -69
  46. data/lib/steep/typing.rb +91 -23
  47. data/lib/steep/version.rb +1 -1
  48. data/smoke/alias/Steepfile +1 -0
  49. data/smoke/alias/a.rb +1 -1
  50. data/smoke/and/Steepfile +1 -0
  51. data/smoke/array/Steepfile +1 -0
  52. data/smoke/array/b.rb +0 -2
  53. data/smoke/block/Steepfile +1 -0
  54. data/smoke/case/Steepfile +1 -0
  55. data/smoke/class/Steepfile +1 -0
  56. data/smoke/const/Steepfile +1 -0
  57. data/smoke/dstr/Steepfile +1 -0
  58. data/smoke/ensure/Steepfile +1 -0
  59. data/smoke/enumerator/Steepfile +1 -0
  60. data/smoke/extension/Steepfile +1 -0
  61. data/smoke/extension/c.rb +1 -0
  62. data/smoke/hash/Steepfile +1 -0
  63. data/smoke/hello/Steepfile +1 -0
  64. data/smoke/if/Steepfile +1 -0
  65. data/smoke/if/a.rb +1 -1
  66. data/smoke/implements/Steepfile +1 -0
  67. data/smoke/initialize/Steepfile +1 -0
  68. data/smoke/integer/Steepfile +1 -0
  69. data/smoke/interface/Steepfile +1 -0
  70. data/smoke/kwbegin/Steepfile +1 -0
  71. data/smoke/lambda/Steepfile +1 -0
  72. data/smoke/literal/Steepfile +1 -0
  73. data/smoke/map/Steepfile +1 -0
  74. data/smoke/method/Steepfile +1 -0
  75. data/smoke/module/Steepfile +1 -0
  76. data/smoke/regexp/Steepfile +1 -0
  77. data/smoke/regexp/b.rb +4 -4
  78. data/smoke/regression/Steepfile +1 -0
  79. data/smoke/rescue/Steepfile +1 -0
  80. data/smoke/rescue/a.rb +1 -1
  81. data/smoke/self/Steepfile +1 -0
  82. data/smoke/skip/Steepfile +1 -0
  83. data/smoke/stdout/Steepfile +1 -0
  84. data/smoke/super/Steepfile +1 -0
  85. data/smoke/type_case/Steepfile +1 -0
  86. data/smoke/yield/Steepfile +1 -0
  87. data/steep.gemspec +8 -8
  88. metadata +38 -138
  89. data/exe/rbs +0 -3
  90. data/exe/ruby-signature +0 -3
  91. data/vendor/ruby-signature/.github/workflows/ruby.yml +0 -27
  92. data/vendor/ruby-signature/.gitignore +0 -12
  93. data/vendor/ruby-signature/.rubocop.yml +0 -15
  94. data/vendor/ruby-signature/BSDL +0 -22
  95. data/vendor/ruby-signature/COPYING +0 -56
  96. data/vendor/ruby-signature/Gemfile +0 -6
  97. data/vendor/ruby-signature/README.md +0 -93
  98. data/vendor/ruby-signature/Rakefile +0 -66
  99. data/vendor/ruby-signature/bin/annotate-with-rdoc +0 -156
  100. data/vendor/ruby-signature/bin/console +0 -14
  101. data/vendor/ruby-signature/bin/query-rdoc +0 -103
  102. data/vendor/ruby-signature/bin/setup +0 -10
  103. data/vendor/ruby-signature/bin/sort +0 -88
  104. data/vendor/ruby-signature/bin/test_runner.rb +0 -17
  105. data/vendor/ruby-signature/docs/CONTRIBUTING.md +0 -97
  106. data/vendor/ruby-signature/docs/sigs.md +0 -148
  107. data/vendor/ruby-signature/docs/stdlib.md +0 -152
  108. data/vendor/ruby-signature/docs/syntax.md +0 -528
  109. data/vendor/ruby-signature/exe/rbs +0 -3
  110. data/vendor/ruby-signature/exe/ruby-signature +0 -7
  111. data/vendor/ruby-signature/lib/ruby/signature.rb +0 -64
  112. data/vendor/ruby-signature/lib/ruby/signature/ast/annotation.rb +0 -29
  113. data/vendor/ruby-signature/lib/ruby/signature/ast/comment.rb +0 -29
  114. data/vendor/ruby-signature/lib/ruby/signature/ast/declarations.rb +0 -391
  115. data/vendor/ruby-signature/lib/ruby/signature/ast/members.rb +0 -364
  116. data/vendor/ruby-signature/lib/ruby/signature/buffer.rb +0 -52
  117. data/vendor/ruby-signature/lib/ruby/signature/builtin_names.rb +0 -54
  118. data/vendor/ruby-signature/lib/ruby/signature/cli.rb +0 -534
  119. data/vendor/ruby-signature/lib/ruby/signature/constant.rb +0 -28
  120. data/vendor/ruby-signature/lib/ruby/signature/constant_table.rb +0 -152
  121. data/vendor/ruby-signature/lib/ruby/signature/definition.rb +0 -172
  122. data/vendor/ruby-signature/lib/ruby/signature/definition_builder.rb +0 -921
  123. data/vendor/ruby-signature/lib/ruby/signature/environment.rb +0 -283
  124. data/vendor/ruby-signature/lib/ruby/signature/environment_loader.rb +0 -138
  125. data/vendor/ruby-signature/lib/ruby/signature/environment_walker.rb +0 -126
  126. data/vendor/ruby-signature/lib/ruby/signature/errors.rb +0 -189
  127. data/vendor/ruby-signature/lib/ruby/signature/location.rb +0 -104
  128. data/vendor/ruby-signature/lib/ruby/signature/method_type.rb +0 -125
  129. data/vendor/ruby-signature/lib/ruby/signature/namespace.rb +0 -93
  130. data/vendor/ruby-signature/lib/ruby/signature/parser.y +0 -1343
  131. data/vendor/ruby-signature/lib/ruby/signature/prototype/rb.rb +0 -441
  132. data/vendor/ruby-signature/lib/ruby/signature/prototype/rbi.rb +0 -579
  133. data/vendor/ruby-signature/lib/ruby/signature/prototype/runtime.rb +0 -383
  134. data/vendor/ruby-signature/lib/ruby/signature/substitution.rb +0 -48
  135. data/vendor/ruby-signature/lib/ruby/signature/test.rb +0 -28
  136. data/vendor/ruby-signature/lib/ruby/signature/test/errors.rb +0 -63
  137. data/vendor/ruby-signature/lib/ruby/signature/test/hook.rb +0 -290
  138. data/vendor/ruby-signature/lib/ruby/signature/test/setup.rb +0 -58
  139. data/vendor/ruby-signature/lib/ruby/signature/test/spy.rb +0 -324
  140. data/vendor/ruby-signature/lib/ruby/signature/test/test_helper.rb +0 -185
  141. data/vendor/ruby-signature/lib/ruby/signature/test/type_check.rb +0 -256
  142. data/vendor/ruby-signature/lib/ruby/signature/type_name.rb +0 -72
  143. data/vendor/ruby-signature/lib/ruby/signature/types.rb +0 -932
  144. data/vendor/ruby-signature/lib/ruby/signature/variance_calculator.rb +0 -140
  145. data/vendor/ruby-signature/lib/ruby/signature/vendorer.rb +0 -49
  146. data/vendor/ruby-signature/lib/ruby/signature/version.rb +0 -5
  147. data/vendor/ruby-signature/lib/ruby/signature/writer.rb +0 -271
  148. data/vendor/ruby-signature/ruby-signature.gemspec +0 -45
  149. data/vendor/ruby-signature/stdlib/abbrev/abbrev.rbs +0 -3
  150. data/vendor/ruby-signature/stdlib/base64/base64.rbs +0 -15
  151. data/vendor/ruby-signature/stdlib/builtin/array.rbs +0 -1997
  152. data/vendor/ruby-signature/stdlib/builtin/basic_object.rbs +0 -280
  153. data/vendor/ruby-signature/stdlib/builtin/binding.rbs +0 -177
  154. data/vendor/ruby-signature/stdlib/builtin/builtin.rbs +0 -35
  155. data/vendor/ruby-signature/stdlib/builtin/class.rbs +0 -145
  156. data/vendor/ruby-signature/stdlib/builtin/comparable.rbs +0 -116
  157. data/vendor/ruby-signature/stdlib/builtin/complex.rbs +0 -400
  158. data/vendor/ruby-signature/stdlib/builtin/constants.rbs +0 -37
  159. data/vendor/ruby-signature/stdlib/builtin/data.rbs +0 -5
  160. data/vendor/ruby-signature/stdlib/builtin/deprecated.rbs +0 -2
  161. data/vendor/ruby-signature/stdlib/builtin/dir.rbs +0 -419
  162. data/vendor/ruby-signature/stdlib/builtin/encoding.rbs +0 -606
  163. data/vendor/ruby-signature/stdlib/builtin/enumerable.rbs +0 -404
  164. data/vendor/ruby-signature/stdlib/builtin/enumerator.rbs +0 -260
  165. data/vendor/ruby-signature/stdlib/builtin/errno.rbs +0 -781
  166. data/vendor/ruby-signature/stdlib/builtin/errors.rbs +0 -582
  167. data/vendor/ruby-signature/stdlib/builtin/exception.rbs +0 -193
  168. data/vendor/ruby-signature/stdlib/builtin/false_class.rbs +0 -40
  169. data/vendor/ruby-signature/stdlib/builtin/fiber.rbs +0 -68
  170. data/vendor/ruby-signature/stdlib/builtin/fiber_error.rbs +0 -12
  171. data/vendor/ruby-signature/stdlib/builtin/file.rbs +0 -476
  172. data/vendor/ruby-signature/stdlib/builtin/file_test.rbs +0 -59
  173. data/vendor/ruby-signature/stdlib/builtin/float.rbs +0 -696
  174. data/vendor/ruby-signature/stdlib/builtin/gc.rbs +0 -121
  175. data/vendor/ruby-signature/stdlib/builtin/hash.rbs +0 -1029
  176. data/vendor/ruby-signature/stdlib/builtin/integer.rbs +0 -710
  177. data/vendor/ruby-signature/stdlib/builtin/io.rbs +0 -683
  178. data/vendor/ruby-signature/stdlib/builtin/kernel.rbs +0 -574
  179. data/vendor/ruby-signature/stdlib/builtin/marshal.rbs +0 -135
  180. data/vendor/ruby-signature/stdlib/builtin/match_data.rbs +0 -141
  181. data/vendor/ruby-signature/stdlib/builtin/math.rbs +0 -66
  182. data/vendor/ruby-signature/stdlib/builtin/method.rbs +0 -182
  183. data/vendor/ruby-signature/stdlib/builtin/module.rbs +0 -248
  184. data/vendor/ruby-signature/stdlib/builtin/nil_class.rbs +0 -82
  185. data/vendor/ruby-signature/stdlib/builtin/numeric.rbs +0 -409
  186. data/vendor/ruby-signature/stdlib/builtin/object.rbs +0 -824
  187. data/vendor/ruby-signature/stdlib/builtin/proc.rbs +0 -426
  188. data/vendor/ruby-signature/stdlib/builtin/process.rbs +0 -354
  189. data/vendor/ruby-signature/stdlib/builtin/random.rbs +0 -93
  190. data/vendor/ruby-signature/stdlib/builtin/range.rbs +0 -226
  191. data/vendor/ruby-signature/stdlib/builtin/rational.rbs +0 -424
  192. data/vendor/ruby-signature/stdlib/builtin/rb_config.rbs +0 -10
  193. data/vendor/ruby-signature/stdlib/builtin/regexp.rbs +0 -131
  194. data/vendor/ruby-signature/stdlib/builtin/ruby_vm.rbs +0 -14
  195. data/vendor/ruby-signature/stdlib/builtin/signal.rbs +0 -55
  196. data/vendor/ruby-signature/stdlib/builtin/string.rbs +0 -770
  197. data/vendor/ruby-signature/stdlib/builtin/string_io.rbs +0 -13
  198. data/vendor/ruby-signature/stdlib/builtin/struct.rbs +0 -40
  199. data/vendor/ruby-signature/stdlib/builtin/symbol.rbs +0 -230
  200. data/vendor/ruby-signature/stdlib/builtin/thread.rbs +0 -1112
  201. data/vendor/ruby-signature/stdlib/builtin/thread_group.rbs +0 -23
  202. data/vendor/ruby-signature/stdlib/builtin/time.rbs +0 -739
  203. data/vendor/ruby-signature/stdlib/builtin/trace_point.rbs +0 -91
  204. data/vendor/ruby-signature/stdlib/builtin/true_class.rbs +0 -46
  205. data/vendor/ruby-signature/stdlib/builtin/unbound_method.rbs +0 -159
  206. data/vendor/ruby-signature/stdlib/builtin/warning.rbs +0 -17
  207. data/vendor/ruby-signature/stdlib/erb/erb.rbs +0 -18
  208. data/vendor/ruby-signature/stdlib/find/find.rbs +0 -44
  209. data/vendor/ruby-signature/stdlib/pathname/pathname.rbs +0 -21
  210. data/vendor/ruby-signature/stdlib/prime/integer-extension.rbs +0 -23
  211. data/vendor/ruby-signature/stdlib/prime/prime.rbs +0 -188
  212. data/vendor/ruby-signature/stdlib/securerandom/securerandom.rbs +0 -9
  213. data/vendor/ruby-signature/stdlib/set/set.rbs +0 -77
  214. data/vendor/ruby-signature/stdlib/tmpdir/tmpdir.rbs +0 -53
@@ -2,7 +2,7 @@
2
2
 
3
3
  x = y = z = (_ = nil)
4
4
 
5
- # !expects IncompatibleAssignment: lhs_type=::String, rhs_type=::Symbol
5
+ # !expects IncompatibleAssignment: lhs_type=::String, rhs_type=(::Symbol | nil)
6
6
  a = if x
7
7
  :foo
8
8
  end
@@ -1,4 +1,5 @@
1
1
  target :test do
2
+ typing_options :strict
2
3
  check "*.rb"
3
4
  signature "*.rbs"
4
5
  end
@@ -1,4 +1,5 @@
1
1
  target :test do
2
+ typing_options :strict
2
3
  check "*.rb"
3
4
  signature "*.rbs"
4
5
  end
@@ -1,4 +1,5 @@
1
1
  target :test do
2
+ typing_options :strict
2
3
  check "*.rb"
3
4
  signature "*.rbs"
4
5
  end
@@ -1,4 +1,5 @@
1
1
  target :test do
2
+ typing_options :strict
2
3
  check "*.rb"
3
4
  signature "*.rbs"
4
5
  end
@@ -1,4 +1,5 @@
1
1
  target :test do
2
+ typing_options :strict
2
3
  check "*.rb"
3
4
  signature "*.rbs"
4
5
  end
@@ -1,4 +1,5 @@
1
1
  target :test do
2
+ typing_options :strict
2
3
  check "*.rb"
3
4
  signature "*.rbs"
4
5
  end
@@ -1,4 +1,5 @@
1
1
  target :test do
2
+ typing_options :strict
2
3
  check "*.rb"
3
4
  signature "*.rbs"
4
5
  end
@@ -1,4 +1,5 @@
1
1
  target :test do
2
+ typing_options :strict
2
3
  check "*.rb"
3
4
  signature "*.rbs"
4
5
  end
@@ -1,4 +1,5 @@
1
1
  target :test do
2
+ typing_options :strict
2
3
  check "*.rb"
3
4
  signature "*.rbs"
4
5
  end
@@ -1,4 +1,5 @@
1
1
  target :test do
2
+ typing_options :strict
2
3
  check "*.rb"
3
4
  signature "*.rbs"
4
5
  end
@@ -1,4 +1,5 @@
1
1
  target :test do
2
+ typing_options :strict
2
3
  check "*.rb"
3
4
  signature "*.rbs"
4
5
  end
@@ -12,11 +12,11 @@
12
12
  match_ref_3.foo
13
13
 
14
14
  match_ref_4 = match[0, 1]
15
- # !expects NoMethodError: type=::Array[::String], method=foo
15
+ # !expects NoMethodError: type=::Array[(::String | nil)], method=foo
16
16
  match_ref_4.foo
17
17
 
18
18
  match_ref_5 = match[0..1]
19
- # !expects NoMethodError: type=::Array[::String], method=foo
19
+ # !expects NoMethodError: type=::Array[(::String | nil)], method=foo
20
20
  match_ref_5.foo
21
21
 
22
22
  begin_1 = match.begin(0)
@@ -32,7 +32,7 @@
32
32
  begin_3.foo
33
33
 
34
34
  captures_1 = match.captures
35
- # !expects NoMethodError: type=::Array[::String], method=foo
35
+ # !expects NoMethodError: type=::Array[(::String | nil)], method=foo
36
36
  captures_1.foo
37
37
 
38
38
  end_1 = match.end(0)
@@ -92,7 +92,7 @@
92
92
  string_1.foo
93
93
 
94
94
  to_a_1 = match.to_a
95
- # !expects NoMethodError: type=::Array[::String], method=foo
95
+ # !expects NoMethodError: type=::Array[(::String | nil)], method=foo
96
96
  to_a_1.foo
97
97
 
98
98
  values_at_1 = match.values_at
@@ -1,4 +1,5 @@
1
1
  target :test do
2
+ typing_options :strict
2
3
  check "*.rb"
3
4
  signature "*.rbs"
4
5
  library "set"
@@ -1,4 +1,5 @@
1
1
  target :test do
2
+ typing_options :strict
2
3
  check "*.rb"
3
4
  signature "*.rbs"
4
5
  end
@@ -34,7 +34,7 @@ d = begin
34
34
 
35
35
  # @type var e: Integer
36
36
 
37
- # !expects IncompatibleAssignment: lhs_type=::Integer, rhs_type=(::Array[::Integer] | ::Integer | ::String | ::Symbol)
37
+ # !expects IncompatibleAssignment: lhs_type=::Integer, rhs_type=(::Array[::Integer] | ::Integer | ::Symbol)
38
38
  e = begin
39
39
  'foo'
40
40
  rescue RuntimeError
@@ -1,4 +1,5 @@
1
1
  target :test do
2
+ typing_options :strict
2
3
  check "*.rb"
3
4
  signature "*.rbs"
4
5
  end
@@ -1,4 +1,5 @@
1
1
  target :test do
2
+ typing_options :strict
2
3
  check "*.rb"
3
4
  signature "*.rbs"
4
5
  end
@@ -1,4 +1,5 @@
1
1
  target :test do
2
+ typing_options :strict
2
3
  check "*.rb"
3
4
  signature "*.rbs"
4
5
  end
@@ -1,4 +1,5 @@
1
1
  target :test do
2
+ typing_options :strict
2
3
  check "*.rb"
3
4
  signature "*.rbs"
4
5
  end
@@ -1,4 +1,5 @@
1
1
  target :test do
2
+ typing_options :strict
2
3
  check "*.rb"
3
4
  signature "*.rbs"
4
5
  end
@@ -1,4 +1,5 @@
1
1
  target :test do
2
+ typing_options :strict
2
3
  check "*.rb"
3
4
  signature "*.rbs"
4
5
  end
@@ -14,14 +14,13 @@ Gem::Specification.new do |spec|
14
14
  spec.homepage = "https://github.com/soutaro/steep"
15
15
  spec.license = 'MIT'
16
16
 
17
+ spec.metadata["homepage_uri"] = spec.homepage
18
+ spec.metadata["source_code_uri"] = "https://github.com/soutaro/steep"
19
+ spec.metadata["changelog_uri"] = "https://github.com/soutaro/steep/blob/master/CHANGELOG.md"
20
+
17
21
  spec.files = `git ls-files -z`.split("\x0").reject {|f|
18
22
  f.match(%r{^(test|spec|features)/})
19
- } + Dir.chdir("vendor/ruby-signature") {
20
- `git ls-files -z`.split("\x0")
21
- .reject {|f| f.match(%r{^(test|spec|features)/}) }
22
- .map {|f| File.join("vendor/ruby-signature", f) }
23
23
  }
24
- spec.files << "vendor/ruby-signature/lib/ruby/signature/parser.rb"
25
24
 
26
25
  spec.bindir = "exe"
27
26
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
@@ -33,7 +32,7 @@ Gem::Specification.new do |spec|
33
32
  spec.add_development_dependency "rake", "~> 13.0"
34
33
  spec.add_development_dependency "minitest", "~> 5.0"
35
34
  spec.add_development_dependency "racc", "~> 1.4"
36
- spec.add_development_dependency "minitest-reporters", "~> 1.3.6"
35
+ spec.add_development_dependency "minitest-reporters", "~> 1.4.2"
37
36
  spec.add_development_dependency "minitest-hooks", "~> 1.5.0"
38
37
 
39
38
  spec.add_runtime_dependency "parser", "~> 2.7.0"
@@ -41,6 +40,7 @@ Gem::Specification.new do |spec|
41
40
  spec.add_runtime_dependency "activesupport", ">= 5.1"
42
41
  spec.add_runtime_dependency "rainbow", ">= 2.2.2", "< 4.0"
43
42
  spec.add_runtime_dependency "listen", "~> 3.1"
44
- spec.add_runtime_dependency "pry", "~> 0.12.2"
45
- spec.add_runtime_dependency "language_server-protocol", "~> 3.14.0.1"
43
+ spec.add_runtime_dependency "pry", ">= 0.12.2"
44
+ spec.add_runtime_dependency "language_server-protocol", "~> 3.14.0.2"
45
+ spec.add_runtime_dependency "rbs", "~> 0.3.1"
46
46
  end
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: 0.13.0
4
+ version: 0.16.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: 2020-02-16 00:00:00.000000000 Z
11
+ date: 2020-05-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -72,14 +72,14 @@ dependencies:
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: 1.3.6
75
+ version: 1.4.2
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: 1.3.6
82
+ version: 1.4.2
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: minitest-hooks
85
85
  requirement: !ruby/object:Gem::Requirement
@@ -174,14 +174,14 @@ dependencies:
174
174
  name: pry
175
175
  requirement: !ruby/object:Gem::Requirement
176
176
  requirements:
177
- - - "~>"
177
+ - - ">="
178
178
  - !ruby/object:Gem::Version
179
179
  version: 0.12.2
180
180
  type: :runtime
181
181
  prerelease: false
182
182
  version_requirements: !ruby/object:Gem::Requirement
183
183
  requirements:
184
- - - "~>"
184
+ - - ">="
185
185
  - !ruby/object:Gem::Version
186
186
  version: 0.12.2
187
187
  - !ruby/object:Gem::Dependency
@@ -190,20 +190,32 @@ dependencies:
190
190
  requirements:
191
191
  - - "~>"
192
192
  - !ruby/object:Gem::Version
193
- version: 3.14.0.1
193
+ version: 3.14.0.2
194
+ type: :runtime
195
+ prerelease: false
196
+ version_requirements: !ruby/object:Gem::Requirement
197
+ requirements:
198
+ - - "~>"
199
+ - !ruby/object:Gem::Version
200
+ version: 3.14.0.2
201
+ - !ruby/object:Gem::Dependency
202
+ name: rbs
203
+ requirement: !ruby/object:Gem::Requirement
204
+ requirements:
205
+ - - "~>"
206
+ - !ruby/object:Gem::Version
207
+ version: 0.3.1
194
208
  type: :runtime
195
209
  prerelease: false
196
210
  version_requirements: !ruby/object:Gem::Requirement
197
211
  requirements:
198
212
  - - "~>"
199
213
  - !ruby/object:Gem::Version
200
- version: 3.14.0.1
214
+ version: 0.3.1
201
215
  description: Gradual Typing for Ruby
202
216
  email:
203
217
  - matsumoto@soutaro.com
204
218
  executables:
205
- - rbs
206
- - ruby-signature
207
219
  - steep
208
220
  extensions: []
209
221
  extra_rdoc_files: []
@@ -220,8 +232,6 @@ files:
220
232
  - bin/console
221
233
  - bin/setup
222
234
  - bin/smoke_runner.rb
223
- - exe/rbs
224
- - exe/ruby-signature
225
235
  - exe/steep
226
236
  - lib/steep.rb
227
237
  - lib/steep/annotation_parser.rb
@@ -265,6 +275,7 @@ files:
265
275
  - lib/steep/drivers/validate.rb
266
276
  - lib/steep/drivers/vendor.rb
267
277
  - lib/steep/drivers/watch.rb
278
+ - lib/steep/drivers/worker.rb
268
279
  - lib/steep/errors.rb
269
280
  - lib/steep/interface/interface.rb
270
281
  - lib/steep/interface/method.rb
@@ -272,12 +283,20 @@ files:
272
283
  - lib/steep/interface/substitution.rb
273
284
  - lib/steep/names.rb
274
285
  - lib/steep/project.rb
286
+ - lib/steep/project/completion_provider.rb
275
287
  - lib/steep/project/dsl.rb
276
288
  - lib/steep/project/file.rb
277
289
  - lib/steep/project/file_loader.rb
278
290
  - lib/steep/project/hover_content.rb
279
291
  - lib/steep/project/options.rb
280
292
  - lib/steep/project/target.rb
293
+ - lib/steep/server/base_worker.rb
294
+ - lib/steep/server/code_worker.rb
295
+ - lib/steep/server/interaction_worker.rb
296
+ - lib/steep/server/master.rb
297
+ - lib/steep/server/signature_worker.rb
298
+ - lib/steep/server/utils.rb
299
+ - lib/steep/server/worker_process.rb
281
300
  - lib/steep/signature/errors.rb
282
301
  - lib/steep/signature/validator.rb
283
302
  - lib/steep/source.rb
@@ -293,6 +312,9 @@ files:
293
312
  - lib/steep/type_inference/block_params.rb
294
313
  - lib/steep/type_inference/constant_env.rb
295
314
  - lib/steep/type_inference/context.rb
315
+ - lib/steep/type_inference/context_array.rb
316
+ - lib/steep/type_inference/local_variable_type_env.rb
317
+ - lib/steep/type_inference/logic.rb
296
318
  - lib/steep/type_inference/send_args.rb
297
319
  - lib/steep/type_inference/type_env.rb
298
320
  - lib/steep/typing.rb
@@ -427,135 +449,13 @@ files:
427
449
  - smoke/yield/Steepfile
428
450
  - smoke/yield/a.rb
429
451
  - steep.gemspec
430
- - vendor/ruby-signature/.github/workflows/ruby.yml
431
- - vendor/ruby-signature/.gitignore
432
- - vendor/ruby-signature/.rubocop.yml
433
- - vendor/ruby-signature/BSDL
434
- - vendor/ruby-signature/COPYING
435
- - vendor/ruby-signature/Gemfile
436
- - vendor/ruby-signature/README.md
437
- - vendor/ruby-signature/Rakefile
438
- - vendor/ruby-signature/bin/annotate-with-rdoc
439
- - vendor/ruby-signature/bin/console
440
- - vendor/ruby-signature/bin/query-rdoc
441
- - vendor/ruby-signature/bin/setup
442
- - vendor/ruby-signature/bin/sort
443
- - vendor/ruby-signature/bin/test_runner.rb
444
- - vendor/ruby-signature/docs/CONTRIBUTING.md
445
- - vendor/ruby-signature/docs/sigs.md
446
- - vendor/ruby-signature/docs/stdlib.md
447
- - vendor/ruby-signature/docs/syntax.md
448
- - vendor/ruby-signature/exe/rbs
449
- - vendor/ruby-signature/exe/ruby-signature
450
- - vendor/ruby-signature/lib/ruby/signature.rb
451
- - vendor/ruby-signature/lib/ruby/signature/ast/annotation.rb
452
- - vendor/ruby-signature/lib/ruby/signature/ast/comment.rb
453
- - vendor/ruby-signature/lib/ruby/signature/ast/declarations.rb
454
- - vendor/ruby-signature/lib/ruby/signature/ast/members.rb
455
- - vendor/ruby-signature/lib/ruby/signature/buffer.rb
456
- - vendor/ruby-signature/lib/ruby/signature/builtin_names.rb
457
- - vendor/ruby-signature/lib/ruby/signature/cli.rb
458
- - vendor/ruby-signature/lib/ruby/signature/constant.rb
459
- - vendor/ruby-signature/lib/ruby/signature/constant_table.rb
460
- - vendor/ruby-signature/lib/ruby/signature/definition.rb
461
- - vendor/ruby-signature/lib/ruby/signature/definition_builder.rb
462
- - vendor/ruby-signature/lib/ruby/signature/environment.rb
463
- - vendor/ruby-signature/lib/ruby/signature/environment_loader.rb
464
- - vendor/ruby-signature/lib/ruby/signature/environment_walker.rb
465
- - vendor/ruby-signature/lib/ruby/signature/errors.rb
466
- - vendor/ruby-signature/lib/ruby/signature/location.rb
467
- - vendor/ruby-signature/lib/ruby/signature/method_type.rb
468
- - vendor/ruby-signature/lib/ruby/signature/namespace.rb
469
- - vendor/ruby-signature/lib/ruby/signature/parser.rb
470
- - vendor/ruby-signature/lib/ruby/signature/parser.y
471
- - vendor/ruby-signature/lib/ruby/signature/prototype/rb.rb
472
- - vendor/ruby-signature/lib/ruby/signature/prototype/rbi.rb
473
- - vendor/ruby-signature/lib/ruby/signature/prototype/runtime.rb
474
- - vendor/ruby-signature/lib/ruby/signature/substitution.rb
475
- - vendor/ruby-signature/lib/ruby/signature/test.rb
476
- - vendor/ruby-signature/lib/ruby/signature/test/errors.rb
477
- - vendor/ruby-signature/lib/ruby/signature/test/hook.rb
478
- - vendor/ruby-signature/lib/ruby/signature/test/setup.rb
479
- - vendor/ruby-signature/lib/ruby/signature/test/spy.rb
480
- - vendor/ruby-signature/lib/ruby/signature/test/test_helper.rb
481
- - vendor/ruby-signature/lib/ruby/signature/test/type_check.rb
482
- - vendor/ruby-signature/lib/ruby/signature/type_name.rb
483
- - vendor/ruby-signature/lib/ruby/signature/types.rb
484
- - vendor/ruby-signature/lib/ruby/signature/variance_calculator.rb
485
- - vendor/ruby-signature/lib/ruby/signature/vendorer.rb
486
- - vendor/ruby-signature/lib/ruby/signature/version.rb
487
- - vendor/ruby-signature/lib/ruby/signature/writer.rb
488
- - vendor/ruby-signature/ruby-signature.gemspec
489
- - vendor/ruby-signature/stdlib/abbrev/abbrev.rbs
490
- - vendor/ruby-signature/stdlib/base64/base64.rbs
491
- - vendor/ruby-signature/stdlib/builtin/array.rbs
492
- - vendor/ruby-signature/stdlib/builtin/basic_object.rbs
493
- - vendor/ruby-signature/stdlib/builtin/binding.rbs
494
- - vendor/ruby-signature/stdlib/builtin/builtin.rbs
495
- - vendor/ruby-signature/stdlib/builtin/class.rbs
496
- - vendor/ruby-signature/stdlib/builtin/comparable.rbs
497
- - vendor/ruby-signature/stdlib/builtin/complex.rbs
498
- - vendor/ruby-signature/stdlib/builtin/constants.rbs
499
- - vendor/ruby-signature/stdlib/builtin/data.rbs
500
- - vendor/ruby-signature/stdlib/builtin/deprecated.rbs
501
- - vendor/ruby-signature/stdlib/builtin/dir.rbs
502
- - vendor/ruby-signature/stdlib/builtin/encoding.rbs
503
- - vendor/ruby-signature/stdlib/builtin/enumerable.rbs
504
- - vendor/ruby-signature/stdlib/builtin/enumerator.rbs
505
- - vendor/ruby-signature/stdlib/builtin/errno.rbs
506
- - vendor/ruby-signature/stdlib/builtin/errors.rbs
507
- - vendor/ruby-signature/stdlib/builtin/exception.rbs
508
- - vendor/ruby-signature/stdlib/builtin/false_class.rbs
509
- - vendor/ruby-signature/stdlib/builtin/fiber.rbs
510
- - vendor/ruby-signature/stdlib/builtin/fiber_error.rbs
511
- - vendor/ruby-signature/stdlib/builtin/file.rbs
512
- - vendor/ruby-signature/stdlib/builtin/file_test.rbs
513
- - vendor/ruby-signature/stdlib/builtin/float.rbs
514
- - vendor/ruby-signature/stdlib/builtin/gc.rbs
515
- - vendor/ruby-signature/stdlib/builtin/hash.rbs
516
- - vendor/ruby-signature/stdlib/builtin/integer.rbs
517
- - vendor/ruby-signature/stdlib/builtin/io.rbs
518
- - vendor/ruby-signature/stdlib/builtin/kernel.rbs
519
- - vendor/ruby-signature/stdlib/builtin/marshal.rbs
520
- - vendor/ruby-signature/stdlib/builtin/match_data.rbs
521
- - vendor/ruby-signature/stdlib/builtin/math.rbs
522
- - vendor/ruby-signature/stdlib/builtin/method.rbs
523
- - vendor/ruby-signature/stdlib/builtin/module.rbs
524
- - vendor/ruby-signature/stdlib/builtin/nil_class.rbs
525
- - vendor/ruby-signature/stdlib/builtin/numeric.rbs
526
- - vendor/ruby-signature/stdlib/builtin/object.rbs
527
- - vendor/ruby-signature/stdlib/builtin/proc.rbs
528
- - vendor/ruby-signature/stdlib/builtin/process.rbs
529
- - vendor/ruby-signature/stdlib/builtin/random.rbs
530
- - vendor/ruby-signature/stdlib/builtin/range.rbs
531
- - vendor/ruby-signature/stdlib/builtin/rational.rbs
532
- - vendor/ruby-signature/stdlib/builtin/rb_config.rbs
533
- - vendor/ruby-signature/stdlib/builtin/regexp.rbs
534
- - vendor/ruby-signature/stdlib/builtin/ruby_vm.rbs
535
- - vendor/ruby-signature/stdlib/builtin/signal.rbs
536
- - vendor/ruby-signature/stdlib/builtin/string.rbs
537
- - vendor/ruby-signature/stdlib/builtin/string_io.rbs
538
- - vendor/ruby-signature/stdlib/builtin/struct.rbs
539
- - vendor/ruby-signature/stdlib/builtin/symbol.rbs
540
- - vendor/ruby-signature/stdlib/builtin/thread.rbs
541
- - vendor/ruby-signature/stdlib/builtin/thread_group.rbs
542
- - vendor/ruby-signature/stdlib/builtin/time.rbs
543
- - vendor/ruby-signature/stdlib/builtin/trace_point.rbs
544
- - vendor/ruby-signature/stdlib/builtin/true_class.rbs
545
- - vendor/ruby-signature/stdlib/builtin/unbound_method.rbs
546
- - vendor/ruby-signature/stdlib/builtin/warning.rbs
547
- - vendor/ruby-signature/stdlib/erb/erb.rbs
548
- - vendor/ruby-signature/stdlib/find/find.rbs
549
- - vendor/ruby-signature/stdlib/pathname/pathname.rbs
550
- - vendor/ruby-signature/stdlib/prime/integer-extension.rbs
551
- - vendor/ruby-signature/stdlib/prime/prime.rbs
552
- - vendor/ruby-signature/stdlib/securerandom/securerandom.rbs
553
- - vendor/ruby-signature/stdlib/set/set.rbs
554
- - vendor/ruby-signature/stdlib/tmpdir/tmpdir.rbs
555
452
  homepage: https://github.com/soutaro/steep
556
453
  licenses:
557
454
  - MIT
558
- metadata: {}
455
+ metadata:
456
+ homepage_uri: https://github.com/soutaro/steep
457
+ source_code_uri: https://github.com/soutaro/steep
458
+ changelog_uri: https://github.com/soutaro/steep/blob/master/CHANGELOG.md
559
459
  post_install_message:
560
460
  rdoc_options: []
561
461
  require_paths: