steep-relaxed 1.9.3.3

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 (165) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +13 -0
  3. data/.gitmodules +0 -0
  4. data/CHANGELOG.md +1032 -0
  5. data/LICENSE +21 -0
  6. data/README.md +260 -0
  7. data/Rakefile +227 -0
  8. data/STDGEM_DEPENDENCIES.txt +59 -0
  9. data/Steepfile +68 -0
  10. data/bin/console +14 -0
  11. data/bin/generate-diagnostics-docs.rb +112 -0
  12. data/bin/mem_graph.rb +67 -0
  13. data/bin/mem_prof.rb +102 -0
  14. data/bin/output_rebaseline.rb +34 -0
  15. data/bin/output_test.rb +60 -0
  16. data/bin/rbs +20 -0
  17. data/bin/rbs-inline +19 -0
  18. data/bin/setup +9 -0
  19. data/bin/stackprof_test.rb +19 -0
  20. data/bin/steep +19 -0
  21. data/bin/steep-check.rb +251 -0
  22. data/bin/steep-prof +16 -0
  23. data/doc/narrowing.md +195 -0
  24. data/doc/shape.md +194 -0
  25. data/exe/steep +18 -0
  26. data/guides/README.md +5 -0
  27. data/guides/src/gem-rbs-collection/gem-rbs-collection.md +126 -0
  28. data/guides/src/getting-started/getting-started.md +163 -0
  29. data/guides/src/nil-optional/nil-optional.md +195 -0
  30. data/lib/steep/annotation_parser.rb +199 -0
  31. data/lib/steep/ast/annotation/collection.rb +172 -0
  32. data/lib/steep/ast/annotation.rb +137 -0
  33. data/lib/steep/ast/builtin.rb +104 -0
  34. data/lib/steep/ast/ignore.rb +148 -0
  35. data/lib/steep/ast/node/type_application.rb +88 -0
  36. data/lib/steep/ast/node/type_assertion.rb +81 -0
  37. data/lib/steep/ast/types/any.rb +35 -0
  38. data/lib/steep/ast/types/boolean.rb +45 -0
  39. data/lib/steep/ast/types/bot.rb +35 -0
  40. data/lib/steep/ast/types/class.rb +43 -0
  41. data/lib/steep/ast/types/factory.rb +557 -0
  42. data/lib/steep/ast/types/helper.rb +40 -0
  43. data/lib/steep/ast/types/instance.rb +42 -0
  44. data/lib/steep/ast/types/intersection.rb +93 -0
  45. data/lib/steep/ast/types/literal.rb +59 -0
  46. data/lib/steep/ast/types/logic.rb +84 -0
  47. data/lib/steep/ast/types/name.rb +128 -0
  48. data/lib/steep/ast/types/nil.rb +41 -0
  49. data/lib/steep/ast/types/proc.rb +117 -0
  50. data/lib/steep/ast/types/record.rb +79 -0
  51. data/lib/steep/ast/types/self.rb +43 -0
  52. data/lib/steep/ast/types/shared_instance.rb +11 -0
  53. data/lib/steep/ast/types/top.rb +35 -0
  54. data/lib/steep/ast/types/tuple.rb +60 -0
  55. data/lib/steep/ast/types/union.rb +97 -0
  56. data/lib/steep/ast/types/var.rb +65 -0
  57. data/lib/steep/ast/types/void.rb +35 -0
  58. data/lib/steep/cli.rb +401 -0
  59. data/lib/steep/diagnostic/deprecated/else_on_exhaustive_case.rb +20 -0
  60. data/lib/steep/diagnostic/deprecated/unknown_constant_assigned.rb +28 -0
  61. data/lib/steep/diagnostic/helper.rb +18 -0
  62. data/lib/steep/diagnostic/lsp_formatter.rb +78 -0
  63. data/lib/steep/diagnostic/result_printer2.rb +48 -0
  64. data/lib/steep/diagnostic/ruby.rb +1221 -0
  65. data/lib/steep/diagnostic/signature.rb +570 -0
  66. data/lib/steep/drivers/annotations.rb +52 -0
  67. data/lib/steep/drivers/check.rb +339 -0
  68. data/lib/steep/drivers/checkfile.rb +210 -0
  69. data/lib/steep/drivers/diagnostic_printer.rb +105 -0
  70. data/lib/steep/drivers/init.rb +66 -0
  71. data/lib/steep/drivers/langserver.rb +56 -0
  72. data/lib/steep/drivers/print_project.rb +113 -0
  73. data/lib/steep/drivers/stats.rb +203 -0
  74. data/lib/steep/drivers/utils/driver_helper.rb +143 -0
  75. data/lib/steep/drivers/utils/jobs_option.rb +26 -0
  76. data/lib/steep/drivers/vendor.rb +27 -0
  77. data/lib/steep/drivers/watch.rb +194 -0
  78. data/lib/steep/drivers/worker.rb +58 -0
  79. data/lib/steep/equatable.rb +23 -0
  80. data/lib/steep/expectations.rb +228 -0
  81. data/lib/steep/index/rbs_index.rb +350 -0
  82. data/lib/steep/index/signature_symbol_provider.rb +185 -0
  83. data/lib/steep/index/source_index.rb +167 -0
  84. data/lib/steep/interface/block.rb +103 -0
  85. data/lib/steep/interface/builder.rb +843 -0
  86. data/lib/steep/interface/function.rb +1090 -0
  87. data/lib/steep/interface/method_type.rb +330 -0
  88. data/lib/steep/interface/shape.rb +239 -0
  89. data/lib/steep/interface/substitution.rb +159 -0
  90. data/lib/steep/interface/type_param.rb +115 -0
  91. data/lib/steep/located_value.rb +20 -0
  92. data/lib/steep/method_name.rb +42 -0
  93. data/lib/steep/module_helper.rb +24 -0
  94. data/lib/steep/node_helper.rb +273 -0
  95. data/lib/steep/path_helper.rb +30 -0
  96. data/lib/steep/project/dsl.rb +268 -0
  97. data/lib/steep/project/group.rb +31 -0
  98. data/lib/steep/project/options.rb +63 -0
  99. data/lib/steep/project/pattern.rb +59 -0
  100. data/lib/steep/project/target.rb +92 -0
  101. data/lib/steep/project.rb +78 -0
  102. data/lib/steep/rake_task.rb +132 -0
  103. data/lib/steep/range_extension.rb +29 -0
  104. data/lib/steep/server/base_worker.rb +97 -0
  105. data/lib/steep/server/change_buffer.rb +73 -0
  106. data/lib/steep/server/custom_methods.rb +77 -0
  107. data/lib/steep/server/delay_queue.rb +45 -0
  108. data/lib/steep/server/interaction_worker.rb +492 -0
  109. data/lib/steep/server/lsp_formatter.rb +455 -0
  110. data/lib/steep/server/master.rb +922 -0
  111. data/lib/steep/server/target_group_files.rb +205 -0
  112. data/lib/steep/server/type_check_controller.rb +366 -0
  113. data/lib/steep/server/type_check_worker.rb +303 -0
  114. data/lib/steep/server/work_done_progress.rb +64 -0
  115. data/lib/steep/server/worker_process.rb +176 -0
  116. data/lib/steep/services/completion_provider.rb +802 -0
  117. data/lib/steep/services/content_change.rb +61 -0
  118. data/lib/steep/services/file_loader.rb +74 -0
  119. data/lib/steep/services/goto_service.rb +441 -0
  120. data/lib/steep/services/hover_provider/rbs.rb +88 -0
  121. data/lib/steep/services/hover_provider/ruby.rb +221 -0
  122. data/lib/steep/services/hover_provider/singleton_methods.rb +20 -0
  123. data/lib/steep/services/path_assignment.rb +46 -0
  124. data/lib/steep/services/signature_help_provider.rb +202 -0
  125. data/lib/steep/services/signature_service.rb +428 -0
  126. data/lib/steep/services/stats_calculator.rb +68 -0
  127. data/lib/steep/services/type_check_service.rb +394 -0
  128. data/lib/steep/services/type_name_completion.rb +236 -0
  129. data/lib/steep/signature/validator.rb +651 -0
  130. data/lib/steep/source/ignore_ranges.rb +69 -0
  131. data/lib/steep/source.rb +691 -0
  132. data/lib/steep/subtyping/cache.rb +30 -0
  133. data/lib/steep/subtyping/check.rb +1113 -0
  134. data/lib/steep/subtyping/constraints.rb +341 -0
  135. data/lib/steep/subtyping/relation.rb +101 -0
  136. data/lib/steep/subtyping/result.rb +324 -0
  137. data/lib/steep/subtyping/variable_variance.rb +89 -0
  138. data/lib/steep/test.rb +9 -0
  139. data/lib/steep/thread_waiter.rb +43 -0
  140. data/lib/steep/type_construction.rb +5183 -0
  141. data/lib/steep/type_inference/block_params.rb +416 -0
  142. data/lib/steep/type_inference/case_when.rb +303 -0
  143. data/lib/steep/type_inference/constant_env.rb +56 -0
  144. data/lib/steep/type_inference/context.rb +195 -0
  145. data/lib/steep/type_inference/logic_type_interpreter.rb +613 -0
  146. data/lib/steep/type_inference/method_call.rb +193 -0
  147. data/lib/steep/type_inference/method_params.rb +531 -0
  148. data/lib/steep/type_inference/multiple_assignment.rb +194 -0
  149. data/lib/steep/type_inference/send_args.rb +712 -0
  150. data/lib/steep/type_inference/type_env.rb +341 -0
  151. data/lib/steep/type_inference/type_env_builder.rb +138 -0
  152. data/lib/steep/typing.rb +321 -0
  153. data/lib/steep/version.rb +3 -0
  154. data/lib/steep.rb +369 -0
  155. data/manual/annotations.md +181 -0
  156. data/manual/ignore.md +20 -0
  157. data/manual/ruby-diagnostics.md +1879 -0
  158. data/sample/Steepfile +22 -0
  159. data/sample/lib/conference.rb +49 -0
  160. data/sample/lib/length.rb +35 -0
  161. data/sample/sig/conference.rbs +42 -0
  162. data/sample/sig/generics.rbs +15 -0
  163. data/sample/sig/length.rbs +34 -0
  164. data/steep-relaxed.gemspec +56 -0
  165. metadata +340 -0
data/CHANGELOG.md ADDED
@@ -0,0 +1,1032 @@
1
+ # CHANGELOG
2
+
3
+ ## 1.9.3 (2024-12-26)
4
+
5
+ ### Miscellaneous
6
+
7
+ * Steep 1.9.1 ([#1398](https://github.com/soutaro/steep/pull/1398))
8
+ * Update rbs ([#1443](https://github.com/soutaro/steep/pull/1443))
9
+
10
+ ## 1.9.2 (2024-12-16)
11
+
12
+ ### Type checker core
13
+
14
+ * Attach type assertion to keyword args ([#1410](https://github.com/soutaro/steep/pull/1410))
15
+
16
+ ### Miscellaneous
17
+
18
+ * deps: Add uri gem to dependencies list ([#1402](https://github.com/soutaro/steep/pull/1402))
19
+
20
+ ## 1.9.1 (2024-12-09)
21
+
22
+ ### Type checker core
23
+
24
+ * Make `implicitly-returns-nil` opt-in ([#1396](https://github.com/soutaro/steep/pull/1396))
25
+
26
+ ## 1.9.0 (2024-12-06)
27
+
28
+ ### Type checker core
29
+
30
+ * Report diagnostic on unknown record key ([#1385](https://github.com/soutaro/steep/pull/1385))
31
+ * Report annotation syntax error ([#1384](https://github.com/soutaro/steep/pull/1384))
32
+ * emit UnreachableBranch to the "void" condition ([#1356](https://github.com/soutaro/steep/pull/1356))
33
+ * Support &method(:name) call for block_pass ([#1276](https://github.com/soutaro/steep/pull/1276))
34
+ * Emit SingletonTypeMismatch when class/module mismatch ([#1274](https://github.com/soutaro/steep/pull/1274))
35
+ * refactor: Use Array#fetch instead of Array#[] to resolve type errors ([#1287](https://github.com/soutaro/steep/pull/1287))
36
+ * refactor: Use Hash#fetch instead of Hash#[] to resolve type errors ([#1286](https://github.com/soutaro/steep/pull/1286))
37
+ * Expand `array(splat(expr` node ([#1347](https://github.com/soutaro/steep/pull/1347))
38
+ * Add `UnannotatedEmptyCollection` diagnostic ([#1338](https://github.com/soutaro/steep/pull/1338))
39
+ * Update type checking strategy ([#1308](https://github.com/soutaro/steep/pull/1308))
40
+ * Fix untyped hash typing ([#1299](https://github.com/soutaro/steep/pull/1299))
41
+ * Support `implicitly-returns-nil` ([#1258](https://github.com/soutaro/steep/pull/1258))
42
+ * Fix record shape ([#1265](https://github.com/soutaro/steep/pull/1265))
43
+ * Remove unused rules ([#1238](https://github.com/soutaro/steep/pull/1238))
44
+
45
+ ### Commandline tool
46
+
47
+ * Introduces a new `target.*` syntax for everything in the target ([#1387](https://github.com/soutaro/steep/pull/1387))
48
+ * Symbolize target/group names ([#1364](https://github.com/soutaro/steep/pull/1364))
49
+ * Update Steepfile template ([#1355](https://github.com/soutaro/steep/pull/1355))
50
+ * Delete `target` from `--validate` option ([#1346](https://github.com/soutaro/steep/pull/1346))
51
+ * Install rbs collection automatically ([#1345](https://github.com/soutaro/steep/pull/1345))
52
+
53
+ ### Language server
54
+
55
+ * Add link to diagnostic manual ([#1388](https://github.com/soutaro/steep/pull/1388))
56
+ * Stop accumulating diagnostics ([#1367](https://github.com/soutaro/steep/pull/1367))
57
+ * Send server version to client ([#1341](https://github.com/soutaro/steep/pull/1341))
58
+ * Add custom methods to trigger type check manually ([#1340](https://github.com/soutaro/steep/pull/1340))
59
+ * Type check thread helpers ([#1335](https://github.com/soutaro/steep/pull/1335))
60
+ * Use `URI::RFC2396_Parser` ([#1329](https://github.com/soutaro/steep/pull/1329))
61
+ * Handle file deletion notification ([#1300](https://github.com/soutaro/steep/pull/1300))
62
+ * Refactor communication between master and type check worker ([#1285](https://github.com/soutaro/steep/pull/1285))
63
+ * Skip sending response to `$/steep/typecheck` request from `steep langserver` ([#1267](https://github.com/soutaro/steep/pull/1267))
64
+
65
+ ### Miscellaneous
66
+
67
+ * Use rbs-3.7 ([#1383](https://github.com/soutaro/steep/pull/1383))
68
+ * Move diagnostic docs ([#1370](https://github.com/soutaro/steep/pull/1370))
69
+ * Add anchor ([#1359](https://github.com/soutaro/steep/pull/1359))
70
+ * Update example to not use `^` as a hash function ([#1360](https://github.com/soutaro/steep/pull/1360))
71
+ * doc: Add diagnostics for Ruby page ([#1249](https://github.com/soutaro/steep/pull/1249))
72
+ * Update filename example in initial Steepfile ([#1230](https://github.com/soutaro/steep/pull/1230))
73
+ * docs: Add document for steep:ignore comment ([#1353](https://github.com/soutaro/steep/pull/1353))
74
+ * docs: Add document for type assertion and type application ([#1235](https://github.com/soutaro/steep/pull/1235))
75
+ * Print test names in CI for investigation ([#1354](https://github.com/soutaro/steep/pull/1354))
76
+ * Fix typo ([#1352](https://github.com/soutaro/steep/pull/1352))
77
+ * Set up type checking tests ([#1339](https://github.com/soutaro/steep/pull/1339))
78
+ * Fix typo ([#1248](https://github.com/soutaro/steep/pull/1248))
79
+
80
+ ## 1.8.3 (2024-10-29)
81
+
82
+ ### Type checker core
83
+
84
+ * Fix untyped hash typing ([#1299](https://github.com/soutaro/steep/pull/1299), Backport in [#1301](https://github.com/soutaro/steep/pull/1301))
85
+
86
+ ### Language server
87
+
88
+ * Handle file deletion notification ([#1300](https://github.com/soutaro/steep/pull/1300), Backport in [#1301](https://github.com/soutaro/steep/pull/1301))
89
+
90
+ ## 1.8.2 (2024-10-24)
91
+
92
+ ### Language server
93
+
94
+ * Ignore `didChangeWatchedFiles notification` for open files ([#1290](https://github.com/soutaro/steep/pull/1290))
95
+
96
+ ## 1.8.1 (2024-10-08)
97
+
98
+ ### Language server
99
+
100
+ * Skip sending response to `$/steep/typecheck` request from `steep langserver` ([#1268](https://github.com/soutaro/steep/pull/1268), backport [#1267](https://github.com/soutaro/steep/pull/1267))
101
+
102
+ ## 1.8.0 (2024-09-30)
103
+
104
+ ### Type checker core
105
+
106
+ * RBS validation ([#1239](https://github.com/soutaro/steep/pull/1239))
107
+ * Add special path for `Kernel#class` method ([#1229](https://github.com/soutaro/steep/pull/1229))
108
+
109
+ ## 1.8.0.pre.2 (2024-09-18)
110
+
111
+ ### Type checker core
112
+
113
+ * Support non symbol record keys ([#1227](https://github.com/soutaro/steep/pull/1227))
114
+
115
+ ## 1.8.0.pre.1 (2024-09-17)
116
+
117
+ ### Type checker core
118
+
119
+ * Fix some subtyping problems ([#1221](https://github.com/soutaro/steep/pull/1221))
120
+ * Support optional keys in record types ([#1223](https://github.com/soutaro/steep/pull/1223))
121
+ * Revert implicit generic upper bound ([#1220](https://github.com/soutaro/steep/pull/1220))
122
+ * Improve generics ([#1216](https://github.com/soutaro/steep/pull/1216))
123
+ * Delete meta data from `MethodType` and `Types::*` ([#1201](https://github.com/soutaro/steep/pull/1201))
124
+ * Delete `ContextArray` ([#1199](https://github.com/soutaro/steep/pull/1199))
125
+ * Fix shape calculation error ([#1197](https://github.com/soutaro/steep/pull/1197))
126
+ * Skip `#:` syntax in `Data.define` and `Struct.new` ([#1196](https://github.com/soutaro/steep/pull/1196))
127
+ * Support literals for Rational and Complex ([#1178](https://github.com/soutaro/steep/pull/1178))
128
+ * Ignore type assertions on arguments/receiver on `def`/`defs` ([#1179](https://github.com/soutaro/steep/pull/1179))
129
+ * Ignore `#:` annotation on `attr_*` calls ([#1176](https://github.com/soutaro/steep/pull/1176))
130
+
131
+ ### Commandline tool
132
+
133
+ * Improve performance when there are many files ([#1184](https://github.com/soutaro/steep/pull/1184))
134
+ * Fix type errors ([#1183](https://github.com/soutaro/steep/pull/1183))
135
+
136
+ ### Language server
137
+
138
+ * Make type checking a LSP request, not a LSP notification ([#1218](https://github.com/soutaro/steep/pull/1218))
139
+ * No `timeout: nil` ([#1217](https://github.com/soutaro/steep/pull/1217))
140
+ * Print `loading project` message via LSP ([#1213](https://github.com/soutaro/steep/pull/1213))
141
+ * Load files in main process ([#1206](https://github.com/soutaro/steep/pull/1206))
142
+
143
+ ### Miscellaneous
144
+
145
+ * Drop Ruby 3.0 ([#1225](https://github.com/soutaro/steep/pull/1225))
146
+ * Add `bin/steep-check` for profiling ([#1198](https://github.com/soutaro/steep/pull/1198))
147
+
148
+ ## 1.7.1 (2024-06-12)
149
+
150
+ ### Type checker core
151
+
152
+ * Fix subtyping issues ([#1165](https://github.com/soutaro/steep/pull/1165))
153
+
154
+ ## 1.7.0 (2024-06-07)
155
+
156
+ ### Type checker core
157
+
158
+ * Implement untyped function params ([#1101](https://github.com/soutaro/steep/pull/1101))
159
+ * Fix method call type narrowing with`||` operator ([#1085](https://github.com/soutaro/steep/pull/1085))
160
+ * Refactor `Interface::Builder` ([#1081](https://github.com/soutaro/steep/pull/1081))
161
+ * Fix UnexpectedError with unnamed arguments ([#1041](https://github.com/soutaro/steep/pull/1041))
162
+ * Abort if subtyping fails to (possible) infinite loop ([#1055](https://github.com/soutaro/steep/pull/1055))
163
+ * Ignore diagnostics by `steep:ignore` comment ([#1034](https://github.com/soutaro/steep/pull/1034))
164
+ * Make defined? accept any type ([#1031](https://github.com/soutaro/steep/pull/1031))
165
+ * Refactor case-when syntax ([#999](https://github.com/soutaro/steep/pull/999))
166
+ * Update `Steep::Subtyping::Check#check` types ([#972](https://github.com/soutaro/steep/pull/972))
167
+
168
+ ### Commandline tool
169
+
170
+ * Improve wildcard handling in pattern matching for directory paths ([#1121](https://github.com/soutaro/steep/pull/1121))
171
+ * Fix issue with wildcard expansion in FileLoader ([#1113](https://github.com/soutaro/steep/pull/1113))
172
+ * Avoid unnecessary calling `RBS::Location#to_s` on debug log ([#1092](https://github.com/soutaro/steep/pull/1092))
173
+ * Better recovery from collection problems ([#987](https://github.com/soutaro/steep/pull/987))
174
+ * Handle absolute path ([#975](https://github.com/soutaro/steep/pull/975))
175
+ * Default to check the entire current directory when there is no `Steepfile` ([#968](https://github.com/soutaro/steep/pull/968))
176
+
177
+ ### Language server
178
+
179
+ * Fix variable untyped hover issue in rescue clause ([#1147](https://github.com/soutaro/steep/pull/1147))
180
+ * Handle `$/file/reset` request in interaction worker ([#1122](https://github.com/soutaro/steep/pull/1122))
181
+ * Skip pending UI jobs ([#1035](https://github.com/soutaro/steep/pull/1035))
182
+ * Fix no method error ([#1040](https://github.com/soutaro/steep/pull/1040))
183
+ * Implement completion for comments ([#1039](https://github.com/soutaro/steep/pull/1039))
184
+ * Fix signature help ([#1038](https://github.com/soutaro/steep/pull/1038))
185
+
186
+ ### Miscellaneous
187
+
188
+ * Revise rake tasks ([#1156](https://github.com/soutaro/steep/pull/1156))
189
+ * Update `steep.gemspec` ([#1155](https://github.com/soutaro/steep/pull/1155))
190
+ * Add `Steep::RakeTask` ([#995](https://github.com/soutaro/steep/pull/995))
191
+ * Stop to distribute sig dir ([#1144](https://github.com/soutaro/steep/pull/1144))
192
+ * Update gem-rbs-collection.md ([#1127](https://github.com/soutaro/steep/pull/1127))
193
+ * Add shape docs ([#1089](https://github.com/soutaro/steep/pull/1089))
194
+ * Ignore smoke tests when packaging gem ([#962](https://github.com/soutaro/steep/pull/962))
195
+ * Fix setup for Ruby 3.3 ([#1000](https://github.com/soutaro/steep/pull/1000))
196
+
197
+ ## master
198
+
199
+ ## 1.6.0 (2023-11-09)
200
+
201
+ Nothing changed from 1.6.0.pre.4.
202
+
203
+ ## 1.6.0.pre.4 (2023-11-02)
204
+
205
+ ### Language server
206
+
207
+ * Fix LSP text synchronization problems ([#954](https://github.com/soutaro/steep/pull/954))
208
+
209
+ ## 1.6.0.pre.3 (2023-11-01)
210
+
211
+ ### Type checker core
212
+
213
+ * Object methods are moved to Kernel ([#952](https://github.com/soutaro/steep/pull/952))
214
+ * Check if `rescue` body has `bot` type ([#953](https://github.com/soutaro/steep/pull/953))
215
+
216
+ ## 1.6.0.pre.2 (2023-10-31)
217
+
218
+ ### Type checker core
219
+
220
+ * Assign types on method calls in mlhs node ([#951](https://github.com/soutaro/steep/pull/951))
221
+ * Change severity of block diagnostics ([#950](https://github.com/soutaro/steep/pull/950))
222
+
223
+ ### Commandline tool
224
+
225
+ * Match with `**` in pattern ([#949](https://github.com/soutaro/steep/pull/949))
226
+
227
+ ## 1.6.0.pre.1 (2023-10-27)
228
+
229
+ ### Type checker core
230
+
231
+ * Test if a parameter is `_` ([#946](https://github.com/soutaro/steep/pull/946))
232
+ * Let `[]=` call have correct type ([#945](https://github.com/soutaro/steep/pull/945))
233
+ * Support type narrowing by `Module#<` ([#877](https://github.com/soutaro/steep/pull/877))
234
+ * Fewer `UnresolvedOverloading` ([#941](https://github.com/soutaro/steep/pull/941))
235
+ * Fix ArgumentTypeMismatch for PublishDiagnosticsParams ([#895](https://github.com/soutaro/steep/pull/895))
236
+ * Add types for LSP::Constant::MessageType ([#894](https://github.com/soutaro/steep/pull/894))
237
+ * `nil` is not a `NilClass` ([#920](https://github.com/soutaro/steep/pull/920))
238
+ * Fix unexpected error when DifferentMethodParameterKind ([#917](https://github.com/soutaro/steep/pull/917))
239
+
240
+ ### Commandline tool
241
+
242
+ * Fix space in file path crash ([#944](https://github.com/soutaro/steep/pull/944))
243
+ * refactor: Rename driver objects to command ([#893](https://github.com/soutaro/steep/pull/893))
244
+ * Run with `--jobs=2` automatically on CI ([#924](https://github.com/soutaro/steep/pull/924))
245
+ * Fix type alias validation ([#922](https://github.com/soutaro/steep/pull/922))
246
+
247
+ ### Language server
248
+
249
+ * Let goto definition work from `UnresolvedOverloading` error calls ([#943](https://github.com/soutaro/steep/pull/943))
250
+ * Let label be whole method type in SignatureHelp ([#942](https://github.com/soutaro/steep/pull/942))
251
+ * Set up file watcher ([#936](https://github.com/soutaro/steep/pull/936))
252
+ * Reset file content on `didOpen` notification ([#935](https://github.com/soutaro/steep/pull/935))
253
+ * Start type check on change ([#934](https://github.com/soutaro/steep/pull/934))
254
+ * Better completion with module alias and `use` directives ([#923](https://github.com/soutaro/steep/pull/923))
255
+
256
+ ### Miscellaneous
257
+
258
+ * Drop 2.7 support ([#928](https://github.com/soutaro/steep/pull/928))
259
+ * Type check `subtyping/check.rb` ([#921](https://github.com/soutaro/steep/pull/921))
260
+ * Type check constant under `self` ([#908](https://github.com/soutaro/steep/pull/908))
261
+
262
+ ## 1.5.3 (2023-08-10)
263
+
264
+ ### Type checker core
265
+
266
+ * Fix type checking parenthesized conditional nodes ([#896](https://github.com/soutaro/steep/pull/896))
267
+
268
+ ## 1.5.2 (2023-07-27)
269
+
270
+ ### Type checker core
271
+
272
+ * Avoid inifinite loop in `#shape` ([#884](https://github.com/soutaro/steep/pull/884))
273
+ * Fix `nil?` typing with `untyped` receiver ([#882](https://github.com/soutaro/steep/pull/882))
274
+
275
+ ### Language server
276
+
277
+ * Avoid breaking the original source code through `CompletionProvider` ([#883](https://github.com/soutaro/steep/pull/883))
278
+
279
+ ## 1.5.1 (2023-07-20)
280
+
281
+ ### Type checker core
282
+
283
+ * Support unreachable branch detection with `elsif` ([#879](https://github.com/soutaro/steep/pull/879))
284
+ * Give an optional type hint to lhs of `||` ([#874](https://github.com/soutaro/steep/pull/874))
285
+
286
+ ### Miscellaneous
287
+
288
+ * Update steep ([#878](https://github.com/soutaro/steep/pull/878))
289
+ * Update inline type comments ([#875](https://github.com/soutaro/steep/pull/875))
290
+
291
+ ## 1.5.0 (2023-07-13)
292
+
293
+ ### Type checker core
294
+
295
+ * Fix for the case `untyped` is the proc type hint ([#868](https://github.com/soutaro/steep/pull/868))
296
+ * Type case with type variable ([#869](https://github.com/soutaro/steep/pull/869))
297
+ * Filx `nil?` unreachability detection ([#867](https://github.com/soutaro/steep/pull/867))
298
+
299
+ ### Commandline tool
300
+
301
+ * Update `#configure_code_diagnostics` type ([#873](https://github.com/soutaro/steep/pull/873))
302
+ * Update diagnostics templates ([#871](https://github.com/soutaro/steep/pull/871))
303
+ * Removed "set" from "libray" in init.rb and README ([#870](https://github.com/soutaro/steep/pull/870))
304
+
305
+ ### Language server
306
+
307
+ * Use RBS::Buffer method to calculate position ([#872](https://github.com/soutaro/steep/pull/872))
308
+
309
+ ## 1.5.0.pre.6 (2023-07-11)
310
+
311
+ ### Type checker core
312
+
313
+ * Report RBS validation errors in Ruby code ([#859](https://github.com/soutaro/steep/pull/859))
314
+ * Fix proc type assignment ([#858](https://github.com/soutaro/steep/pull/858))
315
+ * Report `UnexpectedKeywordArgument` even if no keyword param is accepted ([#856](https://github.com/soutaro/steep/pull/856))
316
+ * Unfold type alias on unwrap optional ([#855](https://github.com/soutaro/steep/pull/855))
317
+
318
+ ### Language server
319
+
320
+ * Keyword completion in block call ([#865](https://github.com/soutaro/steep/pull/865))
321
+ * Indicate the current or next argument on signature help ([#850](https://github.com/soutaro/steep/pull/850))
322
+ * Support completion for keyword arguments ([#851](https://github.com/soutaro/steep/pull/851))
323
+ * Let hover show the type of method call node ([#864](https://github.com/soutaro/steep/pull/864))
324
+ * Fix UnknownNodeError in SignatureHelp ([#863](https://github.com/soutaro/steep/pull/863))
325
+ * hover: Fix NoMethodError on generating hover for not supported files ([#853](https://github.com/soutaro/steep/pull/853))
326
+
327
+ ## 1.5.0.pre.5 (2023-07-07)
328
+
329
+ ### Type checker core
330
+
331
+ * Unreachability improvements ([#845](https://github.com/soutaro/steep/pull/845))
332
+ * Fix type inference problem ([#843](https://github.com/soutaro/steep/pull/843))
333
+
334
+ ## 1.5.0.pre.4 (2023-07-06)
335
+
336
+ ### Type checker core
337
+
338
+ * Fix unreachability test ([#842](https://github.com/soutaro/steep/pull/842))
339
+ * Make type of `case` node `untyped` rather than `nil` ([#841](https://github.com/soutaro/steep/pull/841))
340
+ * Fix `#partition_union` ([#840](https://github.com/soutaro/steep/pull/840))
341
+ * Fix type-case ([#839](https://github.com/soutaro/steep/pull/839))
342
+
343
+ ## 1.5.0.pre.3 (2023-07-05)
344
+
345
+ ### Type checker core
346
+
347
+ * Resolve type names from TypeAssertion and TypeApplication ([#836](https://github.com/soutaro/steep/pull/836))
348
+
349
+ ### Commandline tool
350
+
351
+ * Replace ElseOnExhaustiveCase by UnreachableBranch from steep/diagnostic/ruby.rb ([#833](https://github.com/soutaro/steep/pull/833))
352
+
353
+ ### Language server
354
+
355
+ * Reuse the latest result to keep SignatureHelp opened while typing ([#835](https://github.com/soutaro/steep/pull/835))
356
+
357
+ ## 1.5.0.pre.2 (2023-07-05)
358
+
359
+ ### Language server
360
+
361
+ * Fix signature help is not shown for the optional chaining (&.) ([#832](https://github.com/soutaro/steep/pull/832))
362
+
363
+ ## 1.5.0.pre.1 (2023-07-05)
364
+
365
+ ### Type checker core
366
+
367
+ * Refactor occurrence typing ([#831](https://github.com/soutaro/steep/pull/831))
368
+ * Better flow-sensitive typing ([#825](https://github.com/soutaro/steep/pull/825))
369
+ * Fix interface type inference ([#816](https://github.com/soutaro/steep/pull/816))
370
+ * Make `nth_ref` and `:back_ref` nodes optional ([#815](https://github.com/soutaro/steep/pull/815))
371
+ * Add new diagnostic for setter methods ([#809](https://github.com/soutaro/steep/pull/809))
372
+ * Better hint type handling given to lambda ([#807](https://github.com/soutaro/steep/pull/807))
373
+ * Fix type assertion parsing error ([#805](https://github.com/soutaro/steep/pull/805))
374
+ * Distribute `untyped` to block params ([#798](https://github.com/soutaro/steep/pull/798))
375
+ * Should escape underscore for method name ([#770](https://github.com/soutaro/steep/pull/770))
376
+ * Give a special typing rule to `#lambda` calls ([#811](https://github.com/soutaro/steep/pull/811))
377
+ * Support early return code using "and return" ([#828](https://github.com/soutaro/steep/pull/828))
378
+ * Validate type applications in ancestors ([#810](https://github.com/soutaro/steep/pull/810))
379
+ * Convert block-pass-arguments with `#to_proc` ([#806](https://github.com/soutaro/steep/pull/806))
380
+
381
+ ### Commandline tool
382
+
383
+ * Ensure at least one type check worker runs ([#814](https://github.com/soutaro/steep/pull/814))
384
+ * Improve worker process handling ([#801](https://github.com/soutaro/steep/pull/801))
385
+ * Add `Steep::Diagnostic::Ruby.silent` template to suppress all warnings ([#800](https://github.com/soutaro/steep/pull/800))
386
+ * Suppress `UnsupportedSyntax` warnings by default ([#799](https://github.com/soutaro/steep/pull/799))
387
+ * Infer method return types using hint ([#789](https://github.com/soutaro/steep/pull/789))
388
+ * Handling splat nodes in `super` ([#788](https://github.com/soutaro/steep/pull/788))
389
+ * Add handling splat node in tuple type checking ([#786](https://github.com/soutaro/steep/pull/786))
390
+ * Let `return` have multiple values ([#785](https://github.com/soutaro/steep/pull/785))
391
+ * Remove trailing extra space from Steepfile generated by steep init ([#774](https://github.com/soutaro/steep/pull/774))
392
+
393
+ ### Language server
394
+
395
+ * Completion in annotations ([#818](https://github.com/soutaro/steep/pull/818))
396
+ * Implement *go to type definition* ([#784](https://github.com/soutaro/steep/pull/784))
397
+ * completion: Support completion for optional chaining (&.) ([#827](https://github.com/soutaro/steep/pull/827))
398
+ * signature helps are not shown if the target code has comments ([#829](https://github.com/soutaro/steep/pull/829))
399
+
400
+ ### Miscellaneous
401
+
402
+ * Typecheck sources ([#820](https://github.com/soutaro/steep/pull/820))
403
+ * Relax concurrent-ruby requirement ([#812](https://github.com/soutaro/steep/pull/812))
404
+ * Cast from union for faster type checking ([#830](https://github.com/soutaro/steep/pull/830))
405
+
406
+ ## 1.4.0 (2023-04-25)
407
+
408
+ ### Type checker core
409
+
410
+ * Return immediately if blocks are incompatible ([#765](https://github.com/soutaro/steep/pull/765))
411
+ * Fix location of no method error ([#763](https://github.com/soutaro/steep/pull/763))
412
+ * Support `gvasgn` in assignment variants ([#762](https://github.com/soutaro/steep/pull/762))
413
+ * Set up break contexts correctly for untyped blocks ([#752](https://github.com/soutaro/steep/pull/752))
414
+ * Fix flow sensitive on `case` without condition ([#751](https://github.com/soutaro/steep/pull/751))
415
+ * Support `...` syntax ([#750](https://github.com/soutaro/steep/pull/750))
416
+ * Fix constant declaration type checking ([#738](https://github.com/soutaro/steep/pull/738))
417
+ * Fix errors caused by non-ascii variable names ([#703](https://github.com/soutaro/steep/pull/703))
418
+ * Update RBS to 3.0 ([#716](https://github.com/soutaro/steep/pull/716), [#754](https://github.com/soutaro/steep/pull/754))
419
+
420
+ ### Language server
421
+
422
+ * Implement signature help, better completion and hover ([#759](https://github.com/soutaro/steep/pull/759), [#761](https://github.com/soutaro/steep/pull/761), [#766](https://github.com/soutaro/steep/pull/766))
423
+
424
+ ### Miscellaneous
425
+
426
+ * Remove pathname from runtime_dependency ([#739](https://github.com/soutaro/steep/pull/739))
427
+ * `parallel` out, `concurrent-ruby` in ([#760](https://github.com/soutaro/steep/pull/760))
428
+
429
+ ## 1.3.2 (2023-03-17)
430
+
431
+ ### Miscellaneous
432
+
433
+ * Remove pathname from runtime_dependency ([#740](https://github.com/soutaro/steep/pull/740))
434
+
435
+ ## 1.3.1 (2023-03-08)
436
+
437
+ ### Miscellaneous
438
+
439
+ * Require rbs-2.8.x ([#732](https://github.com/soutaro/steep/pull/732))
440
+
441
+ ## 1.3.0 (2022-11-25)
442
+
443
+ ### Type checker core
444
+
445
+ * Type check types ([#676](https://github.com/soutaro/steep/pull/676))
446
+
447
+ ## 1.3.0.pre.2 (2022-11-23)
448
+
449
+ ### Type checker core
450
+
451
+ * Add missing `#level` method ([\#671](https://github.com/soutaro/steep/pull/671))
452
+ * Cache `constant_resolver` among files in a target([\#673](https://github.com/soutaro/steep/pull/673))
453
+ * Early return from type checking overloads ([\#674](https://github.com/soutaro/steep/pull/674))
454
+
455
+ ### Commandline tool
456
+
457
+ * Spawn worker processes if `--steep-command` is specified ([\#672](https://github.com/soutaro/steep/pull/672))
458
+
459
+ ## 1.3.0.pre.1 (2022-11-22)
460
+
461
+ ### Type checker core
462
+
463
+ * Add type assertion syntax ([#665](https://github.com/soutaro/steep/pull/665))
464
+ * Add type application syntax ([#670](https://github.com/soutaro/steep/pull/670))
465
+
466
+ ### Commandline tool
467
+
468
+ * Fork when available for quicker startup ([#664](https://github.com/soutaro/steep/pull/664))
469
+
470
+ ### Miscellaneous
471
+
472
+ * Fixes for some RBS errors within steep gem ([#668](https://github.com/soutaro/steep/pull/668))
473
+ * Upgrade to RBS 2.8 (pre) ([#669](https://github.com/soutaro/steep/pull/669))
474
+
475
+ ## 1.2.1 (2022-10-22)
476
+
477
+ ### Type checker core
478
+
479
+ * Fix type narrowing on case-when ([#662](https://github.com/soutaro/steep/pull/662))
480
+
481
+ ## 1.2.0 (2022-10-08)
482
+
483
+ ### Commandline tool
484
+
485
+ * Refactor `--jobs` and `--steep-command` option handling ([#654](https://github.com/soutaro/steep/pull/654))
486
+
487
+ ### Miscellaneous
488
+
489
+ * Delete debug prints ([#653](https://github.com/soutaro/steep/pull/653))
490
+ * Update RBS to 2.7.0 ([#655](https://github.com/soutaro/steep/pull/655))
491
+
492
+ ## 1.2.0.pre.1 (2022-10-06)
493
+
494
+ ### Type checker core
495
+
496
+ * Support type checking block/proc self type binding ([#637](https://github.com/soutaro/steep/pull/637))
497
+ * Type check multiple assignment on block parameters ([#641](https://github.com/soutaro/steep/pull/641), [#643](https://github.com/soutaro/steep/pull/643))
498
+ * Make more multiple assignments type check ([#630](https://github.com/soutaro/steep/pull/630))
499
+ * Refactor *shape* calculation ([#635](https://github.com/soutaro/steep/pull/635), [#649](https://github.com/soutaro/steep/pull/649))
500
+ * Report type errors if argument mismatch on yield ([#640](https://github.com/soutaro/steep/pull/640))
501
+ * Relax caching requirements to cache more results ([#651](https://github.com/soutaro/steep/pull/651))
502
+
503
+ ### Commandline tool
504
+
505
+ * Add `steep checkfile` command ([#650](https://github.com/soutaro/steep/pull/650))
506
+
507
+ ### Miscellaneous
508
+
509
+ * Add docs for sublime text integration ([#633](https://github.com/soutaro/steep/pull/633))
510
+
511
+ ## 1.1.1 (2022-07-31)
512
+
513
+ ### Type checker core
514
+
515
+ * Ignore special local variables -- `_`, `__any__` and `__skip__` ([#617](https://github.com/soutaro/steep/pull/617), [#627](https://github.com/soutaro/steep/pull/627))
516
+ * Fix type narrowing on assignments ([#622](https://github.com/soutaro/steep/pull/622))
517
+
518
+ ## 1.1.0 (2022-07-27)
519
+
520
+ ### Type checker core
521
+
522
+ * Fix `#each_child_node` ([#612](https://github.com/soutaro/steep/pull/612))
523
+
524
+ ## 1.1.0.pre.1 (2022-07-26)
525
+
526
+ ### Type checker core
527
+
528
+ * Type refinement with method calls ([#590](https://github.com/soutaro/steep/issues/590))
529
+ * Better multiple assignment type checking ([\#605](https://github.com/soutaro/steep/pull/605))
530
+ * Fix generics issues around proc types ([\#609](https://github.com/soutaro/steep/pull/609), [\#611](https://github.com/soutaro/steep/pull/611))
531
+ * Fix type application validation ([#607](https://github.com/soutaro/steep/pull/607); backport from 1.0.2)
532
+ * Add class variable validation ([\#593](https://github.com/soutaro/steep/pull/593))
533
+ * Fix type application validation ([\#607](https://github.com/soutaro/steep/pull/607))
534
+
535
+ ### Commandline tool
536
+
537
+ * Appends "done!" to the watch output when the type check is complete ([\#596](https://github.com/soutaro/steep/pull/596))
538
+
539
+ ### Language server
540
+
541
+ * Fix hover on multiple assignment ([\#606](https://github.com/soutaro/steep/pull/606))
542
+
543
+ ## 1.0.2 (2022-07-19)
544
+
545
+ This is another patch release for Steep 1.0.
546
+
547
+ ### Type checker core
548
+
549
+ * Fix type application validation ([#607](https://github.com/soutaro/steep/pull/607))
550
+
551
+ ## 1.0.1 (2022-06-16)
552
+
553
+ This is the first patch release for Steep 1.0.
554
+ However, this release includes one non-trivial type system update, [\#570](https://github.com/soutaro/steep/pull/570), which adds a special typing rule for `Hash#compact` like `Array#compact`.
555
+ The change will make type checking more permissive and precise, so no new error won't be reported with the fix.
556
+
557
+ ### Type checker core
558
+
559
+ * Support shorthand hash for Ruby 3.1 ([\#567](https://github.com/soutaro/steep/pull/567))
560
+ * Fix super and zsuper with block ([\#568](https://github.com/soutaro/steep/pull/568))
561
+ * Apply logic-type evaluation only if the node is `:send` ([\#569](https://github.com/soutaro/steep/pull/569))
562
+ * Add support for `Hash#compact` ([\#570](https://github.com/soutaro/steep/pull/570))
563
+ * Use given `const_env` when making a new `ModuleContext` ([\#575](https://github.com/soutaro/steep/pull/575))
564
+ * Graceful, hopefully, error handling with undefined outer module ([\#576](https://github.com/soutaro/steep/pull/576))
565
+ * Type check anonymous block forwarding ([\#577](https://github.com/soutaro/steep/pull/577))
566
+ * Incompatible default value is a type error ([\#578](https://github.com/soutaro/steep/pull/578))
567
+ * Load `ChildrenLevel` helper in `AST::Types::Proc` ([\#584](https://github.com/soutaro/steep/pull/584))
568
+ * Type check `gvar` and `gvasgn` in methods([\#579](https://github.com/soutaro/steep/pull/579))
569
+ * Avoid `UnexpectedError` when assigning untyped singleton class ([\#586](https://github.com/soutaro/steep/pull/586))
570
+
571
+ ### Commandline tool
572
+
573
+ * Improve Windows support ([\#561](https://github.com/soutaro/steep/pull/561), [\#573](https://github.com/soutaro/steep/pull/573))
574
+ * Test if `.ruby-version` exists before `rvm do` in binstub ([\#558](https://github.com/soutaro/steep/pull/558))
575
+ * Fix typo ([\#564](https://github.com/soutaro/steep/pull/564))
576
+ * Ignore `untitled:` URIs in LSP ([\#580](https://github.com/soutaro/steep/pull/580))
577
+
578
+ ### Miscellaneous
579
+
580
+ * Fix test name ([\#565](https://github.com/soutaro/steep/pull/565), [\#566](https://github.com/soutaro/steep/pull/566), [\#585](https://github.com/soutaro/steep/pull/585))
581
+ * Remove some unused code except tests ([\#587](https://github.com/soutaro/steep/pull/587))
582
+
583
+ ## 1.0.0 (2022-05-20)
584
+
585
+ * Add special typing rule for `Array#compact` ([\#555](https://github.com/soutaro/steep/pull/555))
586
+ * Add custom method type of `#fetch` on tuples and records ([\#554](https://github.com/soutaro/steep/pull/554))
587
+ * Better `masgn` ([\#553](https://github.com/soutaro/steep/pull/553))
588
+ * Fix method parameter type checking ([\#552](https://github.com/soutaro/steep/pull/552))
589
+
590
+ ## 0.52.2 (2022-05-02)
591
+
592
+ * Handle class declaration with non-const super class ([\#546](https://github.com/soutaro/steep/pull/546))
593
+ * Remove `#to_a` error message ([\#545](https://github.com/soutaro/steep/pull/545))
594
+ * Add `#filter_map` shim ([\#544](https://github.com/soutaro/steep/pull/544))
595
+
596
+ ## 0.52.1 (2022-04-25)
597
+
598
+ * Better union type inference (it type checks `Array#filter_map` now!) ([\#531](https://github.com/soutaro/steep/pull/531))
599
+ * Improve method call hover message ([\#537](https://github.com/soutaro/steep/pull/537), [\#538](https://github.com/soutaro/steep/pull/538))
600
+ * Make `NilClass#!` a special method to improve flow-sensitive typing ([\#539](https://github.com/soutaro/steep/pull/539))
601
+ * Fix `steep binstub` ([\#540](https://github.com/soutaro/steep/pull/540), [\#541](https://github.com/soutaro/steep/pull/541))
602
+
603
+ ## 0.52.0 (2022-04-05)
604
+
605
+ * Add `steep binstub` command ([\#527](https://github.com/soutaro/steep/pull/527))
606
+ * Let hover and completion work in heredoc ([\#528](https://github.com/soutaro/steep/pull/528))
607
+ * Better constant typing ([\#529](https://github.com/soutaro/steep/pull/529))
608
+
609
+ ## 0.51.0 (2022-04-01)
610
+
611
+ * Completion for constant ([\#524](https://github.com/soutaro/steep/pull/524))
612
+ * Better hover/completion message ([\#525](https://github.com/soutaro/steep/pull/525))
613
+ * Show available commands when using `--help` ([\#523](https://github.com/soutaro/steep/pull/523))
614
+
615
+ ## 0.50.0 (2022-03-22)
616
+
617
+ * CLI option for override steep command at spawn worker ([\#511](https://github.com/soutaro/steep/pull/511))
618
+ * LSP related improvements for Sublime LSP ([\#513](https://github.com/soutaro/steep/pull/513))
619
+ * Support Windows environment ([\#514](https://github.com/soutaro/steep/pull/514))
620
+ * Let `&:foo` proc work with methods with optional parameters ([\#516](https://github.com/soutaro/steep/pull/516))
621
+ * Fix unexpected error when or-asgn/and-asgn ([\#517](https://github.com/soutaro/steep/pull/517))
622
+ * Fix goto-definition from method call inside block ([\#518](https://github.com/soutaro/steep/pull/518))
623
+ * Better splat in array typing ([\#519](https://github.com/soutaro/steep/pull/519))
624
+
625
+ ## 0.49.1 (2022-03-11)
626
+
627
+ * Fix lambda typing ([\#506](https://github.com/soutaro/steep/pull/506))
628
+ * Validate type descendants ([\#507](https://github.com/soutaro/steep/pull/507))
629
+ * Fix print error with absolute path ([\#508](https://github.com/soutaro/steep/pull/508))
630
+ * Skip non-target ruby code on `steep stats` ([\#509](https://github.com/soutaro/steep/pull/509))
631
+
632
+ ## 0.49.0 (2022-03-08)
633
+
634
+ * Better typing for `#flat_map` ([\#504](https://github.com/soutaro/steep/pull/504))
635
+ * Support lambdas (`->`) with block ([\#503](https://github.com/soutaro/steep/pull/503))
636
+ * Let proc type be `::Proc` class instance ([\#502](https://github.com/soutaro/steep/pull/502))
637
+ * Disable contextual typing on `bool` type ([\#501](https://github.com/soutaro/steep/pull/501))
638
+ * Type check `return` without value ([\#500](https://github.com/soutaro/steep/pull/500))
639
+
640
+ ## 0.48.0 (2022-03-07)
641
+
642
+ Steep supports all of the new features of RBS 2. 🎉
643
+ It now requires RBS >= 2.2 and support all of the features.
644
+
645
+ * Update RBS ([\#495](https://github.com/soutaro/steep/pull/495))
646
+ * Support generic type aliases ([\#496](https://github.com/soutaro/steep/pull/496))
647
+ * Support bounded generics ([\#499](https://github.com/soutaro/steep/pull/499))
648
+
649
+ ## 0.47.1 (2022-02-17)
650
+
651
+ This update lets Steep run with Active Support 7.
652
+
653
+ * Fix ActiveSupport requirement in `lib/steep.rb` ([#484](https://github.com/soutaro/steep/pull/484))
654
+
655
+ ## 0.47.0 (2021-11-30)
656
+
657
+ This update contains update for RBS 1.7.
658
+
659
+ * RBS 1.7 ([#455](https://github.com/soutaro/steep/pull/455))
660
+ * Bug fixes related to `SendArgs` ([#444](https://github.com/soutaro/steep/pull/444), [#449](https://github.com/soutaro/steep/pull/449), [#451](https://github.com/soutaro/steep/pull/451))
661
+ * LSP completion item formatting improvement ([#442](https://github.com/soutaro/steep/pull/442))
662
+
663
+ ## 0.46.0 (2021-08-30)
664
+
665
+ This release updates Steepfile DSL syntax, introducing `stdlib_path` and `configure_code_diagnostics` syntax (methods).
666
+
667
+ * `stdlib_path` allows configuring core/stdlib RBS file locations.
668
+ * `configure_code_diagnostics` allows configuring _severity_ of each type errors.
669
+
670
+ See the PRs for the explanation of these methods.
671
+ You can try `steep init` to generate updated `Steepfile` template.
672
+
673
+ * Flexible diagnostics configuration ([\#422](https://github.com/soutaro/steep/pull/422), [\#423](https://github.com/soutaro/steep/pull/423))
674
+ * Revise Steepfile _path_ DSL ([\#421](https://github.com/soutaro/steep/pull/421))
675
+ * Avoid to stop process by invalid jobs_count ([\#419](https://github.com/soutaro/steep/pull/419))
676
+ * Fix `Steep::Typing::UnknownNodeError` when hover method with numblock ([\#415](https://github.com/soutaro/steep/pull/415))
677
+
678
+ ## 0.45.0 (2021-08-22)
679
+
680
+ * Fix error reporting on `RBS::MixinClassError` ([\#411](https://github.com/soutaro/steep/pull/411))
681
+ * Compact error reporting for method body type mismatch ([\#414](https://github.com/soutaro/steep/pull/414))
682
+ * Fix NoMethodError with csend/numblock ([\#412](https://github.com/soutaro/steep/pull/412))
683
+ * LSP completion for RBS files ([\#404](https://github.com/soutaro/steep/pull/404))
684
+ * Allow break without value from bot methods ([\#398](https://github.com/soutaro/steep/pull/398))
685
+ * Type check on lvar assignments ([\#390](https://github.com/soutaro/steep/pull/390))
686
+ * Assign different error code to break without value ([\#387](https://github.com/soutaro/steep/pull/387))
687
+ * Support Ruby3 Keyword Arguments ([\#386](https://github.com/soutaro/steep/pull/386))
688
+ * LSP hover for RBS files ([\#385](https://github.com/soutaro/steep/pull/385), [\#397](https://github.com/soutaro/steep/pull/397))
689
+ * Fix FileLoader to skip files not matching to the given pattern ([\#382](https://github.com/soutaro/steep/pull/382))
690
+ * Ruby3 support for numbered block parameters and end-less def ([\#381](https://github.com/soutaro/steep/pull/381))
691
+
692
+ ## 0.44.1 (2021-04-23)
693
+
694
+ * Disable goto declaration and goto type declaration (because they are not implemented) ([#377](https://github.com/soutaro/steep/pull/377))
695
+ * Fix goto from block calls ([#378](https://github.com/soutaro/steep/pull/378))
696
+
697
+ ## 0.44.0 (2021-04-22)
698
+
699
+ * Implement LSP go to definition/implementation ([#371](https://github.com/soutaro/steep/pull/371), [#375](https://github.com/soutaro/steep/pull/375))
700
+ * Fix typing on passing optional block ([#373](https://github.com/soutaro/steep/pull/373))
701
+ * Do not crash when completion request `context` is missing ([#370](https://github.com/soutaro/steep/pull/370))
702
+ * Update RBS ([#376](https://github.com/soutaro/steep/pull/376))
703
+
704
+ ## 0.43.1 (2021-04-01)
705
+
706
+ * Fix LSP `textDocument/didSave` notification handling ([#368](https://github.com/soutaro/steep/issues/368))
707
+
708
+ ## 0.43.0 (2021-03-30)
709
+
710
+ * LSP responsiveness improvements ([\#352](https://github.com/soutaro/steep/issues/352))
711
+ * `@implements` annotation in blocks ([#338](https://github.com/soutaro/steep/issues/338))
712
+ * Better `steep stats` table formatting ([\#300](https://github.com/soutaro/steep/issues/300))
713
+ * Fix retry type checking ([\#293](https://github.com/soutaro/steep/issues/293))
714
+ * Better tuple type checking ([\#328](https://github.com/soutaro/steep/issues/328))
715
+ * Fix unexpected `add_call` error ([\#358](https://github.com/soutaro/steep/pull/358))
716
+ * Ignore passing nil as a block `&nil` ([\#356](https://github.com/soutaro/steep/pull/356))
717
+ * Better type checking for non-trivial block parameters ([\#354](https://github.com/soutaro/steep/pull/354))
718
+ * Avoid unexpected error on splat assignments ([\#330](https://github.com/soutaro/steep/pull/330))
719
+ * Fix constraint solver ([\#343](https://github.com/soutaro/steep/pull/343))
720
+ * Ruby 2.7 compatible private method call typing ([\#344](https://github.com/soutaro/steep/pull/344))
721
+
722
+ ## 0.42.0 (2021-03-08)
723
+
724
+ * Type checking performance improvement ([\#309](https://github.com/soutaro/steep/pull/309), [\#311](https://github.com/soutaro/steep/pull/311), [\#312](https://github.com/soutaro/steep/pull/312), [\#313](https://github.com/soutaro/steep/pull/313), [\#314](https://github.com/soutaro/steep/pull/314), [\#315](https://github.com/soutaro/steep/pull/315), [\#316](https://github.com/soutaro/steep/pull/316), [\#320](https://github.com/soutaro/steep/pull/320), [\#322](https://github.com/soutaro/steep/pull/322))
725
+ * Let `watch` command support files ([\#323](https://github.com/soutaro/steep/pull/323))
726
+ * Validate _module-self-type_ constraints ([\#308](https://github.com/soutaro/steep/pull/308))
727
+ * Add `-j` option to specify number of worker processes ([\#318](https://github.com/soutaro/steep/pull/318), [\#325](https://github.com/soutaro/steep/pull/325))
728
+ * Fix `code` of RBS diagnostics ([\#306](https://github.com/soutaro/steep/pull/306))
729
+ * Skip printing source code from out of date _expectations_ file ([\#305](https://github.com/soutaro/steep/pull/305))
730
+
731
+ ## 0.41.0 (2021-02-07)
732
+
733
+ * Add `--with-expectations` and `--save-expectations` option ([#303](https://github.com/soutaro/steep/pull/303))
734
+
735
+ ## 0.40.0 (2021-01-31)
736
+
737
+ * Report progress with dots ([#287](https://github.com/soutaro/steep/pull/287))
738
+ * Diagnostics message improvements ([#297](https://github.com/soutaro/steep/pull/297), [#301](https://github.com/soutaro/steep/pull/301))
739
+ * Fix error on implicit `to_proc` syntax when `untyped` is yielded ([#291](https://github.com/soutaro/steep/pull/291))
740
+
741
+ ## 0.39.0 (2020-12-25)
742
+
743
+ * Update RBS to 1.0.0 ([#282](https://github.com/soutaro/steep/pull/282))
744
+ * Better `&&` and `||` typing ([#276](https://github.com/soutaro/steep/pull/276))
745
+ * Type case based on literals ([#277](https://github.com/soutaro/steep/pull/277))
746
+ * Type case improvements ([#279](https://github.com/soutaro/steep/pull/279), [#283](https://github.com/soutaro/steep/pull/283))
747
+ * Improvements on untyped classes/modules, unsupported syntax error handling, and argument types in untyped methods ([#280](https://github.com/soutaro/steep/pull/280))
748
+ * Fix `bot` and `top` type format ([#278](https://github.com/soutaro/steep/pull/278))
749
+ * Colorfull error messages ([#273](https://github.com/soutaro/steep/pull/273))
750
+
751
+ ## 0.38.0 (2020-12-10)
752
+
753
+ * Improve `break`/`next` typing ([#271](https://github.com/soutaro/steep/pull/271))
754
+ * Add LSP `workspace/symbol` feature ([#267](https://github.com/soutaro/steep/pull/267))
755
+
756
+ ## 0.37.0 (2020-12-06)
757
+
758
+ * Update to RBS 0.20.0 with _singleton attribute_ syntax and _proc types with blocks_. ([#264](https://github.com/soutaro/steep/pull/264))
759
+
760
+ ## 0.36.0 (2020-11-16)
761
+
762
+ * Flow-sensitive typing improvements with `||` and `&&` ([#260](https://github.com/soutaro/steep/pull/260))
763
+ * Type-case improvement ([#259](https://github.com/soutaro/steep/pull/259))
764
+ * Subtyping between `bool` and logic types ([#258](https://github.com/soutaro/steep/pull/258))
765
+
766
+ ## 0.35.0 (2020-11-14)
767
+
768
+ * Support third party RBS repository ([#231](https://github.com/soutaro/steep/pull/231), [#254](https://github.com/soutaro/steep/pull/254), [#255](https://github.com/soutaro/steep/pull/255))
769
+ * Boolean type semantics update ([#252](https://github.com/soutaro/steep/pull/252))
770
+ * More flexible record typing ([#256](https://github.com/soutaro/steep/pull/256))
771
+
772
+ ## 0.34.0 (2020-10-27)
773
+
774
+ * Add `steep stats` command to show method call typing stats ([#246](https://github.com/soutaro/steep/pull/246))
775
+ * Fix attribute assignment typing ([#243](https://github.com/soutaro/steep/pull/243))
776
+ * Let `Range[T]` be covariant ([#242](https://github.com/soutaro/steep/pull/242))
777
+ * Fix constant typing ([#247](https://github.com/soutaro/steep/pull/247), [#248](https://github.com/soutaro/steep/pull/248))
778
+
779
+ ## 0.33.0 (2020-10-13)
780
+
781
+ * Make `!` typing flow sensitive ([#240](https://github.com/soutaro/steep/pull/240))
782
+
783
+ ## 0.32.0 (2020-10-09)
784
+
785
+ * Let type-case support interface types ([#237](https://github.com/soutaro/steep/pull/237))
786
+
787
+ ## 0.31.1 (2020-10-07)
788
+
789
+ * Fix `if-then-else` parsing ([#236](https://github.com/soutaro/steep/pull/236))
790
+
791
+ ## 0.31.0 (2020-10-04)
792
+
793
+ * Fix type checking performance ([#230](https://github.com/soutaro/steep/pull/230))
794
+ * Improve LSP completion/hover performance ([#232](https://github.com/soutaro/steep/pull/232))
795
+ * Fix instance variable completion ([#234](https://github.com/soutaro/steep/pull/234))
796
+ * Relax version requirements on Listen to allow installing on Ruby 3 ([#235](https://github.com/soutaro/steep/pull/235))
797
+
798
+ ## 0.30.0 (2020-10-03)
799
+
800
+ * Let top-level defs be methods of Object ([#227](https://github.com/soutaro/steep/pull/227))
801
+ * Fix error caused by attribute definitions ([#228](https://github.com/soutaro/steep/pull/228))
802
+ * LSP worker improvements ([#222](https://github.com/soutaro/steep/pull/222), [#223](https://github.com/soutaro/steep/pull/223), [#226](https://github.com/soutaro/steep/pull/226), [#229](https://github.com/soutaro/steep/pull/229))
803
+
804
+ ## 0.29.0 (2020-09-28)
805
+
806
+ * Implement reasoning on `is_a?`, `nil?`, and `===` methods. ([#218](https://github.com/soutaro/steep/pull/218))
807
+ * Better completion based on interface ([#215](https://github.com/soutaro/steep/pull/215))
808
+ * Fix begin-rescue typing ([#221](https://github.com/soutaro/steep/pull/221))
809
+
810
+ ## 0.28.0 (2020-09-17)
811
+
812
+ * Fix typing case-when with empty body ([#200](https://github.com/soutaro/steep/pull/200))
813
+ * Fix lvasgn typing with `void` type hint ([#200](https://github.com/soutaro/steep/pull/200))
814
+ * Fix subtype checking between type variables and union types ([#200](https://github.com/soutaro/steep/pull/200))
815
+ * Support endless range ([#200](https://github.com/soutaro/steep/pull/200))
816
+ * Fix optarg, kwoptarg typing ([#202](https://github.com/soutaro/steep/pull/202))
817
+ * Better union/intersection types ([#204](https://github.com/soutaro/steep/pull/204))
818
+ * Fix generic method instantiation ([#205](https://github.com/soutaro/steep/pull/205))
819
+ * Fix module typing ([#206](https://github.com/soutaro/steep/pull/206))
820
+ * Fix shutdown problem ([#209](https://github.com/soutaro/steep/pull/209))
821
+ * Update RBS to 0.12.0 ([#210](https://github.com/soutaro/steep/pull/210))
822
+ * Improve processing singleton class decls without RBS ([#211](https://github.com/soutaro/steep/pull/211))
823
+ * Improve processing block parameter with masgn ([#212](https://github.com/soutaro/steep/pull/212))
824
+
825
+ ## 0.27.0 (2020-08-31)
826
+
827
+ * Make tuple types _covariant_ ([#195](https://github.com/soutaro/steep/pull/195))
828
+ * Support `or_asgn`/`and_asgn` with `send` node lhs ([#194](https://github.com/soutaro/steep/pull/194))
829
+ * Performance improvement ([#193](https://github.com/soutaro/steep/pull/193))
830
+ * Add specialized versions of `#first` and `#last` on tuples ([#191](https://github.com/soutaro/steep/pull/191))
831
+ * Typing bug fix on `[]` (empty array) ([#190](https://github.com/soutaro/steep/pull/190))
832
+ * Earlier shutdown with interruption while `steep watch` ([#173](https://github.com/soutaro/steep/pull/173))
833
+
834
+ ## 0.26.0
835
+
836
+ * Skipped
837
+
838
+ ## 0.25.0 (2020-08-18)
839
+
840
+ * Improve `op_send` typing ([#186](https://github.com/soutaro/steep/pull/186))
841
+ * Improve `op_asgn` typing ([#189](https://github.com/soutaro/steep/pull/189))
842
+ * Better multi-assignment support ([#183](https://github.com/soutaro/steep/pull/183), [#184](https://github.com/soutaro/steep/pull/184))
843
+ * Support for loop and class variables ([#182](https://github.com/soutaro/steep/pull/182))
844
+ * Fix tuple typing ([#181](https://github.com/soutaro/steep/pull/181))
845
+
846
+ ## 0.24.0 (2020-08-11)
847
+
848
+ * Update RBS to 0.10 ([#180](https://github.com/soutaro/steep/pull/180))
849
+
850
+ ## 0.23.0 (2020-08-06)
851
+
852
+ * Fix literal typing with hint ([#179](https://github.com/soutaro/steep/pull/179))
853
+ * Fix literal type subtyping ([#178](https://github.com/soutaro/steep/pull/178))
854
+
855
+ ## 0.22.0 (2020-08-03)
856
+
857
+ * Improve signature validation ([#175](https://github.com/soutaro/steep/pull/175), [#177](https://github.com/soutaro/steep/pull/177))
858
+ * Fix boolean literal typing ([#172](https://github.com/soutaro/steep/pull/172))
859
+ * Make exit code success when Steep has unreported type errors ([#171](https://github.com/soutaro/steep/pull/171))
860
+ * Allow `./` prefix for signature pattern ([#170](https://github.com/soutaro/steep/pull/170))
861
+
862
+ ## 0.21.0 (2020-07-20)
863
+
864
+ * Fix LSP hover ([#168](https://github.com/soutaro/steep/pull/168))
865
+ * Nominal subtyping ([#167](https://github.com/soutaro/steep/pull/167))
866
+
867
+ ## 0.20.0 (2020-07-17)
868
+
869
+ * Support singleton class definitions ([#166](https://github.com/soutaro/steep/pull/166))
870
+
871
+ ## 0.19.0 (2020-07-12)
872
+
873
+ * Update RBS. ([#157](https://github.com/soutaro/steep/pull/157))
874
+ * No `initialize` in completion. ([#164](https://github.com/soutaro/steep/pull/164))
875
+ * Granular typing option setup. ([#163](https://github.com/soutaro/steep/pull/163))
876
+
877
+ ## 0.18.0 (2020-07-06)
878
+
879
+ * Sort result of `Pathname#glob` ([#154](https://github.com/soutaro/steep/pull/154))
880
+ * Sort methods in LanguageServer to return non-inherited methods first ([#159](https://github.com/soutaro/steep/pull/159))
881
+
882
+ ## 0.17.1 (2020-06-15)
883
+
884
+ * Allow RBS gem to be 0.4 ([#153](https://github.com/soutaro/steep/pull/153))
885
+
886
+ ## 0.17.0 (2020-06-13)
887
+
888
+ * Fix `steep watch` and `steep langserver` to correctly handle error message filterings based on options ([#152](https://github.com/soutaro/steep/pull/152))
889
+ * Fix typing of collections ([#151](https://github.com/soutaro/steep/pull/151))
890
+
891
+ ## 0.16.3
892
+
893
+ * Fix `steep watch` ([#147](https://github.com/soutaro/steep/pull/147))
894
+ * Stop using pry ([#148](https://github.com/soutaro/steep/pull/148))
895
+
896
+ ## 0.16.2 (2020-05-27)
897
+
898
+ * Update gems ([#144](https://github.com/soutaro/steep/pull/144), [#145](https://github.com/soutaro/steep/pull/145))
899
+
900
+ ## 0.16.1 (2020-05-22)
901
+
902
+ * Fix constant resolution ([#143](https://github.com/soutaro/steep/pull/143))
903
+ * Fix RBS diagnostics line number in LSP ([#142](https://github.com/soutaro/steep/pull/142))
904
+ * Fix crash caused by hover on `def` in LSP ([#140](https://github.com/soutaro/steep/pull/140))
905
+
906
+ ## 0.16.0 (2020-05-19)
907
+
908
+ * Spawn workers for type check performance ([#137](https://github.com/soutaro/steep/pull/137))
909
+ * Fix `check` and `signature` methods in Steepfile ([8f3e4c7](https://github.com/soutaro/steep/pull/137/commits/8f3e4c75b29ac26920f02294be06d6c68dbd4dca))
910
+
911
+ ## 0.15.0 (2020-05-05)
912
+
913
+ * Add type checking configuration to dsl ([#132](https://github.com/soutaro/steep/pull/132))
914
+ * More flow sensitive type checking
915
+
916
+ ## 0.14.0 (2020-02-24)
917
+
918
+ * Implementat LSP _completion_. ([#119](https://github.com/soutaro/steep/pull/119))
919
+ * Update ruby-signature. ([#120](https://github.com/soutaro/steep/pull/120))
920
+ * Rescue errors during `langserver`. ([#121](https://github.com/soutaro/steep/pull/121))
921
+ * Pass hint when type checking `return`. ([#122](https://github.com/soutaro/steep/pull/122))
922
+ * Remove trailing spaces from Steepfile. ([#118](https://github.com/soutaro/steep/pull/118))
923
+
924
+ ## 0.13.0 (2020-02-16)
925
+
926
+ * Improve LSP _hover_ support. ([#117](https://github.com/soutaro/steep/pull/117))
927
+
928
+ ## 0.12.0 (2020-02-11)
929
+
930
+ * Add `Steepfile` for configuration
931
+ * Use the latest version of `ruby-signature`
932
+
933
+ ## 0.11.1 (2019-07-15)
934
+
935
+ * Relax activesupport versnion requirement (#90)
936
+
937
+ ## 0.11.0 (2019-05-18)
938
+
939
+ * Skip `alias` nodes type checking (#85)
940
+ * Add experimental LSP support (#79. #83)
941
+ * Fix logging (#81)
942
+
943
+ ## 0.10.0 (2019-03-05)
944
+
945
+ * Add `watch` subcommand (#77)
946
+ * Automatically `@implements` super class if the class definition inherits
947
+ * Fix tuple typing
948
+ * Fix `or` typing
949
+
950
+ ## 0.9.0 (2018-11-11)
951
+
952
+ * Private methods (#72)
953
+ * `__skip__` to skip type checking (#73)
954
+ * Add `alias` for method types (#75)
955
+ * Fix `Names::Base#hash` (#69 @hanachin)
956
+ * Add `super` in method types (#76)
957
+
958
+ ## 0.8.2 (2018-11-09)
959
+
960
+ * Fix ElseOnExhaustiveCase error implementation
961
+ * Add some builtin methods
962
+
963
+ ## 0.8.1 (2018-10-29)
964
+
965
+ * Remove duplicated detected paths (#67)
966
+
967
+ ## 0.8.0 (2018-10-29)
968
+
969
+ * Load types from gems (#64, #66)
970
+ * Fix exit status (#65)
971
+ * Fix `--version` handling (#57 @ybiquitous, #58)
972
+ * Add `Regexp` and `MatchData` (#58 @ybiquitous)
973
+
974
+ ## 0.7.1 (2018-10-22)
975
+
976
+ * Rename *hash type* to *record type* (#60)
977
+ * Fix keyword typing (#59)
978
+
979
+ ## 0.7.0 (2018-09-24)
980
+
981
+ * Add some builtin
982
+ * Fix array argument typing
983
+ * Allow `@type` instance variable declaration in signature
984
+ * Fix `@type` annotation parsing
985
+ * Fix polymorphic method type inference
986
+ * Fix relative module lookup
987
+ * Fix module name tokenization
988
+
989
+ ## 0.6.0 (2018-09-23)
990
+
991
+ * Update ast_utils
992
+ * Introduce *hash* type `{ id: Integer, name: String }` (#54)
993
+ * Revise signature syntax; use `<` instead of `<:` for inheritance (#53)
994
+ * Interface and alias name can be namespaced (#52)
995
+ * Grammar formatting (#51 @iliabylich)
996
+
997
+ ## 0.5.1 (2018-08-11)
998
+
999
+ * Relax dependency requirements (#49, #50)
1000
+
1001
+ ## 0.5.0 (2018-08-11)
1002
+
1003
+ * Support *lambda* `->` (#47)
1004
+ * Introduce *incompatible* method (#45)
1005
+ * Add type alias (#44)
1006
+ * Steep is MIT license (#43)
1007
+ * Improved block parameter typing (#41)
1008
+ * Support optional block
1009
+ * Support attributes in module
1010
+ * Support `:xstr` node
1011
+ * Allow missing method definition with `steep check` without `--strict`
1012
+
1013
+ ## 0.4.0 (2018-06-14)
1014
+
1015
+ * Add *tuple* type (#40)
1016
+ * Add `bool` and `nil` types (#39)
1017
+ * Add *literal type* (#37)
1018
+
1019
+ ## 0.3.0 (2018-05-31)
1020
+
1021
+ * Add `interface` command to print interface built for given type
1022
+ * Add `--strict` option for `check` command
1023
+ * Fix `scaffold` command for empty class/modules
1024
+ * Type check method definition with empty body
1025
+ * Add `STDOUT` and `StringIO` minimal definition
1026
+ * Fix validate command to load stdlib
1027
+ * Fix parsing keyword argument type
1028
+
1029
+ ## 0.2.0 (2018-05-30)
1030
+
1031
+ * Add `attr_reader` and `attr_accessor` syntax to signature (#33)
1032
+ * Fix parsing on union with `any`