Commit afa5837
committed
IRGen: Use
The `deinit` takes full responsibility for destroying the value, using the
user-defined deinit body and implicitly destroying any remaining resources
not consumed during the deinit.
Remaining to do after this patch:
- Run the deinit for enums
- Pass generic arguments for generic move-only types
- Handle deinits that take their parameter indirectly
- Teach value witness layout about when types are move-only and/or have
deinits, so that we don't attempt to give move-only types standard
value witness tables or share box metadata with copyable payloadsdeinit to destroy move-only structs that have them.1 parent 7018c55 commit afa5837
File tree
14 files changed
+449
-50
lines changed- lib/IRGen
- test
- IRGen
- Interpreter
14 files changed
+449
-50
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
529 | 529 | | |
530 | 530 | | |
531 | 531 | | |
532 | | - | |
| 532 | + | |
533 | 533 | | |
534 | 534 | | |
535 | | - | |
| 535 | + | |
536 | 536 | | |
537 | 537 | | |
538 | 538 | | |
| |||
623 | 623 | | |
624 | 624 | | |
625 | 625 | | |
626 | | - | |
| 626 | + | |
| 627 | + | |
627 | 628 | | |
628 | | - | |
| 629 | + | |
| 630 | + | |
629 | 631 | | |
630 | 632 | | |
631 | 633 | | |
| |||
1495 | 1497 | | |
1496 | 1498 | | |
1497 | 1499 | | |
1498 | | - | |
| 1500 | + | |
1499 | 1501 | | |
1500 | 1502 | | |
1501 | 1503 | | |
1502 | 1504 | | |
1503 | 1505 | | |
1504 | 1506 | | |
1505 | | - | |
| 1507 | + | |
1506 | 1508 | | |
1507 | 1509 | | |
1508 | 1510 | | |
| |||
1780 | 1782 | | |
1781 | 1783 | | |
1782 | 1784 | | |
1783 | | - | |
| 1785 | + | |
| 1786 | + | |
1784 | 1787 | | |
1785 | 1788 | | |
1786 | 1789 | | |
| |||
2640 | 2643 | | |
2641 | 2644 | | |
2642 | 2645 | | |
2643 | | - | |
| 2646 | + | |
2644 | 2647 | | |
2645 | 2648 | | |
2646 | 2649 | | |
| |||
2666 | 2669 | | |
2667 | 2670 | | |
2668 | 2671 | | |
2669 | | - | |
| 2672 | + | |
| 2673 | + | |
2670 | 2674 | | |
2671 | 2675 | | |
2672 | 2676 | | |
| |||
2699 | 2703 | | |
2700 | 2704 | | |
2701 | 2705 | | |
2702 | | - | |
| 2706 | + | |
| 2707 | + | |
2703 | 2708 | | |
2704 | 2709 | | |
2705 | 2710 | | |
| |||
3607 | 3612 | | |
3608 | 3613 | | |
3609 | 3614 | | |
3610 | | - | |
| 3615 | + | |
| 3616 | + | |
| 3617 | + | |
| 3618 | + | |
3611 | 3619 | | |
3612 | 3620 | | |
3613 | 3621 | | |
| |||
4636 | 4644 | | |
4637 | 4645 | | |
4638 | 4646 | | |
4639 | | - | |
| 4647 | + | |
4640 | 4648 | | |
4641 | 4649 | | |
4642 | 4650 | | |
| |||
4658 | 4666 | | |
4659 | 4667 | | |
4660 | 4668 | | |
4661 | | - | |
| 4669 | + | |
| 4670 | + | |
| 4671 | + | |
| 4672 | + | |
4662 | 4673 | | |
4663 | 4674 | | |
4664 | 4675 | | |
| |||
4753 | 4764 | | |
4754 | 4765 | | |
4755 | 4766 | | |
4756 | | - | |
| 4767 | + | |
4757 | 4768 | | |
4758 | 4769 | | |
4759 | 4770 | | |
| |||
4998 | 5009 | | |
4999 | 5010 | | |
5000 | 5011 | | |
5001 | | - | |
| 5012 | + | |
5002 | 5013 | | |
5003 | 5014 | | |
5004 | 5015 | | |
| |||
5892 | 5903 | | |
5893 | 5904 | | |
5894 | 5905 | | |
5895 | | - | |
| 5906 | + | |
5896 | 5907 | | |
5897 | 5908 | | |
5898 | 5909 | | |
| |||
5912 | 5923 | | |
5913 | 5924 | | |
5914 | 5925 | | |
5915 | | - | |
| 5926 | + | |
5916 | 5927 | | |
5917 | 5928 | | |
5918 | 5929 | | |
| |||
6337 | 6348 | | |
6338 | 6349 | | |
6339 | 6350 | | |
6340 | | - | |
6341 | | - | |
| 6351 | + | |
| 6352 | + | |
6342 | 6353 | | |
6343 | 6354 | | |
6344 | 6355 | | |
| |||
6353 | 6364 | | |
6354 | 6365 | | |
6355 | 6366 | | |
6356 | | - | |
6357 | | - | |
| 6367 | + | |
| 6368 | + | |
6358 | 6369 | | |
6359 | 6370 | | |
6360 | 6371 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
419 | 419 | | |
420 | 420 | | |
421 | 421 | | |
422 | | - | |
| 422 | + | |
423 | 423 | | |
424 | 424 | | |
425 | 425 | | |
426 | 426 | | |
427 | 427 | | |
428 | 428 | | |
429 | 429 | | |
430 | | - | |
| 430 | + | |
431 | 431 | | |
432 | 432 | | |
433 | 433 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
450 | 450 | | |
451 | 451 | | |
452 | 452 | | |
453 | | - | |
| 453 | + | |
454 | 454 | | |
455 | 455 | | |
456 | 456 | | |
| |||
483 | 483 | | |
484 | 484 | | |
485 | 485 | | |
486 | | - | |
| 486 | + | |
| 487 | + | |
487 | 488 | | |
488 | 489 | | |
489 | 490 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
741 | 741 | | |
742 | 742 | | |
743 | 743 | | |
| 744 | + | |
| 745 | + | |
| 746 | + | |
| 747 | + | |
| 748 | + | |
| 749 | + | |
| 750 | + | |
| 751 | + | |
| 752 | + | |
| 753 | + | |
| 754 | + | |
| 755 | + | |
| 756 | + | |
| 757 | + | |
| 758 | + | |
| 759 | + | |
744 | 760 | | |
745 | 761 | | |
746 | 762 | | |
| |||
755 | 771 | | |
756 | 772 | | |
757 | 773 | | |
758 | | - | |
759 | | - | |
| 774 | + | |
| 775 | + | |
760 | 776 | | |
761 | 777 | | |
762 | 778 | | |
| |||
782 | 798 | | |
783 | 799 | | |
784 | 800 | | |
785 | | - | |
786 | | - | |
| 801 | + | |
| 802 | + | |
787 | 803 | | |
788 | | - | |
| 804 | + | |
| 805 | + | |
789 | 806 | | |
790 | 807 | | |
791 | 808 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
250 | 250 | | |
251 | 251 | | |
252 | 252 | | |
| 253 | + | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
| 259 | + | |
| 260 | + | |
| 261 | + | |
| 262 | + | |
| 263 | + | |
| 264 | + | |
253 | 265 | | |
254 | 266 | | |
255 | 267 | | |
| |||
748 | 760 | | |
749 | 761 | | |
750 | 762 | | |
| 763 | + | |
751 | 764 | | |
752 | 765 | | |
753 | 766 | | |
| |||
814 | 827 | | |
815 | 828 | | |
816 | 829 | | |
| 830 | + | |
| 831 | + | |
| 832 | + | |
| 833 | + | |
| 834 | + | |
| 835 | + | |
| 836 | + | |
| 837 | + | |
| 838 | + | |
| 839 | + | |
| 840 | + | |
| 841 | + | |
817 | 842 | | |
818 | 843 | | |
819 | 844 | | |
| |||
0 commit comments