steep 0.40.0 → 0.41.0

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 (92) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +4 -0
  3. data/bin/output_rebaseline.rb +15 -30
  4. data/bin/output_test.rb +17 -57
  5. data/lib/steep.rb +4 -0
  6. data/lib/steep/cli.rb +9 -3
  7. data/lib/steep/drivers/check.rb +106 -14
  8. data/lib/steep/drivers/diagnostic_printer.rb +11 -11
  9. data/lib/steep/expectations.rb +159 -0
  10. data/lib/steep/project.rb +6 -0
  11. data/lib/steep/version.rb +1 -1
  12. data/smoke/alias/test_expectations.yml +96 -0
  13. data/smoke/and/test_expectations.yml +31 -0
  14. data/smoke/array/test_expectations.yml +103 -0
  15. data/smoke/block/test_expectations.yml +125 -0
  16. data/smoke/case/test_expectations.yml +47 -0
  17. data/smoke/class/test_expectations.yml +120 -0
  18. data/smoke/const/test_expectations.yml +139 -0
  19. data/smoke/diagnostics-rbs-duplicated/test_expectations.yml +13 -0
  20. data/smoke/diagnostics-rbs/test_expectations.yml +229 -0
  21. data/smoke/diagnostics/test_expectations.yml +477 -0
  22. data/smoke/dstr/test_expectations.yml +13 -0
  23. data/smoke/ensure/test_expectations.yml +62 -0
  24. data/smoke/enumerator/test_expectations.yml +135 -0
  25. data/smoke/extension/test_expectations.yml +61 -0
  26. data/smoke/hash/test_expectations.yml +81 -0
  27. data/smoke/hello/test_expectations.yml +25 -0
  28. data/smoke/if/test_expectations.yml +34 -0
  29. data/smoke/implements/test_expectations.yml +23 -0
  30. data/smoke/initialize/test_expectations.yml +1 -0
  31. data/smoke/integer/test_expectations.yml +101 -0
  32. data/smoke/interface/test_expectations.yml +23 -0
  33. data/smoke/kwbegin/test_expectations.yml +17 -0
  34. data/smoke/lambda/test_expectations.yml +39 -0
  35. data/smoke/literal/test_expectations.yml +106 -0
  36. data/smoke/map/test_expectations.yml +1 -0
  37. data/smoke/method/test_expectations.yml +90 -0
  38. data/smoke/module/test_expectations.yml +75 -0
  39. data/smoke/regexp/test_expectations.yml +615 -0
  40. data/smoke/regression/test_expectations.yml +43 -0
  41. data/smoke/rescue/test_expectations.yml +79 -0
  42. data/smoke/self/test_expectations.yml +23 -0
  43. data/smoke/skip/test_expectations.yml +23 -0
  44. data/smoke/stdout/test_expectations.yml +1 -0
  45. data/smoke/super/test_expectations.yml +79 -0
  46. data/smoke/toplevel/test_expectations.yml +15 -0
  47. data/smoke/tsort/test_expectations.yml +43 -0
  48. data/smoke/type_case/test_expectations.yml +48 -0
  49. data/smoke/yield/test_expectations.yml +68 -0
  50. metadata +41 -44
  51. data/smoke/alias/test.yaml +0 -73
  52. data/smoke/and/test.yaml +0 -24
  53. data/smoke/array/test.yaml +0 -80
  54. data/smoke/block/test.yaml +0 -96
  55. data/smoke/broken/Steepfile +0 -5
  56. data/smoke/broken/broken.rb +0 -0
  57. data/smoke/broken/broken.rbs +0 -0
  58. data/smoke/broken/test.yaml +0 -6
  59. data/smoke/case/test.yaml +0 -36
  60. data/smoke/class/test.yaml +0 -89
  61. data/smoke/const/test.yaml +0 -96
  62. data/smoke/diagnostics-rbs-duplicated/test.yaml +0 -10
  63. data/smoke/diagnostics-rbs/test.yaml +0 -142
  64. data/smoke/diagnostics/test.yaml +0 -333
  65. data/smoke/dstr/test.yaml +0 -10
  66. data/smoke/ensure/test.yaml +0 -47
  67. data/smoke/enumerator/test.yaml +0 -100
  68. data/smoke/extension/test.yaml +0 -50
  69. data/smoke/hash/test.yaml +0 -62
  70. data/smoke/hello/test.yaml +0 -18
  71. data/smoke/if/test.yaml +0 -27
  72. data/smoke/implements/test.yaml +0 -16
  73. data/smoke/initialize/test.yaml +0 -4
  74. data/smoke/integer/test.yaml +0 -66
  75. data/smoke/interface/test.yaml +0 -16
  76. data/smoke/kwbegin/test.yaml +0 -14
  77. data/smoke/lambda/test.yaml +0 -28
  78. data/smoke/literal/test.yaml +0 -79
  79. data/smoke/map/test.yaml +0 -4
  80. data/smoke/method/test.yaml +0 -71
  81. data/smoke/module/test.yaml +0 -51
  82. data/smoke/regexp/test.yaml +0 -372
  83. data/smoke/regression/test.yaml +0 -38
  84. data/smoke/rescue/test.yaml +0 -60
  85. data/smoke/self/test.yaml +0 -16
  86. data/smoke/skip/test.yaml +0 -16
  87. data/smoke/stdout/test.yaml +0 -4
  88. data/smoke/super/test.yaml +0 -52
  89. data/smoke/toplevel/test.yaml +0 -12
  90. data/smoke/tsort/test.yaml +0 -32
  91. data/smoke/type_case/test.yaml +0 -33
  92. data/smoke/yield/test.yaml +0 -49
@@ -0,0 +1,615 @@
1
+ ---
2
+ - file: a.rb
3
+ diagnostics:
4
+ - range:
5
+ start:
6
+ line: 2
7
+ character: 6
8
+ end:
9
+ line: 2
10
+ character: 9
11
+ severity: ERROR
12
+ message: Type `::Regexp` does not have method `foo`
13
+ code: Ruby::NoMethod
14
+ - range:
15
+ start:
16
+ line: 5
17
+ character: 6
18
+ end:
19
+ line: 5
20
+ character: 9
21
+ severity: ERROR
22
+ message: Type `::Regexp` does not have method `foo`
23
+ code: Ruby::NoMethod
24
+ - range:
25
+ start:
26
+ line: 8
27
+ character: 6
28
+ end:
29
+ line: 8
30
+ character: 9
31
+ severity: ERROR
32
+ message: Type `::Regexp` does not have method `foo`
33
+ code: Ruby::NoMethod
34
+ - range:
35
+ start:
36
+ line: 11
37
+ character: 6
38
+ end:
39
+ line: 11
40
+ character: 9
41
+ severity: ERROR
42
+ message: Type `::Regexp` does not have method `foo`
43
+ code: Ruby::NoMethod
44
+ - range:
45
+ start:
46
+ line: 14
47
+ character: 10
48
+ end:
49
+ line: 14
50
+ character: 13
51
+ severity: ERROR
52
+ message: Type `::Regexp` does not have method `foo`
53
+ code: Ruby::NoMethod
54
+ - range:
55
+ start:
56
+ line: 17
57
+ character: 10
58
+ end:
59
+ line: 17
60
+ character: 13
61
+ severity: ERROR
62
+ message: Type `::Regexp` does not have method `foo`
63
+ code: Ruby::NoMethod
64
+ - range:
65
+ start:
66
+ line: 20
67
+ character: 10
68
+ end:
69
+ line: 20
70
+ character: 13
71
+ severity: ERROR
72
+ message: Type `::Regexp` does not have method `foo`
73
+ code: Ruby::NoMethod
74
+ - range:
75
+ start:
76
+ line: 23
77
+ character: 10
78
+ end:
79
+ line: 23
80
+ character: 13
81
+ severity: ERROR
82
+ message: Type `::Regexp` does not have method `foo`
83
+ code: Ruby::NoMethod
84
+ - range:
85
+ start:
86
+ line: 26
87
+ character: 9
88
+ end:
89
+ line: 26
90
+ character: 12
91
+ severity: ERROR
92
+ message: Type `::String` does not have method `foo`
93
+ code: Ruby::NoMethod
94
+ - range:
95
+ start:
96
+ line: 29
97
+ character: 13
98
+ end:
99
+ line: 29
100
+ character: 16
101
+ severity: ERROR
102
+ message: Type `(::MatchData | nil)` does not have method `foo`
103
+ code: Ruby::NoMethod
104
+ - range:
105
+ start:
106
+ line: 32
107
+ character: 13
108
+ end:
109
+ line: 32
110
+ character: 16
111
+ severity: ERROR
112
+ message: Type `(::String | nil)` does not have method `foo`
113
+ code: Ruby::NoMethod
114
+ - range:
115
+ start:
116
+ line: 35
117
+ character: 8
118
+ end:
119
+ line: 35
120
+ character: 11
121
+ severity: ERROR
122
+ message: Type `::String` does not have method `foo`
123
+ code: Ruby::NoMethod
124
+ - range:
125
+ start:
126
+ line: 38
127
+ character: 14
128
+ end:
129
+ line: 38
130
+ character: 17
131
+ severity: ERROR
132
+ message: Type `(::Regexp | nil)` does not have method `foo`
133
+ code: Ruby::NoMethod
134
+ - range:
135
+ start:
136
+ line: 41
137
+ character: 8
138
+ end:
139
+ line: 41
140
+ character: 11
141
+ severity: ERROR
142
+ message: Type `::Regexp` does not have method `foo`
143
+ code: Ruby::NoMethod
144
+ - range:
145
+ start:
146
+ line: 44
147
+ character: 8
148
+ end:
149
+ line: 44
150
+ character: 11
151
+ severity: ERROR
152
+ message: Type `::Regexp` does not have method `foo`
153
+ code: Ruby::NoMethod
154
+ - range:
155
+ start:
156
+ line: 47
157
+ character: 8
158
+ end:
159
+ line: 47
160
+ character: 11
161
+ severity: ERROR
162
+ message: Type `::Regexp` does not have method `foo`
163
+ code: Ruby::NoMethod
164
+ - range:
165
+ start:
166
+ line: 50
167
+ character: 8
168
+ end:
169
+ line: 50
170
+ character: 11
171
+ severity: ERROR
172
+ message: Type `::Regexp` does not have method `foo`
173
+ code: Ruby::NoMethod
174
+ - range:
175
+ start:
176
+ line: 53
177
+ character: 8
178
+ end:
179
+ line: 53
180
+ character: 11
181
+ severity: ERROR
182
+ message: Type `::Regexp` does not have method `foo`
183
+ code: Ruby::NoMethod
184
+ - range:
185
+ start:
186
+ line: 56
187
+ character: 8
188
+ end:
189
+ line: 56
190
+ character: 11
191
+ severity: ERROR
192
+ message: Type `::Regexp` does not have method `foo`
193
+ code: Ruby::NoMethod
194
+ - range:
195
+ start:
196
+ line: 59
197
+ character: 8
198
+ end:
199
+ line: 59
200
+ character: 11
201
+ severity: ERROR
202
+ message: Type `::Regexp` does not have method `foo`
203
+ code: Ruby::NoMethod
204
+ - range:
205
+ start:
206
+ line: 62
207
+ character: 12
208
+ end:
209
+ line: 62
210
+ character: 15
211
+ severity: ERROR
212
+ message: Type `bool` does not have method `foo`
213
+ code: Ruby::NoMethod
214
+ - range:
215
+ start:
216
+ line: 68
217
+ character: 11
218
+ end:
219
+ line: 68
220
+ character: 14
221
+ severity: ERROR
222
+ message: Type `bool` does not have method `foo`
223
+ code: Ruby::NoMethod
224
+ - range:
225
+ start:
226
+ line: 71
227
+ character: 11
228
+ end:
229
+ line: 71
230
+ character: 14
231
+ severity: ERROR
232
+ message: Type `::Encoding` does not have method `foo`
233
+ code: Ruby::NoMethod
234
+ - range:
235
+ start:
236
+ line: 74
237
+ character: 17
238
+ end:
239
+ line: 74
240
+ character: 20
241
+ severity: ERROR
242
+ message: Type `bool` does not have method `foo`
243
+ code: Ruby::NoMethod
244
+ - range:
245
+ start:
246
+ line: 77
247
+ character: 8
248
+ end:
249
+ line: 77
250
+ character: 11
251
+ severity: ERROR
252
+ message: Type `(::MatchData | nil)` does not have method `foo`
253
+ code: Ruby::NoMethod
254
+ - range:
255
+ start:
256
+ line: 80
257
+ character: 8
258
+ end:
259
+ line: 80
260
+ character: 11
261
+ severity: ERROR
262
+ message: Type `(::MatchData | nil)` does not have method `foo`
263
+ code: Ruby::NoMethod
264
+ - range:
265
+ start:
266
+ line: 83
267
+ character: 4
268
+ end:
269
+ line: 83
270
+ character: 7
271
+ severity: ERROR
272
+ message: Type `::MatchData` does not have method `foo`
273
+ code: Ruby::NoMethod
274
+ - range:
275
+ start:
276
+ line: 87
277
+ character: 4
278
+ end:
279
+ line: 87
280
+ character: 7
281
+ severity: ERROR
282
+ message: Type `::MatchData` does not have method `foo`
283
+ code: Ruby::NoMethod
284
+ - range:
285
+ start:
286
+ line: 91
287
+ character: 10
288
+ end:
289
+ line: 91
290
+ character: 13
291
+ severity: ERROR
292
+ message: Type `bool` does not have method `foo`
293
+ code: Ruby::NoMethod
294
+ - range:
295
+ start:
296
+ line: 94
297
+ character: 10
298
+ end:
299
+ line: 94
300
+ character: 13
301
+ severity: ERROR
302
+ message: Type `bool` does not have method `foo`
303
+ code: Ruby::NoMethod
304
+ - range:
305
+ start:
306
+ line: 97
307
+ character: 17
308
+ end:
309
+ line: 97
310
+ character: 20
311
+ severity: ERROR
312
+ message: Type `::Hash[::String, ::Array[::Integer]]` does not have method `foo`
313
+ code: Ruby::NoMethod
314
+ - range:
315
+ start:
316
+ line: 100
317
+ character: 8
318
+ end:
319
+ line: 100
320
+ character: 11
321
+ severity: ERROR
322
+ message: Type `::Array[::String]` does not have method `foo`
323
+ code: Ruby::NoMethod
324
+ - range:
325
+ start:
326
+ line: 103
327
+ character: 10
328
+ end:
329
+ line: 103
330
+ character: 13
331
+ severity: ERROR
332
+ message: Type `::Integer` does not have method `foo`
333
+ code: Ruby::NoMethod
334
+ - range:
335
+ start:
336
+ line: 106
337
+ character: 9
338
+ end:
339
+ line: 106
340
+ character: 12
341
+ severity: ERROR
342
+ message: Type `::String` does not have method `foo`
343
+ code: Ruby::NoMethod
344
+ - range:
345
+ start:
346
+ line: 109
347
+ character: 17
348
+ end:
349
+ line: 109
350
+ character: 20
351
+ severity: ERROR
352
+ message: Type `(::Integer | nil)` does not have method `foo`
353
+ code: Ruby::NoMethod
354
+ - file: b.rb
355
+ diagnostics:
356
+ - range:
357
+ start:
358
+ line: 3
359
+ character: 14
360
+ end:
361
+ line: 3
362
+ character: 17
363
+ severity: ERROR
364
+ message: Type `(::String | nil)` does not have method `foo`
365
+ code: Ruby::NoMethod
366
+ - range:
367
+ start:
368
+ line: 6
369
+ character: 14
370
+ end:
371
+ line: 6
372
+ character: 17
373
+ severity: ERROR
374
+ message: Type `(::String | nil)` does not have method `foo`
375
+ code: Ruby::NoMethod
376
+ - range:
377
+ start:
378
+ line: 9
379
+ character: 14
380
+ end:
381
+ line: 9
382
+ character: 17
383
+ severity: ERROR
384
+ message: Type `(::String | nil)` does not have method `foo`
385
+ code: Ruby::NoMethod
386
+ - range:
387
+ start:
388
+ line: 12
389
+ character: 14
390
+ end:
391
+ line: 12
392
+ character: 17
393
+ severity: ERROR
394
+ message: Type `::Array[(::String | nil)]` does not have method `foo`
395
+ code: Ruby::NoMethod
396
+ - range:
397
+ start:
398
+ line: 15
399
+ character: 14
400
+ end:
401
+ line: 15
402
+ character: 17
403
+ severity: ERROR
404
+ message: Type `::Array[(::String | nil)]` does not have method `foo`
405
+ code: Ruby::NoMethod
406
+ - range:
407
+ start:
408
+ line: 18
409
+ character: 10
410
+ end:
411
+ line: 18
412
+ character: 13
413
+ severity: ERROR
414
+ message: Type `(::Integer | nil)` does not have method `foo`
415
+ code: Ruby::NoMethod
416
+ - range:
417
+ start:
418
+ line: 21
419
+ character: 10
420
+ end:
421
+ line: 21
422
+ character: 13
423
+ severity: ERROR
424
+ message: Type `(::Integer | nil)` does not have method `foo`
425
+ code: Ruby::NoMethod
426
+ - range:
427
+ start:
428
+ line: 24
429
+ character: 10
430
+ end:
431
+ line: 24
432
+ character: 13
433
+ severity: ERROR
434
+ message: Type `(::Integer | nil)` does not have method `foo`
435
+ code: Ruby::NoMethod
436
+ - range:
437
+ start:
438
+ line: 27
439
+ character: 13
440
+ end:
441
+ line: 27
442
+ character: 16
443
+ severity: ERROR
444
+ message: Type `::Array[(::String | nil)]` does not have method `foo`
445
+ code: Ruby::NoMethod
446
+ - range:
447
+ start:
448
+ line: 30
449
+ character: 8
450
+ end:
451
+ line: 30
452
+ character: 11
453
+ severity: ERROR
454
+ message: Type `(::Integer | nil)` does not have method `foo`
455
+ code: Ruby::NoMethod
456
+ - range:
457
+ start:
458
+ line: 33
459
+ character: 8
460
+ end:
461
+ line: 33
462
+ character: 11
463
+ severity: ERROR
464
+ message: Type `(::Integer | nil)` does not have method `foo`
465
+ code: Ruby::NoMethod
466
+ - range:
467
+ start:
468
+ line: 36
469
+ character: 8
470
+ end:
471
+ line: 36
472
+ character: 11
473
+ severity: ERROR
474
+ message: Type `(::Integer | nil)` does not have method `foo`
475
+ code: Ruby::NoMethod
476
+ - range:
477
+ start:
478
+ line: 39
479
+ character: 11
480
+ end:
481
+ line: 39
482
+ character: 14
483
+ severity: ERROR
484
+ message: Type `::Integer` does not have method `foo`
485
+ code: Ruby::NoMethod
486
+ - range:
487
+ start:
488
+ line: 42
489
+ character: 19
490
+ end:
491
+ line: 42
492
+ character: 22
493
+ severity: ERROR
494
+ message: Type `::Hash[::String, (::String | nil)]` does not have method `foo`
495
+ code: Ruby::NoMethod
496
+ - range:
497
+ start:
498
+ line: 45
499
+ character: 10
500
+ end:
501
+ line: 45
502
+ character: 13
503
+ severity: ERROR
504
+ message: Type `::Array[::String]` does not have method `foo`
505
+ code: Ruby::NoMethod
506
+ - range:
507
+ start:
508
+ line: 48
509
+ character: 11
510
+ end:
511
+ line: 48
512
+ character: 14
513
+ severity: ERROR
514
+ message: Type `([::Integer, ::Integer] | [nil, nil])` does not have method `foo`
515
+ code: Ruby::NoMethod
516
+ - range:
517
+ start:
518
+ line: 51
519
+ character: 11
520
+ end:
521
+ line: 51
522
+ character: 14
523
+ severity: ERROR
524
+ message: Type `([::Integer, ::Integer] | [nil, nil])` does not have method `foo`
525
+ code: Ruby::NoMethod
526
+ - range:
527
+ start:
528
+ line: 54
529
+ character: 11
530
+ end:
531
+ line: 54
532
+ character: 14
533
+ severity: ERROR
534
+ message: Type `([::Integer, ::Integer] | [nil, nil])` does not have method `foo`
535
+ code: Ruby::NoMethod
536
+ - range:
537
+ start:
538
+ line: 57
539
+ character: 15
540
+ end:
541
+ line: 57
542
+ character: 18
543
+ severity: ERROR
544
+ message: Type `::String` does not have method `foo`
545
+ code: Ruby::NoMethod
546
+ - range:
547
+ start:
548
+ line: 60
549
+ character: 14
550
+ end:
551
+ line: 60
552
+ character: 17
553
+ severity: ERROR
554
+ message: Type `::String` does not have method `foo`
555
+ code: Ruby::NoMethod
556
+ - range:
557
+ start:
558
+ line: 63
559
+ character: 11
560
+ end:
561
+ line: 63
562
+ character: 14
563
+ severity: ERROR
564
+ message: Type `::Regexp` does not have method `foo`
565
+ code: Ruby::NoMethod
566
+ - range:
567
+ start:
568
+ line: 66
569
+ character: 9
570
+ end:
571
+ line: 66
572
+ character: 12
573
+ severity: ERROR
574
+ message: Type `::Integer` does not have method `foo`
575
+ code: Ruby::NoMethod
576
+ - range:
577
+ start:
578
+ line: 69
579
+ character: 11
580
+ end:
581
+ line: 69
582
+ character: 14
583
+ severity: ERROR
584
+ message: Type `::String` does not have method `foo`
585
+ code: Ruby::NoMethod
586
+ - range:
587
+ start:
588
+ line: 72
589
+ character: 9
590
+ end:
591
+ line: 72
592
+ character: 12
593
+ severity: ERROR
594
+ message: Type `::Array[(::String | nil)]` does not have method `foo`
595
+ code: Ruby::NoMethod
596
+ - range:
597
+ start:
598
+ line: 75
599
+ character: 14
600
+ end:
601
+ line: 75
602
+ character: 17
603
+ severity: ERROR
604
+ message: Type `::Array[(::String | nil)]` does not have method `foo`
605
+ code: Ruby::NoMethod
606
+ - range:
607
+ start:
608
+ line: 78
609
+ character: 14
610
+ end:
611
+ line: 78
612
+ character: 17
613
+ severity: ERROR
614
+ message: Type `::Array[(::String | nil)]` does not have method `foo`
615
+ code: Ruby::NoMethod