steep 1.6.0.pre.4 → 1.7.0.dev.1

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 (311) hide show
  1. checksums.yaml +4 -4
  2. data/.github/dependabot.yml +6 -0
  3. data/.github/workflows/ruby-windows.yml +2 -1
  4. data/.github/workflows/ruby.yml +9 -10
  5. data/.gitignore +0 -1
  6. data/CHANGELOG.md +4 -0
  7. data/Gemfile +1 -1
  8. data/Gemfile.lock +31 -29
  9. data/bin/output_test.rb +1 -0
  10. data/doc/narrowing.md +195 -0
  11. data/gemfile_steep/Gemfile.lock +30 -15
  12. data/guides/src/getting-started/getting-started.md +10 -11
  13. data/lib/steep/ast/ignore.rb +148 -0
  14. data/lib/steep/cli.rb +6 -1
  15. data/lib/steep/diagnostic/ruby.rb +16 -0
  16. data/lib/steep/drivers/utils/driver_helper.rb +22 -11
  17. data/lib/steep/node_helper.rb +12 -0
  18. data/lib/steep/project/dsl.rb +18 -21
  19. data/lib/steep/project/options.rb +39 -2
  20. data/lib/steep/project.rb +11 -7
  21. data/lib/steep/server/change_buffer.rb +2 -2
  22. data/lib/steep/server/interaction_worker.rb +61 -11
  23. data/lib/steep/server/worker_process.rb +3 -1
  24. data/lib/steep/services/completion_provider.rb +39 -8
  25. data/lib/steep/services/file_loader.rb +3 -2
  26. data/lib/steep/services/signature_help_provider.rb +9 -8
  27. data/lib/steep/services/type_check_service.rb +36 -8
  28. data/lib/steep/source/ignore_ranges.rb +69 -0
  29. data/lib/steep/source.rb +10 -4
  30. data/lib/steep/type_construction.rb +6 -147
  31. data/lib/steep/type_inference/case_when.rb +301 -0
  32. data/lib/steep/version.rb +1 -1
  33. data/lib/steep.rb +14 -1
  34. data/rbs_collection.steep.lock.yaml +8 -6
  35. data/sig/shims/parser.rbs +10 -0
  36. data/sig/shims/yaml.rbs +4 -0
  37. data/sig/steep/ast/ignore.rbs +66 -0
  38. data/sig/steep/diagnostic/ruby.rbs +8 -0
  39. data/sig/steep/node_helper.rbs +2 -0
  40. data/sig/steep/project/dsl.rbs +8 -4
  41. data/sig/steep/project/options.rbs +21 -1
  42. data/sig/steep/project.rbs +3 -3
  43. data/sig/steep/server/change_buffer.rbs +6 -4
  44. data/sig/steep/server/interaction_worker.rbs +10 -0
  45. data/sig/steep/server/worker_process.rbs +4 -4
  46. data/sig/steep/services/completion_provider.rbs +14 -1
  47. data/sig/steep/services/type_check_service.rbs +6 -1
  48. data/sig/steep/source/ignore_ranges.rbs +38 -0
  49. data/sig/steep/source.rbs +5 -2
  50. data/sig/steep/subtyping/check.rbs +2 -2
  51. data/sig/steep/type_construction.rbs +1 -26
  52. data/sig/steep/type_inference/branch.rbs +15 -0
  53. data/sig/steep/type_inference/case_when.rbs +130 -0
  54. data/sig/steep.rbs +9 -0
  55. data/steep.gemspec +1 -1
  56. metadata +14 -260
  57. data/smoke/alias/Steepfile +0 -6
  58. data/smoke/alias/a.rb +0 -16
  59. data/smoke/alias/a.rbs +0 -10
  60. data/smoke/alias/b.rb +0 -6
  61. data/smoke/alias/c.rb +0 -8
  62. data/smoke/alias/test_expectations.yml +0 -96
  63. data/smoke/and/Steepfile +0 -6
  64. data/smoke/and/a.rb +0 -8
  65. data/smoke/and/test_expectations.yml +0 -29
  66. data/smoke/array/Steepfile +0 -6
  67. data/smoke/array/a.rb +0 -18
  68. data/smoke/array/b.rb +0 -12
  69. data/smoke/array/c.rb +0 -6
  70. data/smoke/array/test_expectations.yml +0 -103
  71. data/smoke/block/Steepfile +0 -6
  72. data/smoke/block/a.rb +0 -10
  73. data/smoke/block/a.rbs +0 -6
  74. data/smoke/block/b.rb +0 -13
  75. data/smoke/block/c.rb +0 -9
  76. data/smoke/block/c.rbs +0 -3
  77. data/smoke/block/d.rb +0 -11
  78. data/smoke/block/e.rb +0 -12
  79. data/smoke/block/e.rbs +0 -4
  80. data/smoke/block/test_expectations.yml +0 -133
  81. data/smoke/case/Steepfile +0 -6
  82. data/smoke/case/a.rb +0 -18
  83. data/smoke/case/test_expectations.yml +0 -47
  84. data/smoke/class/Steepfile +0 -6
  85. data/smoke/class/a.rb +0 -25
  86. data/smoke/class/a.rbs +0 -23
  87. data/smoke/class/b.rb +0 -5
  88. data/smoke/class/c.rb +0 -9
  89. data/smoke/class/f.rb +0 -10
  90. data/smoke/class/g.rb +0 -6
  91. data/smoke/class/h.rb +0 -19
  92. data/smoke/class/h.rbs +0 -6
  93. data/smoke/class/i.rb +0 -14
  94. data/smoke/class/i.rbs +0 -9
  95. data/smoke/class/test_expectations.yml +0 -117
  96. data/smoke/compact/Steepfile +0 -6
  97. data/smoke/compact/a.rb +0 -2
  98. data/smoke/compact/a.rbs +0 -5
  99. data/smoke/compact/b.rb +0 -2
  100. data/smoke/compact/test_expectations.yml +0 -18
  101. data/smoke/const/Steepfile +0 -6
  102. data/smoke/const/a.rb +0 -27
  103. data/smoke/const/b.rb +0 -7
  104. data/smoke/const/b.rbs +0 -5
  105. data/smoke/const/test_expectations.yml +0 -134
  106. data/smoke/diagnostics/Steepfile +0 -6
  107. data/smoke/diagnostics/a.rbs +0 -22
  108. data/smoke/diagnostics/argument_type_mismatch.rb +0 -1
  109. data/smoke/diagnostics/block_body_type_mismatch.rb +0 -1
  110. data/smoke/diagnostics/block_type_mismatch.rb +0 -3
  111. data/smoke/diagnostics/break_type_mismatch.rb +0 -1
  112. data/smoke/diagnostics/different_method_parameter_kind.rb +0 -9
  113. data/smoke/diagnostics/else_on_exhaustive_case.rb +0 -12
  114. data/smoke/diagnostics/incompatible_annotation.rb +0 -6
  115. data/smoke/diagnostics/incompatible_argument.rb +0 -1
  116. data/smoke/diagnostics/incompatible_assignment.rb +0 -8
  117. data/smoke/diagnostics/method_arity_mismatch.rb +0 -11
  118. data/smoke/diagnostics/method_body_type_mismatch.rb +0 -6
  119. data/smoke/diagnostics/method_definition_missing.rb +0 -2
  120. data/smoke/diagnostics/method_parameter_mismatch.rb +0 -10
  121. data/smoke/diagnostics/method_return_type_annotation_mismatch.rb +0 -7
  122. data/smoke/diagnostics/missing_keyword.rb +0 -1
  123. data/smoke/diagnostics/no_method.rb +0 -1
  124. data/smoke/diagnostics/proc_type_expected.rb +0 -3
  125. data/smoke/diagnostics/required_block_missing.rb +0 -1
  126. data/smoke/diagnostics/return_type_mismatch.rb +0 -6
  127. data/smoke/diagnostics/test_expectations.yml +0 -591
  128. data/smoke/diagnostics/unexpected_block_given.rb +0 -1
  129. data/smoke/diagnostics/unexpected_dynamic_method.rb +0 -3
  130. data/smoke/diagnostics/unexpected_jump.rb +0 -4
  131. data/smoke/diagnostics/unexpected_jump_value.rb +0 -3
  132. data/smoke/diagnostics/unexpected_keyword.rb +0 -1
  133. data/smoke/diagnostics/unexpected_splat.rb +0 -1
  134. data/smoke/diagnostics/unexpected_yield.rb +0 -6
  135. data/smoke/diagnostics/unknown_constant_assigned.rb +0 -7
  136. data/smoke/diagnostics/unresolved_overloading.rb +0 -1
  137. data/smoke/diagnostics/unsupported_syntax.rb +0 -2
  138. data/smoke/diagnostics-rbs/Steepfile +0 -8
  139. data/smoke/diagnostics-rbs/duplicated-method-definition.rbs +0 -20
  140. data/smoke/diagnostics-rbs/generic-parameter-mismatch.rbs +0 -7
  141. data/smoke/diagnostics-rbs/inherit-module.rbs +0 -2
  142. data/smoke/diagnostics-rbs/invalid-method-overload.rbs +0 -3
  143. data/smoke/diagnostics-rbs/invalid-type-application.rbs +0 -7
  144. data/smoke/diagnostics-rbs/invalid_variance_annotation.rbs +0 -3
  145. data/smoke/diagnostics-rbs/mixin-class-error.rbs +0 -6
  146. data/smoke/diagnostics-rbs/nonregular-type-alias.rbs +0 -3
  147. data/smoke/diagnostics-rbs/recursive-alias.rbs +0 -5
  148. data/smoke/diagnostics-rbs/recursive-class.rbs +0 -8
  149. data/smoke/diagnostics-rbs/recursive-type-alias.rbs +0 -3
  150. data/smoke/diagnostics-rbs/superclass-mismatch.rbs +0 -7
  151. data/smoke/diagnostics-rbs/test_expectations.yml +0 -300
  152. data/smoke/diagnostics-rbs/unknown-method-alias.rbs +0 -3
  153. data/smoke/diagnostics-rbs/unknown-type-name-2.rbs +0 -5
  154. data/smoke/diagnostics-rbs/unknown-type-name.rbs +0 -13
  155. data/smoke/diagnostics-rbs-duplicated/Steepfile +0 -6
  156. data/smoke/diagnostics-rbs-duplicated/a.rbs +0 -5
  157. data/smoke/diagnostics-rbs-duplicated/test_expectations.yml +0 -13
  158. data/smoke/diagnostics-ruby-unsat/Steepfile +0 -6
  159. data/smoke/diagnostics-ruby-unsat/a.rbs +0 -3
  160. data/smoke/diagnostics-ruby-unsat/test_expectations.yml +0 -27
  161. data/smoke/diagnostics-ruby-unsat/unsatisfiable_constraint.rb +0 -6
  162. data/smoke/dstr/Steepfile +0 -6
  163. data/smoke/dstr/a.rb +0 -5
  164. data/smoke/dstr/test_expectations.yml +0 -13
  165. data/smoke/ensure/Steepfile +0 -6
  166. data/smoke/ensure/a.rb +0 -18
  167. data/smoke/ensure/test_expectations.yml +0 -62
  168. data/smoke/enumerator/Steepfile +0 -6
  169. data/smoke/enumerator/a.rb +0 -6
  170. data/smoke/enumerator/b.rb +0 -17
  171. data/smoke/enumerator/test_expectations.yml +0 -47
  172. data/smoke/extension/Steepfile +0 -6
  173. data/smoke/extension/a.rb +0 -10
  174. data/smoke/extension/a.rbs +0 -13
  175. data/smoke/extension/b.rb +0 -10
  176. data/smoke/extension/c.rb +0 -9
  177. data/smoke/extension/d.rb +0 -2
  178. data/smoke/extension/e.rb +0 -2
  179. data/smoke/extension/e.rbs +0 -7
  180. data/smoke/extension/f.rb +0 -2
  181. data/smoke/extension/f.rbs +0 -3
  182. data/smoke/extension/test_expectations.yml +0 -73
  183. data/smoke/hash/Steepfile +0 -6
  184. data/smoke/hash/a.rb +0 -17
  185. data/smoke/hash/a.rbs +0 -8
  186. data/smoke/hash/b.rb +0 -6
  187. data/smoke/hash/c.rb +0 -15
  188. data/smoke/hash/d.rb +0 -5
  189. data/smoke/hash/e.rb +0 -1
  190. data/smoke/hash/e.rbs +0 -3
  191. data/smoke/hash/f.rb +0 -11
  192. data/smoke/hash/test_expectations.yml +0 -81
  193. data/smoke/hello/Steepfile +0 -6
  194. data/smoke/hello/hello.rb +0 -11
  195. data/smoke/hello/hello.rbs +0 -7
  196. data/smoke/hello/test_expectations.yml +0 -25
  197. data/smoke/if/Steepfile +0 -6
  198. data/smoke/if/a.rb +0 -20
  199. data/smoke/if/test_expectations.yml +0 -34
  200. data/smoke/implements/Steepfile +0 -6
  201. data/smoke/implements/a.rb +0 -12
  202. data/smoke/implements/a.rbs +0 -6
  203. data/smoke/implements/b.rb +0 -13
  204. data/smoke/implements/b.rbs +0 -12
  205. data/smoke/implements/test_expectations.yml +0 -23
  206. data/smoke/initialize/Steepfile +0 -6
  207. data/smoke/initialize/a.rb +0 -12
  208. data/smoke/initialize/a.rbs +0 -3
  209. data/smoke/initialize/test_expectations.yml +0 -1
  210. data/smoke/integer/Steepfile +0 -6
  211. data/smoke/integer/a.rb +0 -26
  212. data/smoke/integer/test_expectations.yml +0 -110
  213. data/smoke/interface/Steepfile +0 -6
  214. data/smoke/interface/a.rb +0 -12
  215. data/smoke/interface/a.rbs +0 -12
  216. data/smoke/interface/test_expectations.yml +0 -23
  217. data/smoke/kwbegin/Steepfile +0 -6
  218. data/smoke/kwbegin/a.rb +0 -7
  219. data/smoke/kwbegin/test_expectations.yml +0 -17
  220. data/smoke/lambda/Steepfile +0 -6
  221. data/smoke/lambda/a.rb +0 -10
  222. data/smoke/lambda/test_expectations.yml +0 -17
  223. data/smoke/literal/Steepfile +0 -6
  224. data/smoke/literal/a.rb +0 -11
  225. data/smoke/literal/b.rb +0 -7
  226. data/smoke/literal/literal_methods.rbs +0 -4
  227. data/smoke/literal/test_expectations.yml +0 -106
  228. data/smoke/map/Steepfile +0 -6
  229. data/smoke/map/a.rb +0 -5
  230. data/smoke/map/test_expectations.yml +0 -1
  231. data/smoke/method/Steepfile +0 -6
  232. data/smoke/method/a.rb +0 -21
  233. data/smoke/method/a.rbs +0 -4
  234. data/smoke/method/b.rb +0 -25
  235. data/smoke/method/c.rb +0 -5
  236. data/smoke/method/d.rb +0 -1
  237. data/smoke/method/d.rbs +0 -3
  238. data/smoke/method/test_expectations.yml +0 -121
  239. data/smoke/module/Steepfile +0 -6
  240. data/smoke/module/a.rb +0 -19
  241. data/smoke/module/a.rbs +0 -16
  242. data/smoke/module/b.rb +0 -6
  243. data/smoke/module/c.rb +0 -22
  244. data/smoke/module/d.rb +0 -4
  245. data/smoke/module/e.rb +0 -13
  246. data/smoke/module/f.rb +0 -11
  247. data/smoke/module/test_expectations.yml +0 -75
  248. data/smoke/regexp/Steepfile +0 -6
  249. data/smoke/regexp/a.rb +0 -109
  250. data/smoke/regexp/b.rb +0 -79
  251. data/smoke/regexp/test_expectations.yml +0 -615
  252. data/smoke/regression/Steepfile +0 -6
  253. data/smoke/regression/array.rb +0 -7
  254. data/smoke/regression/block_param_split.rb +0 -7
  255. data/smoke/regression/block_param_split.rbs +0 -3
  256. data/smoke/regression/empty_yield.rb +0 -5
  257. data/smoke/regression/empty_yield.rbs +0 -3
  258. data/smoke/regression/enumerator_product.rb +0 -1
  259. data/smoke/regression/fun.rb +0 -8
  260. data/smoke/regression/fun.rbs +0 -4
  261. data/smoke/regression/hash.rb +0 -7
  262. data/smoke/regression/hello world.rb +0 -1
  263. data/smoke/regression/issue_328.rb +0 -1
  264. data/smoke/regression/issue_328.rbs +0 -0
  265. data/smoke/regression/issue_332.rb +0 -11
  266. data/smoke/regression/issue_332.rbs +0 -19
  267. data/smoke/regression/issue_372.rb +0 -8
  268. data/smoke/regression/issue_372.rbs +0 -4
  269. data/smoke/regression/lambda.rb +0 -3
  270. data/smoke/regression/masgn.rb +0 -4
  271. data/smoke/regression/poly_new.rb +0 -2
  272. data/smoke/regression/poly_new.rbs +0 -4
  273. data/smoke/regression/range.rb +0 -5
  274. data/smoke/regression/set_divide.rb +0 -12
  275. data/smoke/regression/test_expectations.yml +0 -120
  276. data/smoke/regression/thread.rb +0 -7
  277. data/smoke/rescue/Steepfile +0 -6
  278. data/smoke/rescue/a.rb +0 -48
  279. data/smoke/rescue/test_expectations.yml +0 -79
  280. data/smoke/self/Steepfile +0 -6
  281. data/smoke/self/a.rb +0 -21
  282. data/smoke/self/a.rbs +0 -4
  283. data/smoke/self/test_expectations.yml +0 -23
  284. data/smoke/skip/Steepfile +0 -6
  285. data/smoke/skip/skip.rb +0 -13
  286. data/smoke/skip/test_expectations.yml +0 -23
  287. data/smoke/stdout/Steepfile +0 -6
  288. data/smoke/stdout/a.rb +0 -8
  289. data/smoke/stdout/a.rbs +0 -7
  290. data/smoke/stdout/test_expectations.yml +0 -1
  291. data/smoke/super/Steepfile +0 -6
  292. data/smoke/super/a.rb +0 -30
  293. data/smoke/super/a.rbs +0 -10
  294. data/smoke/super/test_expectations.yml +0 -69
  295. data/smoke/toplevel/Steepfile +0 -6
  296. data/smoke/toplevel/a.rb +0 -3
  297. data/smoke/toplevel/a.rbs +0 -3
  298. data/smoke/toplevel/test_expectations.yml +0 -15
  299. data/smoke/tsort/Steepfile +0 -7
  300. data/smoke/tsort/a.rb +0 -12
  301. data/smoke/tsort/test_expectations.yml +0 -1
  302. data/smoke/type_case/Steepfile +0 -6
  303. data/smoke/type_case/a.rb +0 -24
  304. data/smoke/type_case/test_expectations.yml +0 -58
  305. data/smoke/unexpected/Steepfile +0 -6
  306. data/smoke/unexpected/test_expectations.yml +0 -13
  307. data/smoke/unexpected/unexpected.rbs +0 -3
  308. data/smoke/yield/Steepfile +0 -6
  309. data/smoke/yield/a.rb +0 -15
  310. data/smoke/yield/b.rb +0 -6
  311. data/smoke/yield/test_expectations.yml +0 -88
@@ -1,18 +0,0 @@
1
- ---
2
- - file: b.rb
3
- diagnostics:
4
- - range:
5
- start:
6
- line: 2
7
- character: 0
8
- end:
9
- line: 2
10
- character: 28
11
- severity: ERROR
12
- message: |-
13
- Cannot assign a value of type `::Array[(::String | bool | nil)]` to a variable of type `::Array[(::String | bool)]`
14
- ::Array[(::String | bool | nil)] <: ::Array[(::String | bool)]
15
- (::String | bool | nil) <: (::String | bool)
16
- nil <: (::String | bool)
17
- nil <: ::String
18
- code: Ruby::IncompatibleAssignment
@@ -1,6 +0,0 @@
1
- target :test do
2
- check "*.rb"
3
- signature "*.rbs"
4
-
5
- configure_code_diagnostics(Steep::Diagnostic::Ruby.all_error)
6
- end
data/smoke/const/a.rb DELETED
@@ -1,27 +0,0 @@
1
- # @type const A: Integer
2
- # @type var x: String
3
-
4
- x = A
5
-
6
- x = B
7
-
8
- module X
9
- # @type const A: Integer
10
-
11
- def foo
12
- # @type var x: String
13
-
14
- x = A
15
-
16
- x = B
17
- end
18
- end
19
-
20
-
21
- # @type const Foo::Bar::Baz: Integer
22
-
23
- x = Foo::Bar::Baz
24
-
25
- z = Foo
26
- x = z::Bar::Baz
27
- x = ::Foo::Bar::Baz
data/smoke/const/b.rb DELETED
@@ -1,7 +0,0 @@
1
- module Foo
2
- module Bar
3
- Baz = "Hello"
4
-
5
- Baz2 = "World"
6
- end
7
- end
data/smoke/const/b.rbs DELETED
@@ -1,5 +0,0 @@
1
- module Foo
2
- module Bar
3
- Baz: Integer
4
- end
5
- end
@@ -1,134 +0,0 @@
1
- ---
2
- - file: a.rb
3
- diagnostics:
4
- - range:
5
- start:
6
- line: 4
7
- character: 0
8
- end:
9
- line: 4
10
- character: 5
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: 6
22
- character: 4
23
- end:
24
- line: 6
25
- character: 5
26
- severity: ERROR
27
- message: 'Cannot find the declaration of constant: `B`'
28
- code: Ruby::UnknownConstant
29
- - range:
30
- start:
31
- line: 8
32
- character: 7
33
- end:
34
- line: 8
35
- character: 8
36
- severity: ERROR
37
- message: 'Cannot find the declaration of module: `X`'
38
- code: Ruby::UnknownConstant
39
- - range:
40
- start:
41
- line: 14
42
- character: 4
43
- end:
44
- line: 14
45
- character: 9
46
- severity: ERROR
47
- message: |-
48
- Cannot assign a value of type `::Integer` to a variable of type `::String`
49
- ::Integer <: ::String
50
- ::Numeric <: ::String
51
- ::Object <: ::String
52
- ::BasicObject <: ::String
53
- code: Ruby::IncompatibleAssignment
54
- - range:
55
- start:
56
- line: 16
57
- character: 8
58
- end:
59
- line: 16
60
- character: 9
61
- severity: ERROR
62
- message: 'Cannot find the declaration of constant: `B`'
63
- code: Ruby::UnknownConstant
64
- - range:
65
- start:
66
- line: 23
67
- character: 0
68
- end:
69
- line: 23
70
- character: 17
71
- severity: ERROR
72
- message: |-
73
- Cannot assign a value of type `::Integer` to a variable of type `::String`
74
- ::Integer <: ::String
75
- ::Numeric <: ::String
76
- ::Object <: ::String
77
- ::BasicObject <: ::String
78
- code: Ruby::IncompatibleAssignment
79
- - range:
80
- start:
81
- line: 26
82
- character: 0
83
- end:
84
- line: 26
85
- character: 15
86
- severity: ERROR
87
- message: |-
88
- Cannot assign a value of type `::Integer` to a variable of type `::String`
89
- ::Integer <: ::String
90
- ::Numeric <: ::String
91
- ::Object <: ::String
92
- ::BasicObject <: ::String
93
- code: Ruby::IncompatibleAssignment
94
- - range:
95
- start:
96
- line: 27
97
- character: 0
98
- end:
99
- line: 27
100
- character: 19
101
- severity: ERROR
102
- message: |-
103
- Cannot assign a value of type `::Integer` to a variable of type `::String`
104
- ::Integer <: ::String
105
- ::Numeric <: ::String
106
- ::Object <: ::String
107
- ::BasicObject <: ::String
108
- code: Ruby::IncompatibleAssignment
109
- - file: b.rb
110
- diagnostics:
111
- - range:
112
- start:
113
- line: 3
114
- character: 4
115
- end:
116
- line: 3
117
- character: 17
118
- severity: ERROR
119
- message: |-
120
- Cannot assign a value of type `::String` to a constant of type `::Integer`
121
- ::String <: ::Integer
122
- ::Object <: ::Integer
123
- ::BasicObject <: ::Integer
124
- code: Ruby::IncompatibleAssignment
125
- - range:
126
- start:
127
- line: 5
128
- character: 4
129
- end:
130
- line: 5
131
- character: 8
132
- severity: ERROR
133
- message: 'Cannot find the declaration of constant: `Baz2`'
134
- code: Ruby::UnknownConstant
@@ -1,6 +0,0 @@
1
- target :test do
2
- check "*.rb"
3
- signature "*.rbs"
4
-
5
- configure_code_diagnostics(Steep::Diagnostic::Ruby.all_error)
6
- end
@@ -1,22 +0,0 @@
1
- class BlockBodyTypeMismatch
2
- def foo: () { () -> Integer } -> void
3
- end
4
-
5
- class MethodDefinitionMissing
6
- def foo: () -> void
7
- end
8
-
9
- class UnexpectedDynamicMethod
10
- def bar: () -> void
11
- end
12
-
13
- class UnknownConstantAssigned
14
- end
15
-
16
- class UnexpectedKeyword
17
- def foo: (foo: Integer) -> void
18
- end
19
-
20
- class MissingKeyword
21
- def foo: (?String, foo: Integer, ?bar: Symbol) -> void
22
- end
@@ -1 +0,0 @@
1
- [123].at("")
@@ -1 +0,0 @@
1
- BlockBodyTypeMismatch.new.foo { "" }
@@ -1,3 +0,0 @@
1
- lam = -> (x,y,z) { x + y + z}
2
-
3
- 123.tap(&lam)
@@ -1 +0,0 @@
1
- 123.tap { break "" }
@@ -1,9 +0,0 @@
1
- class DifferentMethodParameterKind
2
- # @type method foo: (Integer, String) -> void
3
- def foo(a = 0, *b)
4
- end
5
-
6
- # @type method bar: (name: String, size: Integer) -> void
7
- def bar(name: "foo", **rest)
8
- end
9
- end
@@ -1,12 +0,0 @@
1
- x = [1, ""].sample
2
-
3
- case x
4
- when Integer
5
- "Integer"
6
- when String
7
- "String"
8
- when nil
9
- "nil"
10
- else
11
- raise "Unexpected value"
12
- end
@@ -1,6 +0,0 @@
1
- a = [1,2,3]
2
-
3
- if _ = 1
4
- # @type var a: String
5
- a + ""
6
- end
@@ -1 +0,0 @@
1
- [123].at(1,2,3)
@@ -1,8 +0,0 @@
1
- # @type var x: String
2
- x = 3
3
-
4
- # @type const X: String
5
- X = 123
6
-
7
- # @type ivar @x: Integer
8
- @x = :foo
@@ -1,11 +0,0 @@
1
- class MethodArityMismatch
2
- # @type method foo: (name: String) -> void
3
- def foo()
4
-
5
- end
6
-
7
- # @type method bar: (String) -> void
8
- def self.bar
9
-
10
- end
11
- end
@@ -1,6 +0,0 @@
1
- class MethodBodyTypeMismatch
2
- # @type method foo: () -> Integer
3
- def foo
4
- ""
5
- end
6
- end
@@ -1,2 +0,0 @@
1
- class MethodDefinitionMissing
2
- end
@@ -1,10 +0,0 @@
1
- class MethodParameterMismatch
2
- # @type method foo: (?String, *Integer) -> void
3
- def foo(a, b)
4
- end
5
-
6
- # @type method bar: (?name: String) -> void
7
- def self.bar(name:)
8
-
9
- end
10
- end
@@ -1,7 +0,0 @@
1
- class MethodReturnTypeAnnotationMismatch
2
- # @type method foo: () -> String
3
- def foo
4
- # @type return: Integer
5
- 123
6
- end
7
- end
@@ -1 +0,0 @@
1
- MissingKeyword.new.foo bar: :bar
@@ -1 +0,0 @@
1
- 1.foo()
@@ -1,3 +0,0 @@
1
- -> (&block) do
2
- # @type var block: Integer
3
- end
@@ -1 +0,0 @@
1
- 123.tap()
@@ -1,6 +0,0 @@
1
- class ReturnTypeMismatch
2
- # @type method foo: () -> String
3
- def foo
4
- return 30
5
- end
6
- end