steep 0.37.0 → 0.42.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (221) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ruby.yml +1 -1
  3. data/CHANGELOG.md +34 -0
  4. data/Rakefile +5 -2
  5. data/bin/output_rebaseline.rb +34 -0
  6. data/bin/output_test.rb +53 -0
  7. data/lib/steep.rb +95 -14
  8. data/lib/steep/ast/types/bot.rb +1 -1
  9. data/lib/steep/ast/types/class.rb +4 -0
  10. data/lib/steep/ast/types/factory.rb +10 -0
  11. data/lib/steep/ast/types/logic.rb +16 -3
  12. data/lib/steep/ast/types/top.rb +1 -1
  13. data/lib/steep/cli.rb +31 -7
  14. data/lib/steep/diagnostic/helper.rb +17 -0
  15. data/lib/steep/diagnostic/lsp_formatter.rb +16 -0
  16. data/lib/steep/diagnostic/ruby.rb +619 -0
  17. data/lib/steep/diagnostic/signature.rb +357 -0
  18. data/lib/steep/drivers/annotations.rb +19 -28
  19. data/lib/steep/drivers/check.rb +182 -60
  20. data/lib/steep/drivers/diagnostic_printer.rb +99 -0
  21. data/lib/steep/drivers/langserver.rb +3 -8
  22. data/lib/steep/drivers/print_project.rb +10 -9
  23. data/lib/steep/drivers/stats.rb +124 -32
  24. data/lib/steep/drivers/trace_printer.rb +5 -1
  25. data/lib/steep/drivers/utils/jobs_count.rb +9 -0
  26. data/lib/steep/drivers/validate.rb +31 -13
  27. data/lib/steep/drivers/watch.rb +69 -48
  28. data/lib/steep/drivers/worker.rb +16 -8
  29. data/lib/steep/expectations.rb +159 -0
  30. data/lib/steep/index/rbs_index.rb +334 -0
  31. data/lib/steep/index/signature_symbol_provider.rb +162 -0
  32. data/lib/steep/index/source_index.rb +100 -0
  33. data/lib/steep/project.rb +0 -30
  34. data/lib/steep/project/dsl.rb +5 -3
  35. data/lib/steep/project/options.rb +4 -4
  36. data/lib/steep/project/pattern.rb +56 -0
  37. data/lib/steep/project/target.rb +9 -214
  38. data/lib/steep/range_extension.rb +29 -0
  39. data/lib/steep/server/base_worker.rb +43 -7
  40. data/lib/steep/server/change_buffer.rb +63 -0
  41. data/lib/steep/server/interaction_worker.rb +73 -56
  42. data/lib/steep/server/master.rb +245 -109
  43. data/lib/steep/server/type_check_worker.rb +122 -0
  44. data/lib/steep/server/worker_process.rb +17 -15
  45. data/lib/steep/{project → services}/completion_provider.rb +3 -3
  46. data/lib/steep/services/content_change.rb +61 -0
  47. data/lib/steep/services/file_loader.rb +48 -0
  48. data/lib/steep/{project → services}/hover_content.rb +14 -16
  49. data/lib/steep/services/path_assignment.rb +29 -0
  50. data/lib/steep/services/signature_service.rb +369 -0
  51. data/lib/steep/services/stats_calculator.rb +69 -0
  52. data/lib/steep/services/type_check_service.rb +342 -0
  53. data/lib/steep/signature/validator.rb +174 -32
  54. data/lib/steep/subtyping/check.rb +248 -47
  55. data/lib/steep/subtyping/constraints.rb +2 -2
  56. data/lib/steep/type_construction.rb +565 -295
  57. data/lib/steep/type_inference/constant_env.rb +5 -1
  58. data/lib/steep/type_inference/local_variable_type_env.rb +26 -12
  59. data/lib/steep/type_inference/logic_type_interpreter.rb +99 -26
  60. data/lib/steep/type_inference/type_env.rb +43 -17
  61. data/lib/steep/typing.rb +8 -2
  62. data/lib/steep/version.rb +1 -1
  63. data/smoke/alias/a.rb +0 -3
  64. data/smoke/alias/b.rb +0 -1
  65. data/smoke/alias/c.rb +0 -2
  66. data/smoke/alias/test_expectations.yml +96 -0
  67. data/smoke/and/a.rb +0 -3
  68. data/smoke/and/test_expectations.yml +31 -0
  69. data/smoke/array/a.rb +0 -3
  70. data/smoke/array/b.rb +0 -2
  71. data/smoke/array/c.rb +0 -1
  72. data/smoke/array/test_expectations.yml +103 -0
  73. data/smoke/block/a.rb +0 -2
  74. data/smoke/block/b.rb +0 -2
  75. data/smoke/block/d.rb +0 -4
  76. data/smoke/block/test_expectations.yml +125 -0
  77. data/smoke/case/a.rb +0 -3
  78. data/smoke/case/test_expectations.yml +47 -0
  79. data/smoke/class/a.rb +0 -3
  80. data/smoke/class/c.rb +0 -1
  81. data/smoke/class/f.rb +0 -1
  82. data/smoke/class/g.rb +0 -2
  83. data/smoke/class/i.rb +0 -2
  84. data/smoke/class/test_expectations.yml +120 -0
  85. data/smoke/const/a.rb +0 -3
  86. data/smoke/const/b.rb +7 -0
  87. data/smoke/const/b.rbs +5 -0
  88. data/smoke/const/test_expectations.yml +139 -0
  89. data/smoke/diagnostics-rbs-duplicated/Steepfile +5 -0
  90. data/smoke/diagnostics-rbs-duplicated/a.rbs +5 -0
  91. data/smoke/diagnostics-rbs-duplicated/test_expectations.yml +13 -0
  92. data/smoke/diagnostics-rbs/Steepfile +8 -0
  93. data/smoke/diagnostics-rbs/duplicated-method-definition.rbs +20 -0
  94. data/smoke/diagnostics-rbs/generic-parameter-mismatch.rbs +7 -0
  95. data/smoke/diagnostics-rbs/invalid-method-overload.rbs +3 -0
  96. data/smoke/diagnostics-rbs/invalid-type-application.rbs +7 -0
  97. data/smoke/diagnostics-rbs/invalid_variance_annotation.rbs +3 -0
  98. data/smoke/diagnostics-rbs/recursive-alias.rbs +5 -0
  99. data/smoke/diagnostics-rbs/recursive-class.rbs +8 -0
  100. data/smoke/diagnostics-rbs/superclass-mismatch.rbs +7 -0
  101. data/smoke/diagnostics-rbs/test_expectations.yml +231 -0
  102. data/smoke/diagnostics-rbs/unknown-method-alias.rbs +3 -0
  103. data/smoke/diagnostics-rbs/unknown-type-name-2.rbs +5 -0
  104. data/smoke/diagnostics-rbs/unknown-type-name.rbs +13 -0
  105. data/smoke/diagnostics/Steepfile +5 -0
  106. data/smoke/diagnostics/a.rbs +26 -0
  107. data/smoke/diagnostics/argument_type_mismatch.rb +1 -0
  108. data/smoke/diagnostics/block_body_type_mismatch.rb +1 -0
  109. data/smoke/diagnostics/block_type_mismatch.rb +3 -0
  110. data/smoke/diagnostics/break_type_mismatch.rb +1 -0
  111. data/smoke/diagnostics/else_on_exhaustive_case.rb +12 -0
  112. data/smoke/diagnostics/incompatible_annotation.rb +6 -0
  113. data/smoke/diagnostics/incompatible_argument.rb +1 -0
  114. data/smoke/diagnostics/incompatible_assignment.rb +8 -0
  115. data/smoke/diagnostics/method_arity_mismatch.rb +11 -0
  116. data/smoke/diagnostics/method_body_type_mismatch.rb +6 -0
  117. data/smoke/diagnostics/method_definition_missing.rb +2 -0
  118. data/smoke/diagnostics/method_return_type_annotation_mismatch.rb +7 -0
  119. data/smoke/diagnostics/missing_keyword.rb +1 -0
  120. data/smoke/diagnostics/no_method.rb +1 -0
  121. data/smoke/diagnostics/required_block_missing.rb +1 -0
  122. data/smoke/diagnostics/return_type_mismatch.rb +6 -0
  123. data/smoke/diagnostics/test_expectations.yml +477 -0
  124. data/smoke/diagnostics/unexpected_block_given.rb +1 -0
  125. data/smoke/diagnostics/unexpected_dynamic_method.rb +3 -0
  126. data/smoke/diagnostics/unexpected_jump.rb +4 -0
  127. data/smoke/diagnostics/unexpected_jump_value.rb +3 -0
  128. data/smoke/diagnostics/unexpected_keyword.rb +1 -0
  129. data/smoke/diagnostics/unexpected_splat.rb +1 -0
  130. data/smoke/diagnostics/unexpected_yield.rb +6 -0
  131. data/smoke/diagnostics/unknown_constant_assigned.rb +7 -0
  132. data/smoke/diagnostics/unresolved_overloading.rb +1 -0
  133. data/smoke/diagnostics/unsatisfiable_constraint.rb +7 -0
  134. data/smoke/diagnostics/unsupported_syntax.rb +2 -0
  135. data/smoke/dstr/a.rb +0 -1
  136. data/smoke/dstr/test_expectations.yml +13 -0
  137. data/smoke/ensure/a.rb +0 -4
  138. data/smoke/ensure/test_expectations.yml +62 -0
  139. data/smoke/enumerator/a.rb +0 -6
  140. data/smoke/enumerator/b.rb +0 -3
  141. data/smoke/enumerator/test_expectations.yml +135 -0
  142. data/smoke/extension/a.rb +0 -1
  143. data/smoke/extension/b.rb +0 -2
  144. data/smoke/extension/c.rb +0 -1
  145. data/smoke/extension/f.rb +2 -0
  146. data/smoke/extension/f.rbs +3 -0
  147. data/smoke/extension/test_expectations.yml +73 -0
  148. data/smoke/hash/b.rb +0 -1
  149. data/smoke/hash/c.rb +0 -3
  150. data/smoke/hash/d.rb +0 -1
  151. data/smoke/hash/e.rb +0 -1
  152. data/smoke/hash/test_expectations.yml +81 -0
  153. data/smoke/hello/hello.rb +0 -2
  154. data/smoke/hello/test_expectations.yml +25 -0
  155. data/smoke/if/a.rb +0 -2
  156. data/smoke/if/test_expectations.yml +34 -0
  157. data/smoke/implements/a.rb +0 -2
  158. data/smoke/implements/test_expectations.yml +23 -0
  159. data/smoke/initialize/test_expectations.yml +1 -0
  160. data/smoke/integer/a.rb +0 -7
  161. data/smoke/integer/test_expectations.yml +101 -0
  162. data/smoke/interface/a.rb +0 -2
  163. data/smoke/interface/test_expectations.yml +23 -0
  164. data/smoke/kwbegin/a.rb +0 -1
  165. data/smoke/kwbegin/test_expectations.yml +17 -0
  166. data/smoke/lambda/a.rb +1 -4
  167. data/smoke/lambda/test_expectations.yml +39 -0
  168. data/smoke/literal/a.rb +0 -5
  169. data/smoke/literal/b.rb +0 -2
  170. data/smoke/literal/test_expectations.yml +106 -0
  171. data/smoke/map/test_expectations.yml +1 -0
  172. data/smoke/method/a.rb +0 -5
  173. data/smoke/method/b.rb +0 -1
  174. data/smoke/method/test_expectations.yml +90 -0
  175. data/smoke/module/a.rb +0 -2
  176. data/smoke/module/b.rb +0 -2
  177. data/smoke/module/c.rb +0 -1
  178. data/smoke/module/d.rb +0 -1
  179. data/smoke/module/f.rb +0 -2
  180. data/smoke/module/test_expectations.yml +75 -0
  181. data/smoke/regexp/a.rb +0 -38
  182. data/smoke/regexp/b.rb +0 -26
  183. data/smoke/regexp/test_expectations.yml +615 -0
  184. data/smoke/regression/set_divide.rb +0 -4
  185. data/smoke/regression/test_expectations.yml +43 -0
  186. data/smoke/rescue/a.rb +0 -5
  187. data/smoke/rescue/test_expectations.yml +79 -0
  188. data/smoke/self/a.rb +0 -2
  189. data/smoke/self/test_expectations.yml +23 -0
  190. data/smoke/skip/skip.rb +0 -2
  191. data/smoke/skip/test_expectations.yml +23 -0
  192. data/smoke/stdout/test_expectations.yml +1 -0
  193. data/smoke/super/a.rb +0 -4
  194. data/smoke/super/test_expectations.yml +79 -0
  195. data/smoke/toplevel/a.rb +0 -1
  196. data/smoke/toplevel/test_expectations.yml +15 -0
  197. data/smoke/tsort/Steepfile +2 -0
  198. data/smoke/tsort/a.rb +0 -3
  199. data/smoke/tsort/test_expectations.yml +63 -0
  200. data/smoke/type_case/a.rb +0 -4
  201. data/smoke/type_case/test_expectations.yml +48 -0
  202. data/smoke/unexpected/Steepfile +5 -0
  203. data/smoke/unexpected/test_expectations.yml +25 -0
  204. data/smoke/unexpected/unexpected.rb +1 -0
  205. data/smoke/unexpected/unexpected.rbs +3 -0
  206. data/smoke/yield/a.rb +0 -3
  207. data/smoke/yield/b.rb +6 -0
  208. data/smoke/yield/test_expectations.yml +68 -0
  209. data/steep.gemspec +4 -3
  210. metadata +144 -29
  211. data/bin/smoke_runner.rb +0 -139
  212. data/lib/steep/drivers/signature_error_printer.rb +0 -25
  213. data/lib/steep/errors.rb +0 -565
  214. data/lib/steep/project/file_loader.rb +0 -68
  215. data/lib/steep/project/signature_file.rb +0 -33
  216. data/lib/steep/project/source_file.rb +0 -129
  217. data/lib/steep/server/code_worker.rb +0 -137
  218. data/lib/steep/server/signature_worker.rb +0 -152
  219. data/lib/steep/server/utils.rb +0 -69
  220. data/lib/steep/signature/errors.rb +0 -82
  221. data/lib/steep/type_assignability.rb +0 -367
data/smoke/type_case/a.rb CHANGED
@@ -4,25 +4,21 @@ x = (_ = nil)
4
4
 
5
5
  case x
6
6
  when Integer, String
7
- # !expects NoMethodError: type=(::Integer | ::String), method=foobar
8
7
  x.foobar()
9
8
  end
10
9
 
11
10
  case x == (_ = 1)
12
11
  when Integer
13
- # !expects NoMethodError: type=(::Integer | ::String | ::Symbol), method=foobar
14
12
  x.foobar
15
13
  end
16
14
 
17
15
  case x
18
16
  when 1
19
- # !expects NoMethodError: type=(::Integer | ::String | ::Symbol), method=foobar
20
17
  x.foobar
21
18
  end
22
19
 
23
20
  case x
24
21
  when String
25
- # !expects@+2 IncompatibleAnnotation: var_name=x, ::Integer <: ::String
26
22
  # @type var x: Integer
27
23
  x + 1
28
24
  end
@@ -0,0 +1,48 @@
1
+ ---
2
+ - file: a.rb
3
+ diagnostics:
4
+ - range:
5
+ start:
6
+ line: 7
7
+ character: 4
8
+ end:
9
+ line: 7
10
+ character: 10
11
+ severity: ERROR
12
+ message: Type `(::Integer | ::String)` does not have method `foobar`
13
+ code: Ruby::NoMethod
14
+ - range:
15
+ start:
16
+ line: 12
17
+ character: 4
18
+ end:
19
+ line: 12
20
+ character: 10
21
+ severity: ERROR
22
+ message: Type `(::Integer | ::String | ::Symbol)` does not have method `foobar`
23
+ code: Ruby::NoMethod
24
+ - range:
25
+ start:
26
+ line: 17
27
+ character: 4
28
+ end:
29
+ line: 17
30
+ character: 10
31
+ severity: ERROR
32
+ message: Type `1` does not have method `foobar`
33
+ code: Ruby::NoMethod
34
+ - range:
35
+ start:
36
+ line: 23
37
+ character: 2
38
+ end:
39
+ line: 23
40
+ character: 7
41
+ severity: ERROR
42
+ message: |-
43
+ Type annotation about `x` is incompatible since ::Integer <: ::String doesn't hold
44
+ ::Integer <: ::String
45
+ ::Numeric <: ::String
46
+ ::Object <: ::String
47
+ ::BasicObject <: ::String
48
+ code: Ruby::IncompatibleAnnotation
@@ -0,0 +1,5 @@
1
+ target :test do
2
+ typing_options :strict
3
+ check "*.rb"
4
+ signature "*.rbs"
5
+ end
@@ -0,0 +1,25 @@
1
+ ---
2
+ - file: unexpected.rb
3
+ diagnostics:
4
+ - range:
5
+ start:
6
+ line: 1
7
+ character: 0
8
+ end:
9
+ line: 1
10
+ character: 14
11
+ severity: ERROR
12
+ message: 'UnexpectedError: unexpected.rbs:2:17...2:24: Could not find String1'
13
+ code: Ruby::UnexpectedError
14
+ - file: unexpected.rbs
15
+ diagnostics:
16
+ - range:
17
+ start:
18
+ line: 2
19
+ character: 17
20
+ end:
21
+ line: 2
22
+ character: 24
23
+ severity: ERROR
24
+ message: Cannot find type `String1`
25
+ code: RBS::UnknownTypeName
@@ -0,0 +1 @@
1
+ Unexpected.new.foo().bar
@@ -0,0 +1,3 @@
1
+ class Unexpected
2
+ def foo: () -> String1
3
+ end
data/smoke/yield/a.rb CHANGED
@@ -3,16 +3,13 @@ class A
3
3
  def foo()
4
4
  # @type var x: String
5
5
 
6
- # !expects IncompatibleAssignment: lhs_type=::String, rhs_type=::Integer
7
6
  x = yield(3)
8
7
 
9
- # !expects IncompatibleAssignment: lhs_type=::Integer, rhs_type=::String
10
8
  yield(x)
11
9
  end
12
10
 
13
11
  # @type method bar: () -> untyped
14
12
  def bar()
15
- # !expects UnexpectedYield
16
13
  yield 4
17
14
  end
18
15
  end
data/smoke/yield/b.rb ADDED
@@ -0,0 +1,6 @@
1
+ class Foo
2
+ # @type method bar: () ?{ (Integer) -> void } -> void
3
+ def bar
4
+ yield ""
5
+ end
6
+ end
@@ -0,0 +1,68 @@
1
+ ---
2
+ - file: a.rb
3
+ diagnostics:
4
+ - range:
5
+ start:
6
+ line: 6
7
+ character: 4
8
+ end:
9
+ line: 6
10
+ character: 16
11
+ severity: ERROR
12
+ message: |-
13
+ Cannot assign a value of type `::Integer` to a variable of type `::String`
14
+ ::Integer <: ::String
15
+ ::Numeric <: ::String
16
+ ::Object <: ::String
17
+ ::BasicObject <: ::String
18
+ code: Ruby::IncompatibleAssignment
19
+ - range:
20
+ start:
21
+ line: 8
22
+ character: 10
23
+ end:
24
+ line: 8
25
+ character: 11
26
+ severity: ERROR
27
+ message: |-
28
+ Cannot assign a value of type `::String` to an expression of type `::Integer`
29
+ ::String <: ::Integer
30
+ ::Object <: ::Integer
31
+ ::BasicObject <: ::Integer
32
+ code: Ruby::IncompatibleAssignment
33
+ - range:
34
+ start:
35
+ line: 13
36
+ character: 4
37
+ end:
38
+ line: 13
39
+ character: 11
40
+ severity: ERROR
41
+ message: Cannot detect the type of the expression
42
+ code: Ruby::FallbackAny
43
+ - range:
44
+ start:
45
+ line: 13
46
+ character: 4
47
+ end:
48
+ line: 13
49
+ character: 11
50
+ severity: ERROR
51
+ message: No block given for `yield`
52
+ code: Ruby::UnexpectedYield
53
+ - file: b.rb
54
+ diagnostics:
55
+ - range:
56
+ start:
57
+ line: 4
58
+ character: 10
59
+ end:
60
+ line: 4
61
+ character: 12
62
+ severity: ERROR
63
+ message: |-
64
+ Cannot assign a value of type `::String` to an expression of type `::Integer`
65
+ ::String <: ::Integer
66
+ ::Object <: ::Integer
67
+ ::BasicObject <: ::Integer
68
+ code: Ruby::IncompatibleAssignment
data/steep.gemspec CHANGED
@@ -28,11 +28,12 @@ Gem::Specification.new do |spec|
28
28
 
29
29
  spec.required_ruby_version = '>= 2.6.0'
30
30
 
31
- spec.add_runtime_dependency "parser", "~> 2.7.0"
32
- spec.add_runtime_dependency "ast_utils", "~> 0.3.0"
31
+ spec.add_runtime_dependency "parser", ">= 2.7"
32
+ spec.add_runtime_dependency "ast_utils", ">= 0.4.0"
33
33
  spec.add_runtime_dependency "activesupport", ">= 5.1"
34
34
  spec.add_runtime_dependency "rainbow", ">= 2.2.2", "< 4.0"
35
35
  spec.add_runtime_dependency "listen", "~> 3.0"
36
36
  spec.add_runtime_dependency "language_server-protocol", "~> 3.15.0.1"
37
- spec.add_runtime_dependency "rbs", ">= 0.20.0"
37
+ spec.add_runtime_dependency "rbs", "~> 1.1.0"
38
+ spec.add_runtime_dependency "parallel", ">= 1.0.0"
38
39
  end
metadata CHANGED
@@ -1,43 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: steep
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.37.0
4
+ version: 0.42.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Soutaro Matsumoto
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-12-06 00:00:00.000000000 Z
11
+ date: 2021-03-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: parser
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 2.7.0
19
+ version: '2.7'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: 2.7.0
26
+ version: '2.7'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: ast_utils
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: 0.3.0
33
+ version: 0.4.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: 0.3.0
40
+ version: 0.4.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: activesupport
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -102,18 +102,32 @@ dependencies:
102
102
  version: 3.15.0.1
103
103
  - !ruby/object:Gem::Dependency
104
104
  name: rbs
105
+ requirement: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: 1.1.0
110
+ type: :runtime
111
+ prerelease: false
112
+ version_requirements: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - "~>"
115
+ - !ruby/object:Gem::Version
116
+ version: 1.1.0
117
+ - !ruby/object:Gem::Dependency
118
+ name: parallel
105
119
  requirement: !ruby/object:Gem::Requirement
106
120
  requirements:
107
121
  - - ">="
108
122
  - !ruby/object:Gem::Version
109
- version: 0.20.0
123
+ version: 1.0.0
110
124
  type: :runtime
111
125
  prerelease: false
112
126
  version_requirements: !ruby/object:Gem::Requirement
113
127
  requirements:
114
128
  - - ">="
115
129
  - !ruby/object:Gem::Version
116
- version: 0.20.0
130
+ version: 1.0.0
117
131
  description: Gradual Typing for Ruby
118
132
  email:
119
133
  - matsumoto@soutaro.com
@@ -132,8 +146,9 @@ files:
132
146
  - Rakefile
133
147
  - Steepfile
134
148
  - bin/console
149
+ - bin/output_rebaseline.rb
150
+ - bin/output_test.rb
135
151
  - bin/setup
136
- - bin/smoke_runner.rb
137
152
  - bin/steep-prof
138
153
  - exe/steep
139
154
  - lib/steep.rb
@@ -164,20 +179,28 @@ files:
164
179
  - lib/steep/ast/types/var.rb
165
180
  - lib/steep/ast/types/void.rb
166
181
  - lib/steep/cli.rb
182
+ - lib/steep/diagnostic/helper.rb
183
+ - lib/steep/diagnostic/lsp_formatter.rb
184
+ - lib/steep/diagnostic/ruby.rb
185
+ - lib/steep/diagnostic/signature.rb
167
186
  - lib/steep/drivers/annotations.rb
168
187
  - lib/steep/drivers/check.rb
188
+ - lib/steep/drivers/diagnostic_printer.rb
169
189
  - lib/steep/drivers/init.rb
170
190
  - lib/steep/drivers/langserver.rb
171
191
  - lib/steep/drivers/print_project.rb
172
- - lib/steep/drivers/signature_error_printer.rb
173
192
  - lib/steep/drivers/stats.rb
174
193
  - lib/steep/drivers/trace_printer.rb
175
194
  - lib/steep/drivers/utils/driver_helper.rb
195
+ - lib/steep/drivers/utils/jobs_count.rb
176
196
  - lib/steep/drivers/validate.rb
177
197
  - lib/steep/drivers/vendor.rb
178
198
  - lib/steep/drivers/watch.rb
179
199
  - lib/steep/drivers/worker.rb
180
- - lib/steep/errors.rb
200
+ - lib/steep/expectations.rb
201
+ - lib/steep/index/rbs_index.rb
202
+ - lib/steep/index/signature_symbol_provider.rb
203
+ - lib/steep/index/source_index.rb
181
204
  - lib/steep/interface/block.rb
182
205
  - lib/steep/interface/function.rb
183
206
  - lib/steep/interface/interface.rb
@@ -187,22 +210,25 @@ files:
187
210
  - lib/steep/method_name.rb
188
211
  - lib/steep/module_helper.rb
189
212
  - lib/steep/project.rb
190
- - lib/steep/project/completion_provider.rb
191
213
  - lib/steep/project/dsl.rb
192
- - lib/steep/project/file_loader.rb
193
- - lib/steep/project/hover_content.rb
194
214
  - lib/steep/project/options.rb
195
- - lib/steep/project/signature_file.rb
196
- - lib/steep/project/source_file.rb
215
+ - lib/steep/project/pattern.rb
197
216
  - lib/steep/project/target.rb
217
+ - lib/steep/range_extension.rb
198
218
  - lib/steep/server/base_worker.rb
199
- - lib/steep/server/code_worker.rb
219
+ - lib/steep/server/change_buffer.rb
200
220
  - lib/steep/server/interaction_worker.rb
201
221
  - lib/steep/server/master.rb
202
- - lib/steep/server/signature_worker.rb
203
- - lib/steep/server/utils.rb
222
+ - lib/steep/server/type_check_worker.rb
204
223
  - lib/steep/server/worker_process.rb
205
- - lib/steep/signature/errors.rb
224
+ - lib/steep/services/completion_provider.rb
225
+ - lib/steep/services/content_change.rb
226
+ - lib/steep/services/file_loader.rb
227
+ - lib/steep/services/hover_content.rb
228
+ - lib/steep/services/path_assignment.rb
229
+ - lib/steep/services/signature_service.rb
230
+ - lib/steep/services/stats_calculator.rb
231
+ - lib/steep/services/type_check_service.rb
206
232
  - lib/steep/signature/validator.rb
207
233
  - lib/steep/source.rb
208
234
  - lib/steep/subtyping/check.rb
@@ -212,7 +238,6 @@ files:
212
238
  - lib/steep/subtyping/trace.rb
213
239
  - lib/steep/subtyping/variable_occurrence.rb
214
240
  - lib/steep/subtyping/variable_variance.rb
215
- - lib/steep/type_assignability.rb
216
241
  - lib/steep/type_construction.rb
217
242
  - lib/steep/type_inference/block_params.rb
218
243
  - lib/steep/type_inference/constant_env.rb
@@ -236,12 +261,15 @@ files:
236
261
  - smoke/alias/a.rbs
237
262
  - smoke/alias/b.rb
238
263
  - smoke/alias/c.rb
264
+ - smoke/alias/test_expectations.yml
239
265
  - smoke/and/Steepfile
240
266
  - smoke/and/a.rb
267
+ - smoke/and/test_expectations.yml
241
268
  - smoke/array/Steepfile
242
269
  - smoke/array/a.rb
243
270
  - smoke/array/b.rb
244
271
  - smoke/array/c.rb
272
+ - smoke/array/test_expectations.yml
245
273
  - smoke/block/Steepfile
246
274
  - smoke/block/a.rb
247
275
  - smoke/block/a.rbs
@@ -249,8 +277,10 @@ files:
249
277
  - smoke/block/c.rb
250
278
  - smoke/block/c.rbs
251
279
  - smoke/block/d.rb
280
+ - smoke/block/test_expectations.yml
252
281
  - smoke/case/Steepfile
253
282
  - smoke/case/a.rb
283
+ - smoke/case/test_expectations.yml
254
284
  - smoke/class/Steepfile
255
285
  - smoke/class/a.rb
256
286
  - smoke/class/a.rbs
@@ -262,15 +292,68 @@ files:
262
292
  - smoke/class/h.rbs
263
293
  - smoke/class/i.rb
264
294
  - smoke/class/i.rbs
295
+ - smoke/class/test_expectations.yml
265
296
  - smoke/const/Steepfile
266
297
  - smoke/const/a.rb
298
+ - smoke/const/b.rb
299
+ - smoke/const/b.rbs
300
+ - smoke/const/test_expectations.yml
301
+ - smoke/diagnostics-rbs-duplicated/Steepfile
302
+ - smoke/diagnostics-rbs-duplicated/a.rbs
303
+ - smoke/diagnostics-rbs-duplicated/test_expectations.yml
304
+ - smoke/diagnostics-rbs/Steepfile
305
+ - smoke/diagnostics-rbs/duplicated-method-definition.rbs
306
+ - smoke/diagnostics-rbs/generic-parameter-mismatch.rbs
307
+ - smoke/diagnostics-rbs/invalid-method-overload.rbs
308
+ - smoke/diagnostics-rbs/invalid-type-application.rbs
309
+ - smoke/diagnostics-rbs/invalid_variance_annotation.rbs
310
+ - smoke/diagnostics-rbs/recursive-alias.rbs
311
+ - smoke/diagnostics-rbs/recursive-class.rbs
312
+ - smoke/diagnostics-rbs/superclass-mismatch.rbs
313
+ - smoke/diagnostics-rbs/test_expectations.yml
314
+ - smoke/diagnostics-rbs/unknown-method-alias.rbs
315
+ - smoke/diagnostics-rbs/unknown-type-name-2.rbs
316
+ - smoke/diagnostics-rbs/unknown-type-name.rbs
317
+ - smoke/diagnostics/Steepfile
318
+ - smoke/diagnostics/a.rbs
319
+ - smoke/diagnostics/argument_type_mismatch.rb
320
+ - smoke/diagnostics/block_body_type_mismatch.rb
321
+ - smoke/diagnostics/block_type_mismatch.rb
322
+ - smoke/diagnostics/break_type_mismatch.rb
323
+ - smoke/diagnostics/else_on_exhaustive_case.rb
324
+ - smoke/diagnostics/incompatible_annotation.rb
325
+ - smoke/diagnostics/incompatible_argument.rb
326
+ - smoke/diagnostics/incompatible_assignment.rb
327
+ - smoke/diagnostics/method_arity_mismatch.rb
328
+ - smoke/diagnostics/method_body_type_mismatch.rb
329
+ - smoke/diagnostics/method_definition_missing.rb
330
+ - smoke/diagnostics/method_return_type_annotation_mismatch.rb
331
+ - smoke/diagnostics/missing_keyword.rb
332
+ - smoke/diagnostics/no_method.rb
333
+ - smoke/diagnostics/required_block_missing.rb
334
+ - smoke/diagnostics/return_type_mismatch.rb
335
+ - smoke/diagnostics/test_expectations.yml
336
+ - smoke/diagnostics/unexpected_block_given.rb
337
+ - smoke/diagnostics/unexpected_dynamic_method.rb
338
+ - smoke/diagnostics/unexpected_jump.rb
339
+ - smoke/diagnostics/unexpected_jump_value.rb
340
+ - smoke/diagnostics/unexpected_keyword.rb
341
+ - smoke/diagnostics/unexpected_splat.rb
342
+ - smoke/diagnostics/unexpected_yield.rb
343
+ - smoke/diagnostics/unknown_constant_assigned.rb
344
+ - smoke/diagnostics/unresolved_overloading.rb
345
+ - smoke/diagnostics/unsatisfiable_constraint.rb
346
+ - smoke/diagnostics/unsupported_syntax.rb
267
347
  - smoke/dstr/Steepfile
268
348
  - smoke/dstr/a.rb
349
+ - smoke/dstr/test_expectations.yml
269
350
  - smoke/ensure/Steepfile
270
351
  - smoke/ensure/a.rb
352
+ - smoke/ensure/test_expectations.yml
271
353
  - smoke/enumerator/Steepfile
272
354
  - smoke/enumerator/a.rb
273
355
  - smoke/enumerator/b.rb
356
+ - smoke/enumerator/test_expectations.yml
274
357
  - smoke/extension/Steepfile
275
358
  - smoke/extension/a.rb
276
359
  - smoke/extension/a.rbs
@@ -279,6 +362,9 @@ files:
279
362
  - smoke/extension/d.rb
280
363
  - smoke/extension/e.rb
281
364
  - smoke/extension/e.rbs
365
+ - smoke/extension/f.rb
366
+ - smoke/extension/f.rbs
367
+ - smoke/extension/test_expectations.yml
282
368
  - smoke/hash/Steepfile
283
369
  - smoke/hash/a.rb
284
370
  - smoke/hash/a.rbs
@@ -288,32 +374,43 @@ files:
288
374
  - smoke/hash/e.rb
289
375
  - smoke/hash/e.rbs
290
376
  - smoke/hash/f.rb
377
+ - smoke/hash/test_expectations.yml
291
378
  - smoke/hello/Steepfile
292
379
  - smoke/hello/hello.rb
293
380
  - smoke/hello/hello.rbs
381
+ - smoke/hello/test_expectations.yml
294
382
  - smoke/if/Steepfile
295
383
  - smoke/if/a.rb
384
+ - smoke/if/test_expectations.yml
296
385
  - smoke/implements/Steepfile
297
386
  - smoke/implements/a.rb
298
387
  - smoke/implements/a.rbs
388
+ - smoke/implements/test_expectations.yml
299
389
  - smoke/initialize/Steepfile
300
390
  - smoke/initialize/a.rb
301
391
  - smoke/initialize/a.rbs
392
+ - smoke/initialize/test_expectations.yml
302
393
  - smoke/integer/Steepfile
303
394
  - smoke/integer/a.rb
395
+ - smoke/integer/test_expectations.yml
304
396
  - smoke/interface/Steepfile
305
397
  - smoke/interface/a.rb
306
398
  - smoke/interface/a.rbs
399
+ - smoke/interface/test_expectations.yml
307
400
  - smoke/kwbegin/Steepfile
308
401
  - smoke/kwbegin/a.rb
402
+ - smoke/kwbegin/test_expectations.yml
309
403
  - smoke/lambda/Steepfile
310
404
  - smoke/lambda/a.rb
405
+ - smoke/lambda/test_expectations.yml
311
406
  - smoke/literal/Steepfile
312
407
  - smoke/literal/a.rb
313
408
  - smoke/literal/b.rb
314
409
  - smoke/literal/literal_methods.rbs
410
+ - smoke/literal/test_expectations.yml
315
411
  - smoke/map/Steepfile
316
412
  - smoke/map/a.rb
413
+ - smoke/map/test_expectations.yml
317
414
  - smoke/method/Steepfile
318
415
  - smoke/method/a.rb
319
416
  - smoke/method/a.rbs
@@ -321,6 +418,7 @@ files:
321
418
  - smoke/method/c.rb
322
419
  - smoke/method/d.rb
323
420
  - smoke/method/d.rbs
421
+ - smoke/method/test_expectations.yml
324
422
  - smoke/module/Steepfile
325
423
  - smoke/module/a.rb
326
424
  - smoke/module/a.rbs
@@ -329,9 +427,11 @@ files:
329
427
  - smoke/module/d.rb
330
428
  - smoke/module/e.rb
331
429
  - smoke/module/f.rb
430
+ - smoke/module/test_expectations.yml
332
431
  - smoke/regexp/Steepfile
333
432
  - smoke/regexp/a.rb
334
433
  - smoke/regexp/b.rb
434
+ - smoke/regexp/test_expectations.yml
335
435
  - smoke/regression/Steepfile
336
436
  - smoke/regression/array.rb
337
437
  - smoke/regression/fun.rb
@@ -341,28 +441,43 @@ files:
341
441
  - smoke/regression/poly_new.rbs
342
442
  - smoke/regression/range.rb
343
443
  - smoke/regression/set_divide.rb
444
+ - smoke/regression/test_expectations.yml
344
445
  - smoke/rescue/Steepfile
345
446
  - smoke/rescue/a.rb
447
+ - smoke/rescue/test_expectations.yml
346
448
  - smoke/self/Steepfile
347
449
  - smoke/self/a.rb
348
450
  - smoke/self/a.rbs
451
+ - smoke/self/test_expectations.yml
349
452
  - smoke/skip/Steepfile
350
453
  - smoke/skip/skip.rb
454
+ - smoke/skip/test_expectations.yml
351
455
  - smoke/stdout/Steepfile
352
456
  - smoke/stdout/a.rb
353
457
  - smoke/stdout/a.rbs
458
+ - smoke/stdout/test_expectations.yml
354
459
  - smoke/super/Steepfile
355
460
  - smoke/super/a.rb
356
461
  - smoke/super/a.rbs
462
+ - smoke/super/test_expectations.yml
357
463
  - smoke/toplevel/Steepfile
358
464
  - smoke/toplevel/a.rb
359
465
  - smoke/toplevel/a.rbs
466
+ - smoke/toplevel/test_expectations.yml
360
467
  - smoke/tsort/Steepfile
361
468
  - smoke/tsort/a.rb
469
+ - smoke/tsort/test_expectations.yml
362
470
  - smoke/type_case/Steepfile
363
471
  - smoke/type_case/a.rb
472
+ - smoke/type_case/test_expectations.yml
473
+ - smoke/unexpected/Steepfile
474
+ - smoke/unexpected/test_expectations.yml
475
+ - smoke/unexpected/unexpected.rb
476
+ - smoke/unexpected/unexpected.rbs
364
477
  - smoke/yield/Steepfile
365
478
  - smoke/yield/a.rb
479
+ - smoke/yield/b.rb
480
+ - smoke/yield/test_expectations.yml
366
481
  - steep.gemspec
367
482
  homepage: https://github.com/soutaro/steep
368
483
  licenses:
@@ -371,7 +486,7 @@ metadata:
371
486
  homepage_uri: https://github.com/soutaro/steep
372
487
  source_code_uri: https://github.com/soutaro/steep
373
488
  changelog_uri: https://github.com/soutaro/steep/blob/master/CHANGELOG.md
374
- post_install_message:
489
+ post_install_message:
375
490
  rdoc_options: []
376
491
  require_paths:
377
492
  - lib
@@ -386,8 +501,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
386
501
  - !ruby/object:Gem::Version
387
502
  version: '0'
388
503
  requirements: []
389
- rubygems_version: 3.1.2
390
- signing_key:
504
+ rubygems_version: 3.2.3
505
+ signing_key:
391
506
  specification_version: 4
392
507
  summary: Gradual Typing for Ruby
393
508
  test_files: []