steep-activesupport-4 1.9.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (164) 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/Steepfile +68 -0
  9. data/bin/console +14 -0
  10. data/bin/generate-diagnostics-docs.rb +112 -0
  11. data/bin/mem_graph.rb +67 -0
  12. data/bin/mem_prof.rb +102 -0
  13. data/bin/output_rebaseline.rb +34 -0
  14. data/bin/output_test.rb +60 -0
  15. data/bin/rbs +20 -0
  16. data/bin/rbs-inline +19 -0
  17. data/bin/setup +9 -0
  18. data/bin/stackprof_test.rb +19 -0
  19. data/bin/steep +19 -0
  20. data/bin/steep-check.rb +251 -0
  21. data/bin/steep-prof +16 -0
  22. data/doc/narrowing.md +195 -0
  23. data/doc/shape.md +194 -0
  24. data/exe/steep +18 -0
  25. data/guides/README.md +5 -0
  26. data/guides/src/gem-rbs-collection/gem-rbs-collection.md +126 -0
  27. data/guides/src/getting-started/getting-started.md +163 -0
  28. data/guides/src/nil-optional/nil-optional.md +195 -0
  29. data/lib/steep/annotation_parser.rb +199 -0
  30. data/lib/steep/ast/annotation/collection.rb +172 -0
  31. data/lib/steep/ast/annotation.rb +137 -0
  32. data/lib/steep/ast/builtin.rb +104 -0
  33. data/lib/steep/ast/ignore.rb +148 -0
  34. data/lib/steep/ast/node/type_application.rb +88 -0
  35. data/lib/steep/ast/node/type_assertion.rb +81 -0
  36. data/lib/steep/ast/types/any.rb +35 -0
  37. data/lib/steep/ast/types/boolean.rb +45 -0
  38. data/lib/steep/ast/types/bot.rb +35 -0
  39. data/lib/steep/ast/types/class.rb +43 -0
  40. data/lib/steep/ast/types/factory.rb +557 -0
  41. data/lib/steep/ast/types/helper.rb +40 -0
  42. data/lib/steep/ast/types/instance.rb +42 -0
  43. data/lib/steep/ast/types/intersection.rb +93 -0
  44. data/lib/steep/ast/types/literal.rb +59 -0
  45. data/lib/steep/ast/types/logic.rb +84 -0
  46. data/lib/steep/ast/types/name.rb +128 -0
  47. data/lib/steep/ast/types/nil.rb +41 -0
  48. data/lib/steep/ast/types/proc.rb +117 -0
  49. data/lib/steep/ast/types/record.rb +79 -0
  50. data/lib/steep/ast/types/self.rb +43 -0
  51. data/lib/steep/ast/types/shared_instance.rb +11 -0
  52. data/lib/steep/ast/types/top.rb +35 -0
  53. data/lib/steep/ast/types/tuple.rb +60 -0
  54. data/lib/steep/ast/types/union.rb +97 -0
  55. data/lib/steep/ast/types/var.rb +65 -0
  56. data/lib/steep/ast/types/void.rb +35 -0
  57. data/lib/steep/cli.rb +401 -0
  58. data/lib/steep/diagnostic/deprecated/else_on_exhaustive_case.rb +20 -0
  59. data/lib/steep/diagnostic/deprecated/unknown_constant_assigned.rb +28 -0
  60. data/lib/steep/diagnostic/helper.rb +18 -0
  61. data/lib/steep/diagnostic/lsp_formatter.rb +78 -0
  62. data/lib/steep/diagnostic/result_printer2.rb +48 -0
  63. data/lib/steep/diagnostic/ruby.rb +1221 -0
  64. data/lib/steep/diagnostic/signature.rb +570 -0
  65. data/lib/steep/drivers/annotations.rb +52 -0
  66. data/lib/steep/drivers/check.rb +339 -0
  67. data/lib/steep/drivers/checkfile.rb +210 -0
  68. data/lib/steep/drivers/diagnostic_printer.rb +105 -0
  69. data/lib/steep/drivers/init.rb +66 -0
  70. data/lib/steep/drivers/langserver.rb +56 -0
  71. data/lib/steep/drivers/print_project.rb +113 -0
  72. data/lib/steep/drivers/stats.rb +203 -0
  73. data/lib/steep/drivers/utils/driver_helper.rb +143 -0
  74. data/lib/steep/drivers/utils/jobs_option.rb +26 -0
  75. data/lib/steep/drivers/vendor.rb +27 -0
  76. data/lib/steep/drivers/watch.rb +194 -0
  77. data/lib/steep/drivers/worker.rb +58 -0
  78. data/lib/steep/equatable.rb +23 -0
  79. data/lib/steep/expectations.rb +228 -0
  80. data/lib/steep/index/rbs_index.rb +350 -0
  81. data/lib/steep/index/signature_symbol_provider.rb +185 -0
  82. data/lib/steep/index/source_index.rb +167 -0
  83. data/lib/steep/interface/block.rb +103 -0
  84. data/lib/steep/interface/builder.rb +843 -0
  85. data/lib/steep/interface/function.rb +1090 -0
  86. data/lib/steep/interface/method_type.rb +330 -0
  87. data/lib/steep/interface/shape.rb +239 -0
  88. data/lib/steep/interface/substitution.rb +159 -0
  89. data/lib/steep/interface/type_param.rb +115 -0
  90. data/lib/steep/located_value.rb +20 -0
  91. data/lib/steep/method_name.rb +42 -0
  92. data/lib/steep/module_helper.rb +24 -0
  93. data/lib/steep/node_helper.rb +273 -0
  94. data/lib/steep/path_helper.rb +30 -0
  95. data/lib/steep/project/dsl.rb +268 -0
  96. data/lib/steep/project/group.rb +31 -0
  97. data/lib/steep/project/options.rb +63 -0
  98. data/lib/steep/project/pattern.rb +59 -0
  99. data/lib/steep/project/target.rb +92 -0
  100. data/lib/steep/project.rb +78 -0
  101. data/lib/steep/rake_task.rb +132 -0
  102. data/lib/steep/range_extension.rb +29 -0
  103. data/lib/steep/server/base_worker.rb +97 -0
  104. data/lib/steep/server/change_buffer.rb +73 -0
  105. data/lib/steep/server/custom_methods.rb +77 -0
  106. data/lib/steep/server/delay_queue.rb +45 -0
  107. data/lib/steep/server/interaction_worker.rb +492 -0
  108. data/lib/steep/server/lsp_formatter.rb +455 -0
  109. data/lib/steep/server/master.rb +912 -0
  110. data/lib/steep/server/target_group_files.rb +205 -0
  111. data/lib/steep/server/type_check_controller.rb +366 -0
  112. data/lib/steep/server/type_check_worker.rb +303 -0
  113. data/lib/steep/server/work_done_progress.rb +64 -0
  114. data/lib/steep/server/worker_process.rb +176 -0
  115. data/lib/steep/services/completion_provider.rb +802 -0
  116. data/lib/steep/services/content_change.rb +61 -0
  117. data/lib/steep/services/file_loader.rb +74 -0
  118. data/lib/steep/services/goto_service.rb +441 -0
  119. data/lib/steep/services/hover_provider/rbs.rb +88 -0
  120. data/lib/steep/services/hover_provider/ruby.rb +221 -0
  121. data/lib/steep/services/hover_provider/singleton_methods.rb +20 -0
  122. data/lib/steep/services/path_assignment.rb +46 -0
  123. data/lib/steep/services/signature_help_provider.rb +202 -0
  124. data/lib/steep/services/signature_service.rb +428 -0
  125. data/lib/steep/services/stats_calculator.rb +68 -0
  126. data/lib/steep/services/type_check_service.rb +394 -0
  127. data/lib/steep/services/type_name_completion.rb +236 -0
  128. data/lib/steep/signature/validator.rb +651 -0
  129. data/lib/steep/source/ignore_ranges.rb +69 -0
  130. data/lib/steep/source.rb +691 -0
  131. data/lib/steep/subtyping/cache.rb +30 -0
  132. data/lib/steep/subtyping/check.rb +1113 -0
  133. data/lib/steep/subtyping/constraints.rb +341 -0
  134. data/lib/steep/subtyping/relation.rb +101 -0
  135. data/lib/steep/subtyping/result.rb +324 -0
  136. data/lib/steep/subtyping/variable_variance.rb +89 -0
  137. data/lib/steep/test.rb +9 -0
  138. data/lib/steep/thread_waiter.rb +43 -0
  139. data/lib/steep/type_construction.rb +5183 -0
  140. data/lib/steep/type_inference/block_params.rb +416 -0
  141. data/lib/steep/type_inference/case_when.rb +303 -0
  142. data/lib/steep/type_inference/constant_env.rb +56 -0
  143. data/lib/steep/type_inference/context.rb +195 -0
  144. data/lib/steep/type_inference/logic_type_interpreter.rb +613 -0
  145. data/lib/steep/type_inference/method_call.rb +193 -0
  146. data/lib/steep/type_inference/method_params.rb +531 -0
  147. data/lib/steep/type_inference/multiple_assignment.rb +194 -0
  148. data/lib/steep/type_inference/send_args.rb +712 -0
  149. data/lib/steep/type_inference/type_env.rb +341 -0
  150. data/lib/steep/type_inference/type_env_builder.rb +138 -0
  151. data/lib/steep/typing.rb +321 -0
  152. data/lib/steep/version.rb +3 -0
  153. data/lib/steep.rb +369 -0
  154. data/manual/annotations.md +181 -0
  155. data/manual/ignore.md +20 -0
  156. data/manual/ruby-diagnostics.md +1879 -0
  157. data/sample/Steepfile +22 -0
  158. data/sample/lib/conference.rb +49 -0
  159. data/sample/lib/length.rb +35 -0
  160. data/sample/sig/conference.rbs +42 -0
  161. data/sample/sig/generics.rbs +15 -0
  162. data/sample/sig/length.rbs +34 -0
  163. data/steep-activesupport-4.gemspec +55 -0
  164. metadata +437 -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`