Commit ff27c71
Add annotation support for trait methods and verify that implementations satisfy them (#25)
* add: tests for annotations in traits
* add: reference trait-side definitions for require/ensure annotations of
functions in impl blocks
Update src/analyze/local_def.rs
Co-authored-by: Hiromi Ogawa <me@coord-e.com>
* change: move extract_*_annot()s to analyze::Analyzer from
analyze::local_def::Analyzer
* change: insert type names as prefix of name for predicates in impl blocks
* add: tests for identifying struct‑bound predicates using `Self::`
* add: Identify struct-bounded predicates using `Self::` prefix
---------
Co-authored-by: Hiromi Ogawa <me@coord-e.com>1 parent 4e2836c commit ff27c71
7 files changed
Lines changed: 411 additions & 55 deletions
File tree
- src
- analyze
- tests/ui
- fail
- pass
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
| 19 | + | |
| 20 | + | |
19 | 21 | | |
20 | 22 | | |
21 | 23 | | |
| |||
435 | 437 | | |
436 | 438 | | |
437 | 439 | | |
| 440 | + | |
| 441 | + | |
| 442 | + | |
| 443 | + | |
| 444 | + | |
| 445 | + | |
| 446 | + | |
| 447 | + | |
| 448 | + | |
| 449 | + | |
| 450 | + | |
| 451 | + | |
| 452 | + | |
| 453 | + | |
| 454 | + | |
| 455 | + | |
| 456 | + | |
| 457 | + | |
| 458 | + | |
| 459 | + | |
| 460 | + | |
| 461 | + | |
| 462 | + | |
| 463 | + | |
| 464 | + | |
| 465 | + | |
| 466 | + | |
| 467 | + | |
| 468 | + | |
| 469 | + | |
| 470 | + | |
| 471 | + | |
| 472 | + | |
| 473 | + | |
| 474 | + | |
| 475 | + | |
| 476 | + | |
| 477 | + | |
| 478 | + | |
| 479 | + | |
| 480 | + | |
| 481 | + | |
| 482 | + | |
| 483 | + | |
| 484 | + | |
| 485 | + | |
| 486 | + | |
| 487 | + | |
| 488 | + | |
| 489 | + | |
438 | 490 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
53 | 53 | | |
54 | 54 | | |
55 | 55 | | |
56 | | - | |
57 | | - | |
58 | | - | |
59 | | - | |
60 | | - | |
61 | | - | |
62 | | - | |
63 | | - | |
64 | | - | |
65 | | - | |
66 | | - | |
67 | | - | |
68 | | - | |
69 | | - | |
70 | | - | |
71 | | - | |
72 | | - | |
73 | | - | |
74 | | - | |
75 | | - | |
76 | | - | |
77 | | - | |
78 | | - | |
79 | | - | |
80 | | - | |
81 | | - | |
82 | | - | |
83 | | - | |
84 | | - | |
85 | | - | |
86 | | - | |
87 | | - | |
88 | | - | |
89 | | - | |
90 | | - | |
91 | | - | |
92 | | - | |
93 | | - | |
94 | | - | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
95 | 61 | | |
96 | 62 | | |
97 | 63 | | |
98 | 64 | | |
| 65 | + | |
99 | 66 | | |
100 | 67 | | |
101 | 68 | | |
102 | 69 | | |
103 | 70 | | |
104 | 71 | | |
105 | | - | |
| 72 | + | |
106 | 73 | | |
107 | 74 | | |
108 | 75 | | |
109 | 76 | | |
110 | 77 | | |
111 | | - | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
112 | 83 | | |
113 | 84 | | |
114 | 85 | | |
115 | 86 | | |
| 87 | + | |
116 | 88 | | |
117 | 89 | | |
118 | 90 | | |
| |||
121 | 93 | | |
122 | 94 | | |
123 | 95 | | |
124 | | - | |
| 96 | + | |
125 | 97 | | |
126 | 98 | | |
127 | 99 | | |
128 | 100 | | |
129 | 101 | | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
130 | 116 | | |
131 | | - | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
132 | 124 | | |
133 | 125 | | |
134 | 126 | | |
| |||
252 | 244 | | |
253 | 245 | | |
254 | 246 | | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
| 252 | + | |
| 253 | + | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
255 | 258 | | |
256 | 259 | | |
257 | 260 | | |
| |||
268 | 271 | | |
269 | 272 | | |
270 | 273 | | |
271 | | - | |
272 | | - | |
273 | | - | |
274 | | - | |
275 | | - | |
276 | | - | |
277 | | - | |
278 | | - | |
279 | | - | |
280 | | - | |
| 274 | + | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
| 285 | + | |
| 286 | + | |
| 287 | + | |
| 288 | + | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
| 293 | + | |
| 294 | + | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
| 298 | + | |
| 299 | + | |
| 300 | + | |
| 301 | + | |
| 302 | + | |
| 303 | + | |
| 304 | + | |
| 305 | + | |
| 306 | + | |
| 307 | + | |
| 308 | + | |
| 309 | + | |
| 310 | + | |
| 311 | + | |
| 312 | + | |
| 313 | + | |
| 314 | + | |
281 | 315 | | |
282 | 316 | | |
283 | 317 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
250 | 250 | | |
251 | 251 | | |
252 | 252 | | |
| 253 | + | |
253 | 254 | | |
254 | 255 | | |
255 | 256 | | |
| |||
453 | 454 | | |
454 | 455 | | |
455 | 456 | | |
| 457 | + | |
456 | 458 | | |
457 | 459 | | |
458 | 460 | | |
| |||
493 | 495 | | |
494 | 496 | | |
495 | 497 | | |
| 498 | + | |
496 | 499 | | |
497 | 500 | | |
498 | 501 | | |
| |||
518 | 521 | | |
519 | 522 | | |
520 | 523 | | |
| 524 | + | |
521 | 525 | | |
522 | 526 | | |
523 | 527 | | |
524 | 528 | | |
525 | 529 | | |
| 530 | + | |
| 531 | + | |
| 532 | + | |
| 533 | + | |
| 534 | + | |
| 535 | + | |
| 536 | + | |
| 537 | + | |
| 538 | + | |
| 539 | + | |
| 540 | + | |
| 541 | + | |
| 542 | + | |
| 543 | + | |
| 544 | + | |
| 545 | + | |
| 546 | + | |
| 547 | + | |
| 548 | + | |
| 549 | + | |
| 550 | + | |
| 551 | + | |
| 552 | + | |
| 553 | + | |
| 554 | + | |
| 555 | + | |
| 556 | + | |
| 557 | + | |
526 | 558 | | |
527 | 559 | | |
528 | 560 | | |
| |||
908 | 940 | | |
909 | 941 | | |
910 | 942 | | |
| 943 | + | |
911 | 944 | | |
912 | 945 | | |
913 | 946 | | |
| |||
1014 | 1047 | | |
1015 | 1048 | | |
1016 | 1049 | | |
| 1050 | + | |
1017 | 1051 | | |
1018 | 1052 | | |
1019 | 1053 | | |
| |||
1050 | 1084 | | |
1051 | 1085 | | |
1052 | 1086 | | |
| 1087 | + | |
1053 | 1088 | | |
1054 | 1089 | | |
1055 | 1090 | | |
| |||
1074 | 1109 | | |
1075 | 1110 | | |
1076 | 1111 | | |
| 1112 | + | |
1077 | 1113 | | |
1078 | 1114 | | |
1079 | 1115 | | |
| |||
1199 | 1235 | | |
1200 | 1236 | | |
1201 | 1237 | | |
| 1238 | + | |
1202 | 1239 | | |
1203 | 1240 | | |
1204 | 1241 | | |
1205 | | - | |
1206 | | - | |
| 1242 | + | |
| 1243 | + | |
| 1244 | + | |
| 1245 | + | |
| 1246 | + | |
1207 | 1247 | | |
1208 | 1248 | | |
1209 | 1249 | | |
| |||
1214 | 1254 | | |
1215 | 1255 | | |
1216 | 1256 | | |
| 1257 | + | |
1217 | 1258 | | |
1218 | 1259 | | |
1219 | 1260 | | |
| |||
1225 | 1266 | | |
1226 | 1267 | | |
1227 | 1268 | | |
| 1269 | + | |
1228 | 1270 | | |
1229 | 1271 | | |
1230 | 1272 | | |
| |||
0 commit comments