steep 1.6.0 → 1.7.0.dev.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 (314) 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/Gemfile +1 -1
  7. data/Gemfile.lock +30 -28
  8. data/Rakefile +5 -0
  9. data/bin/output_test.rb +1 -0
  10. data/doc/narrowing.md +195 -0
  11. data/gemfile_steep/Gemfile +1 -1
  12. data/gemfile_steep/Gemfile.lock +31 -16
  13. data/guides/src/getting-started/getting-started.md +10 -11
  14. data/lib/steep/ast/ignore.rb +148 -0
  15. data/lib/steep/cli.rb +6 -1
  16. data/lib/steep/diagnostic/ruby.rb +16 -0
  17. data/lib/steep/drivers/utils/driver_helper.rb +22 -11
  18. data/lib/steep/node_helper.rb +12 -0
  19. data/lib/steep/project/dsl.rb +18 -21
  20. data/lib/steep/project/options.rb +39 -2
  21. data/lib/steep/project.rb +11 -7
  22. data/lib/steep/server/change_buffer.rb +2 -2
  23. data/lib/steep/server/interaction_worker.rb +61 -11
  24. data/lib/steep/server/worker_process.rb +3 -1
  25. data/lib/steep/services/completion_provider.rb +39 -8
  26. data/lib/steep/services/file_loader.rb +3 -2
  27. data/lib/steep/services/signature_help_provider.rb +20 -17
  28. data/lib/steep/services/type_check_service.rb +36 -8
  29. data/lib/steep/source/ignore_ranges.rb +69 -0
  30. data/lib/steep/source.rb +10 -4
  31. data/lib/steep/subtyping/check.rb +6 -0
  32. data/lib/steep/subtyping/result.rb +6 -0
  33. data/lib/steep/type_construction.rb +6 -151
  34. data/lib/steep/type_inference/case_when.rb +301 -0
  35. data/lib/steep/version.rb +1 -1
  36. data/lib/steep.rb +14 -1
  37. data/rbs_collection.steep.lock.yaml +8 -6
  38. data/sig/shims/parser.rbs +10 -0
  39. data/sig/shims/yaml.rbs +4 -0
  40. data/sig/steep/ast/ignore.rbs +66 -0
  41. data/sig/steep/diagnostic/ruby.rbs +8 -0
  42. data/sig/steep/node_helper.rbs +2 -0
  43. data/sig/steep/project/dsl.rbs +8 -4
  44. data/sig/steep/project/options.rbs +21 -1
  45. data/sig/steep/project.rbs +3 -3
  46. data/sig/steep/server/change_buffer.rbs +6 -4
  47. data/sig/steep/server/interaction_worker.rbs +10 -0
  48. data/sig/steep/server/worker_process.rbs +4 -4
  49. data/sig/steep/services/completion_provider.rbs +14 -1
  50. data/sig/steep/services/type_check_service.rbs +6 -1
  51. data/sig/steep/source/ignore_ranges.rbs +38 -0
  52. data/sig/steep/source.rbs +5 -2
  53. data/sig/steep/subtyping/check.rbs +4 -2
  54. data/sig/steep/subtyping/result.rbs +5 -1
  55. data/sig/steep/type_construction.rbs +1 -26
  56. data/sig/steep/type_inference/case_when.rbs +130 -0
  57. data/sig/steep.rbs +9 -0
  58. data/steep.gemspec +1 -1
  59. metadata +11 -258
  60. data/smoke/alias/Steepfile +0 -6
  61. data/smoke/alias/a.rb +0 -16
  62. data/smoke/alias/a.rbs +0 -10
  63. data/smoke/alias/b.rb +0 -6
  64. data/smoke/alias/c.rb +0 -8
  65. data/smoke/alias/test_expectations.yml +0 -96
  66. data/smoke/and/Steepfile +0 -6
  67. data/smoke/and/a.rb +0 -8
  68. data/smoke/and/test_expectations.yml +0 -29
  69. data/smoke/array/Steepfile +0 -6
  70. data/smoke/array/a.rb +0 -18
  71. data/smoke/array/b.rb +0 -12
  72. data/smoke/array/c.rb +0 -6
  73. data/smoke/array/test_expectations.yml +0 -103
  74. data/smoke/block/Steepfile +0 -6
  75. data/smoke/block/a.rb +0 -10
  76. data/smoke/block/a.rbs +0 -6
  77. data/smoke/block/b.rb +0 -13
  78. data/smoke/block/c.rb +0 -9
  79. data/smoke/block/c.rbs +0 -3
  80. data/smoke/block/d.rb +0 -11
  81. data/smoke/block/e.rb +0 -12
  82. data/smoke/block/e.rbs +0 -4
  83. data/smoke/block/test_expectations.yml +0 -133
  84. data/smoke/case/Steepfile +0 -6
  85. data/smoke/case/a.rb +0 -18
  86. data/smoke/case/test_expectations.yml +0 -47
  87. data/smoke/class/Steepfile +0 -6
  88. data/smoke/class/a.rb +0 -25
  89. data/smoke/class/a.rbs +0 -23
  90. data/smoke/class/b.rb +0 -5
  91. data/smoke/class/c.rb +0 -9
  92. data/smoke/class/f.rb +0 -10
  93. data/smoke/class/g.rb +0 -6
  94. data/smoke/class/h.rb +0 -19
  95. data/smoke/class/h.rbs +0 -6
  96. data/smoke/class/i.rb +0 -14
  97. data/smoke/class/i.rbs +0 -9
  98. data/smoke/class/test_expectations.yml +0 -117
  99. data/smoke/compact/Steepfile +0 -6
  100. data/smoke/compact/a.rb +0 -2
  101. data/smoke/compact/a.rbs +0 -5
  102. data/smoke/compact/b.rb +0 -2
  103. data/smoke/compact/test_expectations.yml +0 -18
  104. data/smoke/const/Steepfile +0 -6
  105. data/smoke/const/a.rb +0 -27
  106. data/smoke/const/b.rb +0 -7
  107. data/smoke/const/b.rbs +0 -5
  108. data/smoke/const/test_expectations.yml +0 -134
  109. data/smoke/diagnostics/Steepfile +0 -6
  110. data/smoke/diagnostics/a.rbs +0 -22
  111. data/smoke/diagnostics/argument_type_mismatch.rb +0 -1
  112. data/smoke/diagnostics/block_body_type_mismatch.rb +0 -1
  113. data/smoke/diagnostics/block_type_mismatch.rb +0 -3
  114. data/smoke/diagnostics/break_type_mismatch.rb +0 -1
  115. data/smoke/diagnostics/different_method_parameter_kind.rb +0 -9
  116. data/smoke/diagnostics/else_on_exhaustive_case.rb +0 -12
  117. data/smoke/diagnostics/incompatible_annotation.rb +0 -6
  118. data/smoke/diagnostics/incompatible_argument.rb +0 -1
  119. data/smoke/diagnostics/incompatible_assignment.rb +0 -8
  120. data/smoke/diagnostics/method_arity_mismatch.rb +0 -11
  121. data/smoke/diagnostics/method_body_type_mismatch.rb +0 -6
  122. data/smoke/diagnostics/method_definition_missing.rb +0 -2
  123. data/smoke/diagnostics/method_parameter_mismatch.rb +0 -10
  124. data/smoke/diagnostics/method_return_type_annotation_mismatch.rb +0 -7
  125. data/smoke/diagnostics/missing_keyword.rb +0 -1
  126. data/smoke/diagnostics/no_method.rb +0 -1
  127. data/smoke/diagnostics/proc_type_expected.rb +0 -3
  128. data/smoke/diagnostics/required_block_missing.rb +0 -1
  129. data/smoke/diagnostics/return_type_mismatch.rb +0 -6
  130. data/smoke/diagnostics/test_expectations.yml +0 -591
  131. data/smoke/diagnostics/unexpected_block_given.rb +0 -1
  132. data/smoke/diagnostics/unexpected_dynamic_method.rb +0 -3
  133. data/smoke/diagnostics/unexpected_jump.rb +0 -4
  134. data/smoke/diagnostics/unexpected_jump_value.rb +0 -3
  135. data/smoke/diagnostics/unexpected_keyword.rb +0 -1
  136. data/smoke/diagnostics/unexpected_splat.rb +0 -1
  137. data/smoke/diagnostics/unexpected_yield.rb +0 -6
  138. data/smoke/diagnostics/unknown_constant_assigned.rb +0 -7
  139. data/smoke/diagnostics/unresolved_overloading.rb +0 -1
  140. data/smoke/diagnostics/unsupported_syntax.rb +0 -2
  141. data/smoke/diagnostics-rbs/Steepfile +0 -8
  142. data/smoke/diagnostics-rbs/duplicated-method-definition.rbs +0 -20
  143. data/smoke/diagnostics-rbs/generic-parameter-mismatch.rbs +0 -7
  144. data/smoke/diagnostics-rbs/inherit-module.rbs +0 -2
  145. data/smoke/diagnostics-rbs/invalid-method-overload.rbs +0 -3
  146. data/smoke/diagnostics-rbs/invalid-type-application.rbs +0 -7
  147. data/smoke/diagnostics-rbs/invalid_variance_annotation.rbs +0 -3
  148. data/smoke/diagnostics-rbs/mixin-class-error.rbs +0 -6
  149. data/smoke/diagnostics-rbs/nonregular-type-alias.rbs +0 -3
  150. data/smoke/diagnostics-rbs/recursive-alias.rbs +0 -5
  151. data/smoke/diagnostics-rbs/recursive-class.rbs +0 -8
  152. data/smoke/diagnostics-rbs/recursive-type-alias.rbs +0 -3
  153. data/smoke/diagnostics-rbs/superclass-mismatch.rbs +0 -7
  154. data/smoke/diagnostics-rbs/test_expectations.yml +0 -300
  155. data/smoke/diagnostics-rbs/unknown-method-alias.rbs +0 -3
  156. data/smoke/diagnostics-rbs/unknown-type-name-2.rbs +0 -5
  157. data/smoke/diagnostics-rbs/unknown-type-name.rbs +0 -13
  158. data/smoke/diagnostics-rbs-duplicated/Steepfile +0 -6
  159. data/smoke/diagnostics-rbs-duplicated/a.rbs +0 -5
  160. data/smoke/diagnostics-rbs-duplicated/test_expectations.yml +0 -13
  161. data/smoke/diagnostics-ruby-unsat/Steepfile +0 -6
  162. data/smoke/diagnostics-ruby-unsat/a.rbs +0 -3
  163. data/smoke/diagnostics-ruby-unsat/test_expectations.yml +0 -27
  164. data/smoke/diagnostics-ruby-unsat/unsatisfiable_constraint.rb +0 -6
  165. data/smoke/dstr/Steepfile +0 -6
  166. data/smoke/dstr/a.rb +0 -5
  167. data/smoke/dstr/test_expectations.yml +0 -13
  168. data/smoke/ensure/Steepfile +0 -6
  169. data/smoke/ensure/a.rb +0 -18
  170. data/smoke/ensure/test_expectations.yml +0 -62
  171. data/smoke/enumerator/Steepfile +0 -6
  172. data/smoke/enumerator/a.rb +0 -6
  173. data/smoke/enumerator/b.rb +0 -17
  174. data/smoke/enumerator/test_expectations.yml +0 -47
  175. data/smoke/extension/Steepfile +0 -6
  176. data/smoke/extension/a.rb +0 -10
  177. data/smoke/extension/a.rbs +0 -13
  178. data/smoke/extension/b.rb +0 -10
  179. data/smoke/extension/c.rb +0 -9
  180. data/smoke/extension/d.rb +0 -2
  181. data/smoke/extension/e.rb +0 -2
  182. data/smoke/extension/e.rbs +0 -7
  183. data/smoke/extension/f.rb +0 -2
  184. data/smoke/extension/f.rbs +0 -3
  185. data/smoke/extension/test_expectations.yml +0 -73
  186. data/smoke/hash/Steepfile +0 -6
  187. data/smoke/hash/a.rb +0 -17
  188. data/smoke/hash/a.rbs +0 -8
  189. data/smoke/hash/b.rb +0 -6
  190. data/smoke/hash/c.rb +0 -15
  191. data/smoke/hash/d.rb +0 -5
  192. data/smoke/hash/e.rb +0 -1
  193. data/smoke/hash/e.rbs +0 -3
  194. data/smoke/hash/f.rb +0 -11
  195. data/smoke/hash/test_expectations.yml +0 -81
  196. data/smoke/hello/Steepfile +0 -6
  197. data/smoke/hello/hello.rb +0 -11
  198. data/smoke/hello/hello.rbs +0 -7
  199. data/smoke/hello/test_expectations.yml +0 -25
  200. data/smoke/if/Steepfile +0 -6
  201. data/smoke/if/a.rb +0 -20
  202. data/smoke/if/test_expectations.yml +0 -34
  203. data/smoke/implements/Steepfile +0 -6
  204. data/smoke/implements/a.rb +0 -12
  205. data/smoke/implements/a.rbs +0 -6
  206. data/smoke/implements/b.rb +0 -13
  207. data/smoke/implements/b.rbs +0 -12
  208. data/smoke/implements/test_expectations.yml +0 -23
  209. data/smoke/initialize/Steepfile +0 -6
  210. data/smoke/initialize/a.rb +0 -12
  211. data/smoke/initialize/a.rbs +0 -3
  212. data/smoke/initialize/test_expectations.yml +0 -1
  213. data/smoke/integer/Steepfile +0 -6
  214. data/smoke/integer/a.rb +0 -26
  215. data/smoke/integer/test_expectations.yml +0 -110
  216. data/smoke/interface/Steepfile +0 -6
  217. data/smoke/interface/a.rb +0 -12
  218. data/smoke/interface/a.rbs +0 -12
  219. data/smoke/interface/test_expectations.yml +0 -23
  220. data/smoke/kwbegin/Steepfile +0 -6
  221. data/smoke/kwbegin/a.rb +0 -7
  222. data/smoke/kwbegin/test_expectations.yml +0 -17
  223. data/smoke/lambda/Steepfile +0 -6
  224. data/smoke/lambda/a.rb +0 -10
  225. data/smoke/lambda/test_expectations.yml +0 -17
  226. data/smoke/literal/Steepfile +0 -6
  227. data/smoke/literal/a.rb +0 -11
  228. data/smoke/literal/b.rb +0 -7
  229. data/smoke/literal/literal_methods.rbs +0 -4
  230. data/smoke/literal/test_expectations.yml +0 -106
  231. data/smoke/map/Steepfile +0 -6
  232. data/smoke/map/a.rb +0 -5
  233. data/smoke/map/test_expectations.yml +0 -1
  234. data/smoke/method/Steepfile +0 -6
  235. data/smoke/method/a.rb +0 -21
  236. data/smoke/method/a.rbs +0 -4
  237. data/smoke/method/b.rb +0 -25
  238. data/smoke/method/c.rb +0 -5
  239. data/smoke/method/d.rb +0 -1
  240. data/smoke/method/d.rbs +0 -3
  241. data/smoke/method/test_expectations.yml +0 -121
  242. data/smoke/module/Steepfile +0 -6
  243. data/smoke/module/a.rb +0 -19
  244. data/smoke/module/a.rbs +0 -16
  245. data/smoke/module/b.rb +0 -6
  246. data/smoke/module/c.rb +0 -22
  247. data/smoke/module/d.rb +0 -4
  248. data/smoke/module/e.rb +0 -13
  249. data/smoke/module/f.rb +0 -11
  250. data/smoke/module/test_expectations.yml +0 -75
  251. data/smoke/regexp/Steepfile +0 -6
  252. data/smoke/regexp/a.rb +0 -109
  253. data/smoke/regexp/b.rb +0 -79
  254. data/smoke/regexp/test_expectations.yml +0 -615
  255. data/smoke/regression/Steepfile +0 -6
  256. data/smoke/regression/array.rb +0 -7
  257. data/smoke/regression/block_param_split.rb +0 -7
  258. data/smoke/regression/block_param_split.rbs +0 -3
  259. data/smoke/regression/empty_yield.rb +0 -5
  260. data/smoke/regression/empty_yield.rbs +0 -3
  261. data/smoke/regression/enumerator_product.rb +0 -1
  262. data/smoke/regression/fun.rb +0 -8
  263. data/smoke/regression/fun.rbs +0 -4
  264. data/smoke/regression/hash.rb +0 -7
  265. data/smoke/regression/hello world.rb +0 -1
  266. data/smoke/regression/issue_328.rb +0 -1
  267. data/smoke/regression/issue_328.rbs +0 -0
  268. data/smoke/regression/issue_332.rb +0 -11
  269. data/smoke/regression/issue_332.rbs +0 -19
  270. data/smoke/regression/issue_372.rb +0 -8
  271. data/smoke/regression/issue_372.rbs +0 -4
  272. data/smoke/regression/lambda.rb +0 -3
  273. data/smoke/regression/masgn.rb +0 -4
  274. data/smoke/regression/poly_new.rb +0 -2
  275. data/smoke/regression/poly_new.rbs +0 -4
  276. data/smoke/regression/range.rb +0 -5
  277. data/smoke/regression/set_divide.rb +0 -12
  278. data/smoke/regression/test_expectations.yml +0 -120
  279. data/smoke/regression/thread.rb +0 -7
  280. data/smoke/rescue/Steepfile +0 -6
  281. data/smoke/rescue/a.rb +0 -48
  282. data/smoke/rescue/test_expectations.yml +0 -79
  283. data/smoke/self/Steepfile +0 -6
  284. data/smoke/self/a.rb +0 -21
  285. data/smoke/self/a.rbs +0 -4
  286. data/smoke/self/test_expectations.yml +0 -23
  287. data/smoke/skip/Steepfile +0 -6
  288. data/smoke/skip/skip.rb +0 -13
  289. data/smoke/skip/test_expectations.yml +0 -23
  290. data/smoke/stdout/Steepfile +0 -6
  291. data/smoke/stdout/a.rb +0 -8
  292. data/smoke/stdout/a.rbs +0 -7
  293. data/smoke/stdout/test_expectations.yml +0 -1
  294. data/smoke/super/Steepfile +0 -6
  295. data/smoke/super/a.rb +0 -30
  296. data/smoke/super/a.rbs +0 -10
  297. data/smoke/super/test_expectations.yml +0 -69
  298. data/smoke/toplevel/Steepfile +0 -6
  299. data/smoke/toplevel/a.rb +0 -3
  300. data/smoke/toplevel/a.rbs +0 -3
  301. data/smoke/toplevel/test_expectations.yml +0 -15
  302. data/smoke/tsort/Steepfile +0 -7
  303. data/smoke/tsort/a.rb +0 -12
  304. data/smoke/tsort/test_expectations.yml +0 -1
  305. data/smoke/type_case/Steepfile +0 -6
  306. data/smoke/type_case/a.rb +0 -24
  307. data/smoke/type_case/test_expectations.yml +0 -58
  308. data/smoke/unexpected/Steepfile +0 -6
  309. data/smoke/unexpected/test_expectations.yml +0 -13
  310. data/smoke/unexpected/unexpected.rbs +0 -3
  311. data/smoke/yield/Steepfile +0 -6
  312. data/smoke/yield/a.rb +0 -15
  313. data/smoke/yield/b.rb +0 -6
  314. data/smoke/yield/test_expectations.yml +0 -88
@@ -1,591 +0,0 @@
1
- ---
2
- - file: argument_type_mismatch.rb
3
- diagnostics:
4
- - range:
5
- start:
6
- line: 1
7
- character: 9
8
- end:
9
- line: 1
10
- character: 11
11
- severity: ERROR
12
- message: |-
13
- Cannot pass a value of type `::String` as an argument of type `::int`
14
- ::String <: ::int
15
- ::String <: (::Integer | ::_ToInt)
16
- ::String <: ::Integer
17
- ::Object <: ::Integer
18
- ::BasicObject <: ::Integer
19
- code: Ruby::ArgumentTypeMismatch
20
- - file: block_body_type_mismatch.rb
21
- diagnostics:
22
- - range:
23
- start:
24
- line: 1
25
- character: 30
26
- end:
27
- line: 1
28
- character: 36
29
- severity: ERROR
30
- message: |-
31
- Cannot allow block body have type `::String` because declared as type `::Integer`
32
- ::String <: ::Integer
33
- ::Object <: ::Integer
34
- ::BasicObject <: ::Integer
35
- code: Ruby::BlockBodyTypeMismatch
36
- - file: block_type_mismatch.rb
37
- diagnostics:
38
- - range:
39
- start:
40
- line: 3
41
- character: 8
42
- end:
43
- line: 3
44
- character: 12
45
- severity: ERROR
46
- message: |-
47
- Cannot pass a value of type `^(untyped, untyped, untyped) -> untyped` as a block-pass-argument of type `^(::Integer) -> void`
48
- ^(untyped, untyped, untyped) -> untyped <: ^(::Integer) -> void
49
- (Params are incompatible)
50
- code: Ruby::BlockTypeMismatch
51
- - file: break_type_mismatch.rb
52
- diagnostics:
53
- - range:
54
- start:
55
- line: 1
56
- character: 10
57
- end:
58
- line: 1
59
- character: 18
60
- severity: ERROR
61
- message: |-
62
- Cannot break with a value of type `::String` because type `::Integer` is assumed
63
- ::String <: ::Integer
64
- ::Object <: ::Integer
65
- ::BasicObject <: ::Integer
66
- code: Ruby::BreakTypeMismatch
67
- - file: different_method_parameter_kind.rb
68
- diagnostics:
69
- - range:
70
- start:
71
- line: 1
72
- character: 6
73
- end:
74
- line: 1
75
- character: 34
76
- severity: ERROR
77
- message: 'Cannot find the declaration of class: `DifferentMethodParameterKind`'
78
- code: Ruby::UnknownConstant
79
- - range:
80
- start:
81
- line: 3
82
- character: 10
83
- end:
84
- line: 3
85
- character: 15
86
- severity: ERROR
87
- message: The method parameter has different kind from the declaration `(::Integer,
88
- ::String) -> void`
89
- code: Ruby::DifferentMethodParameterKind
90
- - range:
91
- start:
92
- line: 3
93
- character: 17
94
- end:
95
- line: 3
96
- character: 19
97
- severity: ERROR
98
- message: The method parameter has different kind from the declaration `(::Integer,
99
- ::String) -> void`
100
- code: Ruby::DifferentMethodParameterKind
101
- - range:
102
- start:
103
- line: 7
104
- character: 10
105
- end:
106
- line: 7
107
- character: 21
108
- severity: ERROR
109
- message: 'The method parameter has different kind from the declaration `(name:
110
- ::String, size: ::Integer) -> void`'
111
- code: Ruby::DifferentMethodParameterKind
112
- - range:
113
- start:
114
- line: 7
115
- character: 23
116
- end:
117
- line: 7
118
- character: 29
119
- severity: ERROR
120
- message: 'The method parameter has different kind from the declaration `(name:
121
- ::String, size: ::Integer) -> void`'
122
- code: Ruby::DifferentMethodParameterKind
123
- - file: incompatible_annotation.rb
124
- diagnostics:
125
- - range:
126
- start:
127
- line: 5
128
- character: 2
129
- end:
130
- line: 5
131
- character: 8
132
- severity: ERROR
133
- message: |-
134
- Type annotation about `a` is incompatible since ::String <: ::Array[::Integer] doesn't hold
135
- ::String <: ::Array[::Integer]
136
- ::Object <: ::Array[::Integer]
137
- ::BasicObject <: ::Array[::Integer]
138
- code: Ruby::IncompatibleAnnotation
139
- - file: incompatible_argument.rb
140
- diagnostics:
141
- - range:
142
- start:
143
- line: 1
144
- character: 11
145
- end:
146
- line: 1
147
- character: 12
148
- severity: ERROR
149
- message: Unexpected positional argument
150
- code: Ruby::UnexpectedPositionalArgument
151
- - range:
152
- start:
153
- line: 1
154
- character: 13
155
- end:
156
- line: 1
157
- character: 14
158
- severity: ERROR
159
- message: Unexpected positional argument
160
- code: Ruby::UnexpectedPositionalArgument
161
- - file: incompatible_assignment.rb
162
- diagnostics:
163
- - range:
164
- start:
165
- line: 2
166
- character: 0
167
- end:
168
- line: 2
169
- character: 5
170
- severity: ERROR
171
- message: |-
172
- Cannot assign a value of type `::Integer` to a variable of type `::String`
173
- ::Integer <: ::String
174
- ::Numeric <: ::String
175
- ::Object <: ::String
176
- ::BasicObject <: ::String
177
- code: Ruby::IncompatibleAssignment
178
- - range:
179
- start:
180
- line: 5
181
- character: 0
182
- end:
183
- line: 5
184
- character: 7
185
- severity: ERROR
186
- message: |-
187
- Cannot assign a value of type `::Integer` to a constant of type `::String`
188
- ::Integer <: ::String
189
- ::Numeric <: ::String
190
- ::Object <: ::String
191
- ::BasicObject <: ::String
192
- code: Ruby::IncompatibleAssignment
193
- - range:
194
- start:
195
- line: 8
196
- character: 0
197
- end:
198
- line: 8
199
- character: 9
200
- severity: ERROR
201
- message: |-
202
- Cannot assign a value of type `::Symbol` to a variable of type `::Integer`
203
- ::Symbol <: ::Integer
204
- ::Object <: ::Integer
205
- ::BasicObject <: ::Integer
206
- code: Ruby::IncompatibleAssignment
207
- - file: method_arity_mismatch.rb
208
- diagnostics:
209
- - range:
210
- start:
211
- line: 1
212
- character: 6
213
- end:
214
- line: 1
215
- character: 25
216
- severity: ERROR
217
- message: 'Cannot find the declaration of class: `MethodArityMismatch`'
218
- code: Ruby::UnknownConstant
219
- - range:
220
- start:
221
- line: 3
222
- character: 9
223
- end:
224
- line: 3
225
- character: 11
226
- severity: ERROR
227
- message: 'Method parameters are incompatible with declaration `(name: ::String)
228
- -> void`'
229
- code: Ruby::MethodArityMismatch
230
- - range:
231
- start:
232
- line: 8
233
- character: 11
234
- end:
235
- line: 8
236
- character: 14
237
- severity: ERROR
238
- message: Method parameters are incompatible with declaration `(::String) -> void`
239
- code: Ruby::MethodArityMismatch
240
- - file: method_body_type_mismatch.rb
241
- diagnostics:
242
- - range:
243
- start:
244
- line: 1
245
- character: 6
246
- end:
247
- line: 1
248
- character: 28
249
- severity: ERROR
250
- message: 'Cannot find the declaration of class: `MethodBodyTypeMismatch`'
251
- code: Ruby::UnknownConstant
252
- - range:
253
- start:
254
- line: 3
255
- character: 6
256
- end:
257
- line: 3
258
- character: 9
259
- severity: ERROR
260
- message: |-
261
- Cannot allow method body have type `::String` because declared as type `::Integer`
262
- ::String <: ::Integer
263
- ::Object <: ::Integer
264
- ::BasicObject <: ::Integer
265
- code: Ruby::MethodBodyTypeMismatch
266
- - file: method_definition_missing.rb
267
- diagnostics:
268
- - range:
269
- start:
270
- line: 1
271
- character: 6
272
- end:
273
- line: 1
274
- character: 29
275
- severity: ERROR
276
- message: Cannot find implementation of method `::MethodDefinitionMissing#foo`
277
- code: Ruby::MethodDefinitionMissing
278
- - file: method_parameter_mismatch.rb
279
- diagnostics:
280
- - range:
281
- start:
282
- line: 1
283
- character: 6
284
- end:
285
- line: 1
286
- character: 29
287
- severity: ERROR
288
- message: 'Cannot find the declaration of class: `MethodParameterMismatch`'
289
- code: Ruby::UnknownConstant
290
- - range:
291
- start:
292
- line: 3
293
- character: 10
294
- end:
295
- line: 3
296
- character: 11
297
- severity: ERROR
298
- message: The method parameter is incompatible with the declaration `(?::String,
299
- *::Integer) -> void`
300
- code: Ruby::MethodParameterMismatch
301
- - range:
302
- start:
303
- line: 3
304
- character: 13
305
- end:
306
- line: 3
307
- character: 14
308
- severity: ERROR
309
- message: The method parameter is incompatible with the declaration `(?::String,
310
- *::Integer) -> void`
311
- code: Ruby::MethodParameterMismatch
312
- - range:
313
- start:
314
- line: 7
315
- character: 15
316
- end:
317
- line: 7
318
- character: 20
319
- severity: ERROR
320
- message: 'The method parameter is incompatible with the declaration `(?name: ::String)
321
- -> void`'
322
- code: Ruby::MethodParameterMismatch
323
- - file: method_return_type_annotation_mismatch.rb
324
- diagnostics:
325
- - range:
326
- start:
327
- line: 1
328
- character: 6
329
- end:
330
- line: 1
331
- character: 40
332
- severity: ERROR
333
- message: 'Cannot find the declaration of class: `MethodReturnTypeAnnotationMismatch`'
334
- code: Ruby::UnknownConstant
335
- - range:
336
- start:
337
- line: 3
338
- character: 2
339
- end:
340
- line: 6
341
- character: 5
342
- severity: ERROR
343
- message: |-
344
- Annotation `@type return` specifies type `::Integer` where declared as type `::String`
345
- ::Integer <: ::String
346
- ::Numeric <: ::String
347
- ::Object <: ::String
348
- ::BasicObject <: ::String
349
- code: Ruby::MethodReturnTypeAnnotationMismatch
350
- - file: missing_keyword.rb
351
- diagnostics:
352
- - range:
353
- start:
354
- line: 1
355
- character: 19
356
- end:
357
- line: 1
358
- character: 32
359
- severity: ERROR
360
- message: 'More keyword arguments are required: foo'
361
- code: Ruby::InsufficientKeywordArguments
362
- - file: no_method.rb
363
- diagnostics:
364
- - range:
365
- start:
366
- line: 1
367
- character: 2
368
- end:
369
- line: 1
370
- character: 5
371
- severity: ERROR
372
- message: Type `::Integer` does not have method `foo`
373
- code: Ruby::NoMethod
374
- - file: proc_type_expected.rb
375
- diagnostics:
376
- - range:
377
- start:
378
- line: 1
379
- character: 4
380
- end:
381
- line: 1
382
- character: 10
383
- severity: ERROR
384
- message: Proc type is expected but `::Integer` is specified
385
- code: Ruby::ProcTypeExpected
386
- - file: required_block_missing.rb
387
- diagnostics:
388
- - range:
389
- start:
390
- line: 1
391
- character: 4
392
- end:
393
- line: 1
394
- character: 7
395
- severity: ERROR
396
- message: The method cannot be called without a block
397
- code: Ruby::RequiredBlockMissing
398
- - file: return_type_mismatch.rb
399
- diagnostics:
400
- - range:
401
- start:
402
- line: 1
403
- character: 6
404
- end:
405
- line: 1
406
- character: 24
407
- severity: ERROR
408
- message: 'Cannot find the declaration of class: `ReturnTypeMismatch`'
409
- code: Ruby::UnknownConstant
410
- - range:
411
- start:
412
- line: 4
413
- character: 4
414
- end:
415
- line: 4
416
- character: 13
417
- severity: ERROR
418
- message: |-
419
- The method cannot return a value of type `::Integer` because declared as type `::String`
420
- ::Integer <: ::String
421
- ::Numeric <: ::String
422
- ::Object <: ::String
423
- ::BasicObject <: ::String
424
- code: Ruby::ReturnTypeMismatch
425
- - file: unexpected_block_given.rb
426
- diagnostics:
427
- - range:
428
- start:
429
- line: 1
430
- character: 10
431
- end:
432
- line: 1
433
- character: 17
434
- severity: ERROR
435
- message: The method cannot be called with a block
436
- code: Ruby::UnexpectedBlockGiven
437
- - file: unexpected_dynamic_method.rb
438
- diagnostics:
439
- - range:
440
- start:
441
- line: 1
442
- character: 6
443
- end:
444
- line: 1
445
- character: 29
446
- severity: ERROR
447
- message: "@dynamic annotation contains unknown method name `foo`"
448
- code: Ruby::UnexpectedDynamicMethod
449
- - file: unexpected_jump.rb
450
- diagnostics:
451
- - range:
452
- start:
453
- line: 1
454
- character: 0
455
- end:
456
- line: 1
457
- character: 5
458
- severity: ERROR
459
- message: Cannot jump from here
460
- code: Ruby::UnexpectedJump
461
- - range:
462
- start:
463
- line: 3
464
- character: 0
465
- end:
466
- line: 3
467
- character: 4
468
- severity: ERROR
469
- message: Cannot jump from here
470
- code: Ruby::UnexpectedJump
471
- - file: unexpected_jump_value.rb
472
- diagnostics:
473
- - range:
474
- start:
475
- line: 2
476
- character: 2
477
- end:
478
- line: 2
479
- character: 10
480
- severity: ERROR
481
- message: |-
482
- Cannot break with a value of type `::Integer` because type `nil` is assumed
483
- ::Integer <: nil
484
- code: Ruby::BreakTypeMismatch
485
- - file: unexpected_keyword.rb
486
- diagnostics:
487
- - range:
488
- start:
489
- line: 1
490
- character: 36
491
- end:
492
- line: 1
493
- character: 39
494
- severity: ERROR
495
- message: Unexpected keyword argument
496
- code: Ruby::UnexpectedKeywordArgument
497
- - file: unexpected_yield.rb
498
- diagnostics:
499
- - range:
500
- start:
501
- line: 1
502
- character: 6
503
- end:
504
- line: 1
505
- character: 21
506
- severity: ERROR
507
- message: 'Cannot find the declaration of class: `UnexpectedYield`'
508
- code: Ruby::UnknownConstant
509
- - range:
510
- start:
511
- line: 4
512
- character: 4
513
- end:
514
- line: 4
515
- character: 9
516
- severity: ERROR
517
- message: Cannot detect the type of the expression
518
- code: Ruby::FallbackAny
519
- - range:
520
- start:
521
- line: 4
522
- character: 4
523
- end:
524
- line: 4
525
- character: 9
526
- severity: ERROR
527
- message: No block given for `yield`
528
- code: Ruby::UnexpectedYield
529
- - file: unknown_constant_assigned.rb
530
- diagnostics:
531
- - range:
532
- start:
533
- line: 2
534
- character: 2
535
- end:
536
- line: 2
537
- character: 5
538
- severity: ERROR
539
- message: 'Cannot find the declaration of constant: `FOO`'
540
- code: Ruby::UnknownConstant
541
- - range:
542
- start:
543
- line: 4
544
- character: 2
545
- end:
546
- line: 4
547
- character: 5
548
- severity: ERROR
549
- message: 'Cannot find the declaration of constant: `FOO`'
550
- code: Ruby::UnknownConstant
551
- - range:
552
- start:
553
- line: 6
554
- character: 4
555
- end:
556
- line: 6
557
- character: 7
558
- severity: ERROR
559
- message: 'Cannot find the declaration of constant: `FOO`'
560
- code: Ruby::UnknownConstant
561
- - file: unresolved_overloading.rb
562
- diagnostics:
563
- - range:
564
- start:
565
- line: 1
566
- character: 0
567
- end:
568
- line: 1
569
- character: 6
570
- severity: ERROR
571
- message: |-
572
- Cannot find compatible overloading of method `+` of type `::Integer`
573
- Method types:
574
- def +: (::Integer) -> ::Integer
575
- | (::Float) -> ::Float
576
- | (::Rational) -> ::Rational
577
- | (::Complex) -> ::Complex
578
- code: Ruby::UnresolvedOverloading
579
- - file: unsupported_syntax.rb
580
- diagnostics:
581
- - range:
582
- start:
583
- line: 1
584
- character: 0
585
- end:
586
- line: 2
587
- character: 3
588
- severity: ERROR
589
- message: sclass receiver must be instance type or singleton type, but type given
590
- `(::Integer | ::String | nil)`
591
- code: Ruby::UnsupportedSyntax
@@ -1 +0,0 @@
1
- [1].at(1) { 123 }
@@ -1,3 +0,0 @@
1
- class UnexpectedDynamicMethod
2
- # @dynamic foo, bar
3
- end
@@ -1,4 +0,0 @@
1
- break
2
-
3
- next
4
-
@@ -1,3 +0,0 @@
1
- while true
2
- break 10
3
- end
@@ -1 +0,0 @@
1
- UnexpectedKeyword.new.foo(foo: 123, bar: :bar)
@@ -1 +0,0 @@
1
- { foo: :bar, **123 }
@@ -1,6 +0,0 @@
1
- class UnexpectedYield
2
- # @type method foo: () -> void
3
- def foo
4
- yield
5
- end
6
- end
@@ -1,7 +0,0 @@
1
- class UnknownConstantAssigned
2
- FOO = 123
3
-
4
- FOO::BAR = 123
5
-
6
- ::FOO = :foo
7
- end
@@ -1 +0,0 @@
1
- 1 + ""
@@ -1,2 +0,0 @@
1
- class <<[1, ""].sample
2
- end
@@ -1,8 +0,0 @@
1
- all_sigs = Pathname.glob("*.rbs")
2
-
3
- all_sigs.each do |path|
4
- target path.basename(".rbs").to_s.to_sym do
5
- signature path.to_s
6
- configure_code_diagnostics(Steep::Diagnostic::Ruby.all_error)
7
- end
8
- end
@@ -1,20 +0,0 @@
1
- class DuplicatedMethodDefinitionError
2
- def foo: () -> void
3
- def foo: () -> Integer
4
-
5
- interface _Hello
6
- def f: () -> void
7
-
8
- def f: () -> void
9
- end
10
-
11
- interface _A
12
- def g: () -> void
13
- end
14
-
15
- class A
16
- include _A
17
-
18
- def g: () -> String
19
- end
20
- end
@@ -1,7 +0,0 @@
1
- class GenericParameterMismatchError
2
- class Foo[A]
3
- end
4
-
5
- class Foo[A, B]
6
- end
7
- end
@@ -1,2 +0,0 @@
1
- class InheritModule < Kernel
2
- end
@@ -1,3 +0,0 @@
1
- class InvalidMethodOverload
2
- def foo: () -> void | ...
3
- end
@@ -1,7 +0,0 @@
1
- class InvalidTypeApplication
2
- type foo = Integer[3]
3
-
4
- type bar = Array[1, 2]
5
-
6
- type baz = Hash
7
- end
@@ -1,3 +0,0 @@
1
- class InvalidVarianceAnnotationError[out A]
2
- def foo: (A) -> void
3
- end
@@ -1,6 +0,0 @@
1
- class Foo
2
- end
3
-
4
- class Bar
5
- include Foo
6
- end
@@ -1,3 +0,0 @@
1
- module NonregularTypeAlias
2
- type t[T, S] = ^() -> t[String, Integer]
3
- end