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
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: 1.6.0
4
+ version: 1.7.0.dev.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: 2023-11-09 00:00:00.000000000 Z
11
+ date: 2024-02-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: parser
@@ -253,6 +253,7 @@ files:
253
253
  - bin/setup
254
254
  - bin/steep
255
255
  - bin/steep-prof
256
+ - doc/narrowing.md
256
257
  - exe/steep
257
258
  - gemfile_steep/Gemfile
258
259
  - gemfile_steep/Gemfile.lock
@@ -265,6 +266,7 @@ files:
265
266
  - lib/steep/ast/annotation.rb
266
267
  - lib/steep/ast/annotation/collection.rb
267
268
  - lib/steep/ast/builtin.rb
269
+ - lib/steep/ast/ignore.rb
268
270
  - lib/steep/ast/node/type_application.rb
269
271
  - lib/steep/ast/node/type_assertion.rb
270
272
  - lib/steep/ast/types/any.rb
@@ -353,6 +355,7 @@ files:
353
355
  - lib/steep/services/type_name_completion.rb
354
356
  - lib/steep/signature/validator.rb
355
357
  - lib/steep/source.rb
358
+ - lib/steep/source/ignore_ranges.rb
356
359
  - lib/steep/subtyping/cache.rb
357
360
  - lib/steep/subtyping/check.rb
358
361
  - lib/steep/subtyping/constraints.rb
@@ -362,6 +365,7 @@ files:
362
365
  - lib/steep/thread_waiter.rb
363
366
  - lib/steep/type_construction.rb
364
367
  - lib/steep/type_inference/block_params.rb
368
+ - lib/steep/type_inference/case_when.rb
365
369
  - lib/steep/type_inference/constant_env.rb
366
370
  - lib/steep/type_inference/context.rb
367
371
  - lib/steep/type_inference/context_array.rb
@@ -393,11 +397,13 @@ files:
393
397
  - sig/shims/parser/source/range.rbs
394
398
  - sig/shims/string.rbs
395
399
  - sig/shims/tagged_logging.rbs
400
+ - sig/shims/yaml.rbs
396
401
  - sig/steep.rbs
397
402
  - sig/steep/annotation_parser.rbs
398
403
  - sig/steep/ast/annotation.rbs
399
404
  - sig/steep/ast/annotation/collection.rbs
400
405
  - sig/steep/ast/builtin.rbs
406
+ - sig/steep/ast/ignore.rbs
401
407
  - sig/steep/ast/node/type_application.rbs
402
408
  - sig/steep/ast/node/type_assertion.rbs
403
409
  - sig/steep/ast/types.rbs
@@ -487,6 +493,7 @@ files:
487
493
  - sig/steep/services/type_name_completion.rbs
488
494
  - sig/steep/signature/validator.rbs
489
495
  - sig/steep/source.rbs
496
+ - sig/steep/source/ignore_ranges.rbs
490
497
  - sig/steep/subtyping/cache.rbs
491
498
  - sig/steep/subtyping/check.rbs
492
499
  - sig/steep/subtyping/constraints.rbs
@@ -496,6 +503,7 @@ files:
496
503
  - sig/steep/thread_waiter.rbs
497
504
  - sig/steep/type_construction.rbs
498
505
  - sig/steep/type_inference/block_params.rbs
506
+ - sig/steep/type_inference/case_when.rbs
499
507
  - sig/steep/type_inference/constant_env.rbs
500
508
  - sig/steep/type_inference/context.rbs
501
509
  - sig/steep/type_inference/context_array.rbs
@@ -507,261 +515,6 @@ files:
507
515
  - sig/steep/type_inference/type_env.rbs
508
516
  - sig/steep/type_inference/type_env_builder.rbs
509
517
  - sig/steep/typing.rbs
510
- - smoke/alias/Steepfile
511
- - smoke/alias/a.rb
512
- - smoke/alias/a.rbs
513
- - smoke/alias/b.rb
514
- - smoke/alias/c.rb
515
- - smoke/alias/test_expectations.yml
516
- - smoke/and/Steepfile
517
- - smoke/and/a.rb
518
- - smoke/and/test_expectations.yml
519
- - smoke/array/Steepfile
520
- - smoke/array/a.rb
521
- - smoke/array/b.rb
522
- - smoke/array/c.rb
523
- - smoke/array/test_expectations.yml
524
- - smoke/block/Steepfile
525
- - smoke/block/a.rb
526
- - smoke/block/a.rbs
527
- - smoke/block/b.rb
528
- - smoke/block/c.rb
529
- - smoke/block/c.rbs
530
- - smoke/block/d.rb
531
- - smoke/block/e.rb
532
- - smoke/block/e.rbs
533
- - smoke/block/test_expectations.yml
534
- - smoke/case/Steepfile
535
- - smoke/case/a.rb
536
- - smoke/case/test_expectations.yml
537
- - smoke/class/Steepfile
538
- - smoke/class/a.rb
539
- - smoke/class/a.rbs
540
- - smoke/class/b.rb
541
- - smoke/class/c.rb
542
- - smoke/class/f.rb
543
- - smoke/class/g.rb
544
- - smoke/class/h.rb
545
- - smoke/class/h.rbs
546
- - smoke/class/i.rb
547
- - smoke/class/i.rbs
548
- - smoke/class/test_expectations.yml
549
- - smoke/compact/Steepfile
550
- - smoke/compact/a.rb
551
- - smoke/compact/a.rbs
552
- - smoke/compact/b.rb
553
- - smoke/compact/test_expectations.yml
554
- - smoke/const/Steepfile
555
- - smoke/const/a.rb
556
- - smoke/const/b.rb
557
- - smoke/const/b.rbs
558
- - smoke/const/test_expectations.yml
559
- - smoke/diagnostics-rbs-duplicated/Steepfile
560
- - smoke/diagnostics-rbs-duplicated/a.rbs
561
- - smoke/diagnostics-rbs-duplicated/test_expectations.yml
562
- - smoke/diagnostics-rbs/Steepfile
563
- - smoke/diagnostics-rbs/duplicated-method-definition.rbs
564
- - smoke/diagnostics-rbs/generic-parameter-mismatch.rbs
565
- - smoke/diagnostics-rbs/inherit-module.rbs
566
- - smoke/diagnostics-rbs/invalid-method-overload.rbs
567
- - smoke/diagnostics-rbs/invalid-type-application.rbs
568
- - smoke/diagnostics-rbs/invalid_variance_annotation.rbs
569
- - smoke/diagnostics-rbs/mixin-class-error.rbs
570
- - smoke/diagnostics-rbs/nonregular-type-alias.rbs
571
- - smoke/diagnostics-rbs/recursive-alias.rbs
572
- - smoke/diagnostics-rbs/recursive-class.rbs
573
- - smoke/diagnostics-rbs/recursive-type-alias.rbs
574
- - smoke/diagnostics-rbs/superclass-mismatch.rbs
575
- - smoke/diagnostics-rbs/test_expectations.yml
576
- - smoke/diagnostics-rbs/unknown-method-alias.rbs
577
- - smoke/diagnostics-rbs/unknown-type-name-2.rbs
578
- - smoke/diagnostics-rbs/unknown-type-name.rbs
579
- - smoke/diagnostics-ruby-unsat/Steepfile
580
- - smoke/diagnostics-ruby-unsat/a.rbs
581
- - smoke/diagnostics-ruby-unsat/test_expectations.yml
582
- - smoke/diagnostics-ruby-unsat/unsatisfiable_constraint.rb
583
- - smoke/diagnostics/Steepfile
584
- - smoke/diagnostics/a.rbs
585
- - smoke/diagnostics/argument_type_mismatch.rb
586
- - smoke/diagnostics/block_body_type_mismatch.rb
587
- - smoke/diagnostics/block_type_mismatch.rb
588
- - smoke/diagnostics/break_type_mismatch.rb
589
- - smoke/diagnostics/different_method_parameter_kind.rb
590
- - smoke/diagnostics/else_on_exhaustive_case.rb
591
- - smoke/diagnostics/incompatible_annotation.rb
592
- - smoke/diagnostics/incompatible_argument.rb
593
- - smoke/diagnostics/incompatible_assignment.rb
594
- - smoke/diagnostics/method_arity_mismatch.rb
595
- - smoke/diagnostics/method_body_type_mismatch.rb
596
- - smoke/diagnostics/method_definition_missing.rb
597
- - smoke/diagnostics/method_parameter_mismatch.rb
598
- - smoke/diagnostics/method_return_type_annotation_mismatch.rb
599
- - smoke/diagnostics/missing_keyword.rb
600
- - smoke/diagnostics/no_method.rb
601
- - smoke/diagnostics/proc_type_expected.rb
602
- - smoke/diagnostics/required_block_missing.rb
603
- - smoke/diagnostics/return_type_mismatch.rb
604
- - smoke/diagnostics/test_expectations.yml
605
- - smoke/diagnostics/unexpected_block_given.rb
606
- - smoke/diagnostics/unexpected_dynamic_method.rb
607
- - smoke/diagnostics/unexpected_jump.rb
608
- - smoke/diagnostics/unexpected_jump_value.rb
609
- - smoke/diagnostics/unexpected_keyword.rb
610
- - smoke/diagnostics/unexpected_splat.rb
611
- - smoke/diagnostics/unexpected_yield.rb
612
- - smoke/diagnostics/unknown_constant_assigned.rb
613
- - smoke/diagnostics/unresolved_overloading.rb
614
- - smoke/diagnostics/unsupported_syntax.rb
615
- - smoke/dstr/Steepfile
616
- - smoke/dstr/a.rb
617
- - smoke/dstr/test_expectations.yml
618
- - smoke/ensure/Steepfile
619
- - smoke/ensure/a.rb
620
- - smoke/ensure/test_expectations.yml
621
- - smoke/enumerator/Steepfile
622
- - smoke/enumerator/a.rb
623
- - smoke/enumerator/b.rb
624
- - smoke/enumerator/test_expectations.yml
625
- - smoke/extension/Steepfile
626
- - smoke/extension/a.rb
627
- - smoke/extension/a.rbs
628
- - smoke/extension/b.rb
629
- - smoke/extension/c.rb
630
- - smoke/extension/d.rb
631
- - smoke/extension/e.rb
632
- - smoke/extension/e.rbs
633
- - smoke/extension/f.rb
634
- - smoke/extension/f.rbs
635
- - smoke/extension/test_expectations.yml
636
- - smoke/hash/Steepfile
637
- - smoke/hash/a.rb
638
- - smoke/hash/a.rbs
639
- - smoke/hash/b.rb
640
- - smoke/hash/c.rb
641
- - smoke/hash/d.rb
642
- - smoke/hash/e.rb
643
- - smoke/hash/e.rbs
644
- - smoke/hash/f.rb
645
- - smoke/hash/test_expectations.yml
646
- - smoke/hello/Steepfile
647
- - smoke/hello/hello.rb
648
- - smoke/hello/hello.rbs
649
- - smoke/hello/test_expectations.yml
650
- - smoke/if/Steepfile
651
- - smoke/if/a.rb
652
- - smoke/if/test_expectations.yml
653
- - smoke/implements/Steepfile
654
- - smoke/implements/a.rb
655
- - smoke/implements/a.rbs
656
- - smoke/implements/b.rb
657
- - smoke/implements/b.rbs
658
- - smoke/implements/test_expectations.yml
659
- - smoke/initialize/Steepfile
660
- - smoke/initialize/a.rb
661
- - smoke/initialize/a.rbs
662
- - smoke/initialize/test_expectations.yml
663
- - smoke/integer/Steepfile
664
- - smoke/integer/a.rb
665
- - smoke/integer/test_expectations.yml
666
- - smoke/interface/Steepfile
667
- - smoke/interface/a.rb
668
- - smoke/interface/a.rbs
669
- - smoke/interface/test_expectations.yml
670
- - smoke/kwbegin/Steepfile
671
- - smoke/kwbegin/a.rb
672
- - smoke/kwbegin/test_expectations.yml
673
- - smoke/lambda/Steepfile
674
- - smoke/lambda/a.rb
675
- - smoke/lambda/test_expectations.yml
676
- - smoke/literal/Steepfile
677
- - smoke/literal/a.rb
678
- - smoke/literal/b.rb
679
- - smoke/literal/literal_methods.rbs
680
- - smoke/literal/test_expectations.yml
681
- - smoke/map/Steepfile
682
- - smoke/map/a.rb
683
- - smoke/map/test_expectations.yml
684
- - smoke/method/Steepfile
685
- - smoke/method/a.rb
686
- - smoke/method/a.rbs
687
- - smoke/method/b.rb
688
- - smoke/method/c.rb
689
- - smoke/method/d.rb
690
- - smoke/method/d.rbs
691
- - smoke/method/test_expectations.yml
692
- - smoke/module/Steepfile
693
- - smoke/module/a.rb
694
- - smoke/module/a.rbs
695
- - smoke/module/b.rb
696
- - smoke/module/c.rb
697
- - smoke/module/d.rb
698
- - smoke/module/e.rb
699
- - smoke/module/f.rb
700
- - smoke/module/test_expectations.yml
701
- - smoke/regexp/Steepfile
702
- - smoke/regexp/a.rb
703
- - smoke/regexp/b.rb
704
- - smoke/regexp/test_expectations.yml
705
- - smoke/regression/Steepfile
706
- - smoke/regression/array.rb
707
- - smoke/regression/block_param_split.rb
708
- - smoke/regression/block_param_split.rbs
709
- - smoke/regression/empty_yield.rb
710
- - smoke/regression/empty_yield.rbs
711
- - smoke/regression/enumerator_product.rb
712
- - smoke/regression/fun.rb
713
- - smoke/regression/fun.rbs
714
- - smoke/regression/hash.rb
715
- - smoke/regression/hello world.rb
716
- - smoke/regression/issue_328.rb
717
- - smoke/regression/issue_328.rbs
718
- - smoke/regression/issue_332.rb
719
- - smoke/regression/issue_332.rbs
720
- - smoke/regression/issue_372.rb
721
- - smoke/regression/issue_372.rbs
722
- - smoke/regression/lambda.rb
723
- - smoke/regression/masgn.rb
724
- - smoke/regression/poly_new.rb
725
- - smoke/regression/poly_new.rbs
726
- - smoke/regression/range.rb
727
- - smoke/regression/set_divide.rb
728
- - smoke/regression/test_expectations.yml
729
- - smoke/regression/thread.rb
730
- - smoke/rescue/Steepfile
731
- - smoke/rescue/a.rb
732
- - smoke/rescue/test_expectations.yml
733
- - smoke/self/Steepfile
734
- - smoke/self/a.rb
735
- - smoke/self/a.rbs
736
- - smoke/self/test_expectations.yml
737
- - smoke/skip/Steepfile
738
- - smoke/skip/skip.rb
739
- - smoke/skip/test_expectations.yml
740
- - smoke/stdout/Steepfile
741
- - smoke/stdout/a.rb
742
- - smoke/stdout/a.rbs
743
- - smoke/stdout/test_expectations.yml
744
- - smoke/super/Steepfile
745
- - smoke/super/a.rb
746
- - smoke/super/a.rbs
747
- - smoke/super/test_expectations.yml
748
- - smoke/toplevel/Steepfile
749
- - smoke/toplevel/a.rb
750
- - smoke/toplevel/a.rbs
751
- - smoke/toplevel/test_expectations.yml
752
- - smoke/tsort/Steepfile
753
- - smoke/tsort/a.rb
754
- - smoke/tsort/test_expectations.yml
755
- - smoke/type_case/Steepfile
756
- - smoke/type_case/a.rb
757
- - smoke/type_case/test_expectations.yml
758
- - smoke/unexpected/Steepfile
759
- - smoke/unexpected/test_expectations.yml
760
- - smoke/unexpected/unexpected.rbs
761
- - smoke/yield/Steepfile
762
- - smoke/yield/a.rb
763
- - smoke/yield/b.rb
764
- - smoke/yield/test_expectations.yml
765
518
  - steep.gemspec
766
519
  homepage: https://github.com/soutaro/steep
767
520
  licenses:
@@ -785,7 +538,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
785
538
  - !ruby/object:Gem::Version
786
539
  version: '0'
787
540
  requirements: []
788
- rubygems_version: 3.4.10
541
+ rubygems_version: 3.5.3
789
542
  signing_key:
790
543
  specification_version: 4
791
544
  summary: Gradual Typing for Ruby
@@ -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/alias/a.rb DELETED
@@ -1,16 +0,0 @@
1
- # @type var x: foo
2
- x = ""
3
-
4
- x + 123
5
-
6
- # @type var y: bar
7
- y = x
8
- y = []
9
-
10
- # @type var z: Symbol
11
- case x
12
- when String
13
- z = x
14
- when Integer
15
- z = x
16
- end
data/smoke/alias/a.rbs DELETED
@@ -1,10 +0,0 @@
1
- type foo = String | Integer
2
- type bar = Array[Integer] | foo
3
- type baz = [String, Symbol]
4
-
5
- type name = :foo | :bar
6
-
7
- class AliasMethodArg
8
- def foo: (name) -> Integer
9
- | (Symbol) -> String
10
- end
data/smoke/alias/b.rb DELETED
@@ -1,6 +0,0 @@
1
- # @type var a: baz
2
-
3
- a = ["", :foo]
4
-
5
- # @type var x: Integer
6
- x = a[0]
data/smoke/alias/c.rb DELETED
@@ -1,8 +0,0 @@
1
- # @type var x: String
2
-
3
- x = AliasMethodArg.new.foo(:foo)
4
-
5
- # @type var name: name
6
- name = :bar
7
-
8
- x = AliasMethodArg.new.foo(name)
@@ -1,96 +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: 7
11
- severity: ERROR
12
- message: |-
13
- Cannot find compatible overloading of method `+` of type `(::String | ::Integer)`
14
- Method types:
15
- def +: ((::string & ::Integer)) -> (::String | ::Integer)
16
- | ((::string & ::Float)) -> (::String | ::Float)
17
- | ((::string & ::Rational)) -> (::String | ::Rational)
18
- | ((::string & ::Complex)) -> (::String | ::Complex)
19
- code: Ruby::UnresolvedOverloading
20
- - range:
21
- start:
22
- line: 13
23
- character: 2
24
- end:
25
- line: 13
26
- character: 7
27
- severity: ERROR
28
- message: |-
29
- Cannot assign a value of type `::String` to a variable of type `::Symbol`
30
- ::String <: ::Symbol
31
- ::Object <: ::Symbol
32
- ::BasicObject <: ::Symbol
33
- code: Ruby::IncompatibleAssignment
34
- - range:
35
- start:
36
- line: 15
37
- character: 2
38
- end:
39
- line: 15
40
- character: 7
41
- severity: ERROR
42
- message: |-
43
- Cannot assign a value of type `::Integer` to a variable of type `::Symbol`
44
- ::Integer <: ::Symbol
45
- ::Numeric <: ::Symbol
46
- ::Object <: ::Symbol
47
- ::BasicObject <: ::Symbol
48
- code: Ruby::IncompatibleAssignment
49
- - file: b.rb
50
- diagnostics:
51
- - range:
52
- start:
53
- line: 6
54
- character: 0
55
- end:
56
- line: 6
57
- character: 8
58
- severity: ERROR
59
- message: |-
60
- Cannot assign a value of type `::String` to a variable of type `::Integer`
61
- ::String <: ::Integer
62
- ::Object <: ::Integer
63
- ::BasicObject <: ::Integer
64
- code: Ruby::IncompatibleAssignment
65
- - file: c.rb
66
- diagnostics:
67
- - range:
68
- start:
69
- line: 3
70
- character: 0
71
- end:
72
- line: 3
73
- character: 32
74
- severity: ERROR
75
- message: |-
76
- Cannot assign a value of type `::Integer` to a variable of type `::String`
77
- ::Integer <: ::String
78
- ::Numeric <: ::String
79
- ::Object <: ::String
80
- ::BasicObject <: ::String
81
- code: Ruby::IncompatibleAssignment
82
- - range:
83
- start:
84
- line: 8
85
- character: 0
86
- end:
87
- line: 8
88
- character: 32
89
- severity: ERROR
90
- message: |-
91
- Cannot assign a value of type `::Integer` to a variable of type `::String`
92
- ::Integer <: ::String
93
- ::Numeric <: ::String
94
- ::Object <: ::String
95
- ::BasicObject <: ::String
96
- code: Ruby::IncompatibleAssignment
data/smoke/and/Steepfile DELETED
@@ -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/and/a.rb DELETED
@@ -1,8 +0,0 @@
1
- # @type var b: String
2
- # @type var c: ::Integer
3
-
4
- a = ["foo"].sample
5
-
6
- b = a && a.to_str
7
-
8
- c = a && a.to_str
@@ -1,29 +0,0 @@
1
- ---
2
- - file: a.rb
3
- diagnostics:
4
- - range:
5
- start:
6
- line: 6
7
- character: 0
8
- end:
9
- line: 6
10
- character: 17
11
- severity: ERROR
12
- message: |-
13
- Cannot assign a value of type `(nil | ::String)` to a variable of type `::String`
14
- (nil | ::String) <: ::String
15
- nil <: ::String
16
- code: Ruby::IncompatibleAssignment
17
- - range:
18
- start:
19
- line: 8
20
- character: 0
21
- end:
22
- line: 8
23
- character: 17
24
- severity: ERROR
25
- message: |-
26
- Cannot assign a value of type `(nil | ::String)` to a variable of type `::Integer`
27
- (nil | ::String) <: ::Integer
28
- nil <: ::Integer
29
- 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/array/a.rb DELETED
@@ -1,18 +0,0 @@
1
- # @type var a: Array[Integer]
2
-
3
- a = []
4
- a[1] = 3
5
-
6
- a[2] = "foo"
7
-
8
- # @type var i: Integer
9
- i = a[0]
10
-
11
- # @type var s: String
12
- s = a[1]
13
-
14
-
15
- b = ["a", "b", "c"]
16
-
17
- s = b[0]
18
- i = b[1]
data/smoke/array/b.rb DELETED
@@ -1,12 +0,0 @@
1
- x = ""
2
- y = 1
3
-
4
- x = y
5
- y = x
6
-
7
- # @type var a: Array[Integer]
8
- # @type var b: Array[String]
9
-
10
- a = []
11
- b = a
12
- a = b
data/smoke/array/c.rb DELETED
@@ -1,6 +0,0 @@
1
- # @type var x: Array[String?]
2
-
3
- x = ["foo"]
4
- x = [nil]
5
-
6
- x = [1]
@@ -1,103 +0,0 @@
1
- ---
2
- - file: a.rb
3
- diagnostics:
4
- - range:
5
- start:
6
- line: 6
7
- character: 0
8
- end:
9
- line: 6
10
- character: 12
11
- severity: ERROR
12
- message: |-
13
- Cannot find compatible overloading of method `[]=` of type `::Array[::Integer]`
14
- Method types:
15
- def []=: (::int, ::Integer) -> ::Integer
16
- | (::int, ::int, ::Integer) -> ::Integer
17
- | (::int, ::int, ::Array[::Integer]) -> ::Array[::Integer]
18
- | (::int, ::int, nil) -> nil
19
- | (::Range[(::Integer | nil)], ::Integer) -> ::Integer
20
- | (::Range[(::Integer | nil)], ::Array[::Integer]) -> ::Array[::Integer]
21
- | (::Range[(::Integer | nil)], nil) -> nil
22
- code: Ruby::UnresolvedOverloading
23
- - range:
24
- start:
25
- line: 12
26
- character: 0
27
- end:
28
- line: 12
29
- character: 8
30
- severity: ERROR
31
- message: |-
32
- Cannot assign a value of type `::Integer` to a variable of type `::String`
33
- ::Integer <: ::String
34
- ::Numeric <: ::String
35
- ::Object <: ::String
36
- ::BasicObject <: ::String
37
- code: Ruby::IncompatibleAssignment
38
- - range:
39
- start:
40
- line: 18
41
- character: 0
42
- end:
43
- line: 18
44
- character: 8
45
- severity: ERROR
46
- message: |-
47
- Cannot assign a value of type `::String` to a variable of type `::Integer`
48
- ::String <: ::Integer
49
- ::Object <: ::Integer
50
- ::BasicObject <: ::Integer
51
- code: Ruby::IncompatibleAssignment
52
- - file: b.rb
53
- diagnostics:
54
- - range:
55
- start:
56
- line: 11
57
- character: 0
58
- end:
59
- line: 11
60
- character: 5
61
- severity: ERROR
62
- message: |-
63
- Cannot assign a value of type `::Array[::Integer]` to a variable of type `::Array[::String]`
64
- ::Array[::Integer] <: ::Array[::String]
65
- ::Integer <: ::String
66
- ::Numeric <: ::String
67
- ::Object <: ::String
68
- ::BasicObject <: ::String
69
- code: Ruby::IncompatibleAssignment
70
- - range:
71
- start:
72
- line: 12
73
- character: 0
74
- end:
75
- line: 12
76
- character: 5
77
- severity: ERROR
78
- message: |-
79
- Cannot assign a value of type `::Array[::String]` to a variable of type `::Array[::Integer]`
80
- ::Array[::String] <: ::Array[::Integer]
81
- ::String <: ::Integer
82
- ::Object <: ::Integer
83
- ::BasicObject <: ::Integer
84
- code: Ruby::IncompatibleAssignment
85
- - file: c.rb
86
- diagnostics:
87
- - range:
88
- start:
89
- line: 6
90
- character: 0
91
- end:
92
- line: 6
93
- character: 7
94
- severity: ERROR
95
- message: |-
96
- Cannot assign a value of type `::Array[::Integer]` to a variable of type `::Array[(::String | nil)]`
97
- ::Array[::Integer] <: ::Array[(::String | nil)]
98
- ::Integer <: (::String | nil)
99
- ::Integer <: ::String
100
- ::Numeric <: ::String
101
- ::Object <: ::String
102
- ::BasicObject <: ::String
103
- code: Ruby::IncompatibleAssignment