Commit db89ef2
committed
Fix recursive untagged variant type checking
Fixes #7314
- Delay untagged variant well-formedness checks until after environment construction
- Collect all untagged variant checks during type declaration processing
- Perform checks once all recursive types are available in the environment
- Add test case for valid recursive untagged variant type definitions
This fixes issues where recursive references in untagged variants would fail validation due to premature checking before the full type environment was built.1 parent e059e19 commit db89ef2
File tree
5 files changed
+36
-5
lines changed- compiler/ml
- tests/tests/src
5 files changed
+36
-5
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
25 | 25 | | |
26 | 26 | | |
27 | 27 | | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
28 | 32 | | |
29 | 33 | | |
30 | 34 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
377 | 377 | | |
378 | 378 | | |
379 | 379 | | |
380 | | - | |
381 | | - | |
| 380 | + | |
| 381 | + | |
| 382 | + | |
| 383 | + | |
| 384 | + | |
| 385 | + | |
382 | 386 | | |
383 | 387 | | |
384 | 388 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
293 | 293 | | |
294 | 294 | | |
295 | 295 | | |
296 | | - | |
| 296 | + | |
297 | 297 | | |
298 | 298 | | |
299 | 299 | | |
| |||
529 | 529 | | |
530 | 530 | | |
531 | 531 | | |
532 | | - | |
| 532 | + | |
| 533 | + | |
| 534 | + | |
| 535 | + | |
| 536 | + | |
533 | 537 | | |
534 | 538 | | |
535 | 539 | | |
| |||
1467 | 1471 | | |
1468 | 1472 | | |
1469 | 1473 | | |
| 1474 | + | |
1470 | 1475 | | |
1471 | 1476 | | |
1472 | 1477 | | |
1473 | | - | |
| 1478 | + | |
| 1479 | + | |
1474 | 1480 | | |
1475 | 1481 | | |
1476 | 1482 | | |
| |||
1528 | 1534 | | |
1529 | 1535 | | |
1530 | 1536 | | |
| 1537 | + | |
| 1538 | + | |
| 1539 | + | |
1531 | 1540 | | |
1532 | 1541 | | |
1533 | 1542 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
600 | 600 | | |
601 | 601 | | |
602 | 602 | | |
| 603 | + | |
| 604 | + | |
| 605 | + | |
| 606 | + | |
| 607 | + | |
| 608 | + | |
603 | 609 | | |
604 | 610 | | |
605 | 611 | | |
| |||
653 | 659 | | |
654 | 660 | | |
655 | 661 | | |
| 662 | + | |
656 | 663 | | |
657 | 664 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
469 | 469 | | |
470 | 470 | | |
471 | 471 | | |
| 472 | + | |
| 473 | + | |
| 474 | + | |
| 475 | + | |
| 476 | + | |
| 477 | + | |
| 478 | + | |
0 commit comments