Commit acca735
committed
[transferring] Make async let take a transferring result if its result is non-Sendable.
Some notes:
1. If the result is non-Sendable and we didn't infer something that is
transferring, we still emit the current sema error that says that one cannot
assign a non-Sendable value to an async let.
2. When region isolation is enabled, but transferring args and results are
disabled, we leave the async let semantics alone. This means that the async let
closure is still @sendable and one cannot pass in non-Sendable values to it.1 parent 8ed2e05 commit acca735
File tree
15 files changed
+340
-122
lines changed- include/swift
- AST
- SIL
- lib
- AST
- SILOptimizer
- Analysis
- Mandatory
- SIL/IR
- Sema
- test/Concurrency
15 files changed
+340
-122
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
884 | 884 | | |
885 | 885 | | |
886 | 886 | | |
887 | | - | |
| 887 | + | |
888 | 888 | | |
889 | 889 | | |
890 | 890 | | |
| |||
894 | 894 | | |
895 | 895 | | |
896 | 896 | | |
897 | | - | |
| 897 | + | |
898 | 898 | | |
899 | 899 | | |
900 | 900 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
811 | 811 | | |
812 | 812 | | |
813 | 813 | | |
814 | | - | |
815 | | - | |
| 814 | + | |
| 815 | + | |
| 816 | + | |
| 817 | + | |
| 818 | + | |
| 819 | + | |
| 820 | + | |
816 | 821 | | |
817 | 822 | | |
818 | 823 | | |
819 | | - | |
820 | | - | |
| 824 | + | |
| 825 | + | |
821 | 826 | | |
822 | 827 | | |
823 | 828 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
197 | 197 | | |
198 | 198 | | |
199 | 199 | | |
| 200 | + | |
| 201 | + | |
200 | 202 | | |
201 | 203 | | |
202 | 204 | | |
| |||
229 | 231 | | |
230 | 232 | | |
231 | 233 | | |
232 | | - | |
233 | | - | |
234 | | - | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
235 | 238 | | |
236 | 239 | | |
237 | 240 | | |
| |||
397 | 400 | | |
398 | 401 | | |
399 | 402 | | |
400 | | - | |
401 | | - | |
402 | | - | |
403 | | - | |
| 403 | + | |
| 404 | + | |
| 405 | + | |
404 | 406 | | |
405 | 407 | | |
406 | 408 | | |
407 | 409 | | |
408 | 410 | | |
409 | 411 | | |
410 | 412 | | |
411 | | - | |
412 | | - | |
| 413 | + | |
| 414 | + | |
413 | 415 | | |
414 | 416 | | |
415 | 417 | | |
| |||
427 | 429 | | |
428 | 430 | | |
429 | 431 | | |
430 | | - | |
431 | | - | |
432 | | - | |
| 432 | + | |
| 433 | + | |
433 | 434 | | |
434 | 435 | | |
435 | 436 | | |
436 | 437 | | |
437 | 438 | | |
438 | 439 | | |
439 | 440 | | |
440 | | - | |
441 | | - | |
442 | | - | |
443 | | - | |
| 441 | + | |
| 442 | + | |
444 | 443 | | |
445 | 444 | | |
446 | 445 | | |
| |||
451 | 450 | | |
452 | 451 | | |
453 | 452 | | |
454 | | - | |
455 | | - | |
456 | | - | |
| 453 | + | |
| 454 | + | |
457 | 455 | | |
458 | 456 | | |
459 | 457 | | |
| |||
466 | 464 | | |
467 | 465 | | |
468 | 466 | | |
469 | | - | |
470 | | - | |
471 | | - | |
472 | | - | |
473 | | - | |
474 | | - | |
475 | | - | |
| 467 | + | |
| 468 | + | |
| 469 | + | |
476 | 470 | | |
477 | 471 | | |
478 | 472 | | |
| |||
606 | 600 | | |
607 | 601 | | |
608 | 602 | | |
609 | | - | |
610 | | - | |
611 | | - | |
612 | | - | |
| 603 | + | |
| 604 | + | |
613 | 605 | | |
614 | 606 | | |
615 | | - | |
| 607 | + | |
616 | 608 | | |
617 | 609 | | |
618 | | - | |
619 | | - | |
| 610 | + | |
620 | 611 | | |
621 | 612 | | |
622 | 613 | | |
623 | | - | |
| 614 | + | |
624 | 615 | | |
625 | 616 | | |
626 | 617 | | |
| |||
644 | 635 | | |
645 | 636 | | |
646 | 637 | | |
647 | | - | |
| 638 | + | |
| 639 | + | |
648 | 640 | | |
649 | 641 | | |
650 | 642 | | |
651 | | - | |
| 643 | + | |
| 644 | + | |
652 | 645 | | |
653 | 646 | | |
654 | 647 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1639 | 1639 | | |
1640 | 1640 | | |
1641 | 1641 | | |
1642 | | - | |
1643 | | - | |
| 1642 | + | |
| 1643 | + | |
| 1644 | + | |
| 1645 | + | |
| 1646 | + | |
| 1647 | + | |
| 1648 | + | |
| 1649 | + | |
| 1650 | + | |
| 1651 | + | |
| 1652 | + | |
| 1653 | + | |
| 1654 | + | |
| 1655 | + | |
| 1656 | + | |
| 1657 | + | |
| 1658 | + | |
1644 | 1659 | | |
1645 | 1660 | | |
1646 | 1661 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
127 | 127 | | |
128 | 128 | | |
129 | 129 | | |
130 | | - | |
131 | | - | |
| 130 | + | |
| 131 | + | |
132 | 132 | | |
133 | 133 | | |
134 | | - | |
| 134 | + | |
135 | 135 | | |
136 | 136 | | |
137 | 137 | | |
138 | 138 | | |
139 | 139 | | |
140 | | - | |
| 140 | + | |
141 | 141 | | |
142 | 142 | | |
143 | 143 | | |
| |||
170 | 170 | | |
171 | 171 | | |
172 | 172 | | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
173 | 180 | | |
174 | 181 | | |
175 | 182 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1998 | 1998 | | |
1999 | 1999 | | |
2000 | 2000 | | |
| 2001 | + | |
| 2002 | + | |
2001 | 2003 | | |
2002 | 2004 | | |
2003 | 2005 | | |
| |||
2013 | 2015 | | |
2014 | 2016 | | |
2015 | 2017 | | |
| 2018 | + | |
| 2019 | + | |
2016 | 2020 | | |
2017 | 2021 | | |
2018 | 2022 | | |
| |||
2028 | 2032 | | |
2029 | 2033 | | |
2030 | 2034 | | |
| 2035 | + | |
| 2036 | + | |
2031 | 2037 | | |
2032 | 2038 | | |
2033 | 2039 | | |
| |||
2037 | 2043 | | |
2038 | 2044 | | |
2039 | 2045 | | |
| 2046 | + | |
| 2047 | + | |
2040 | 2048 | | |
2041 | 2049 | | |
2042 | 2050 | | |
| |||
2047 | 2055 | | |
2048 | 2056 | | |
2049 | 2057 | | |
| 2058 | + | |
| 2059 | + | |
2050 | 2060 | | |
2051 | 2061 | | |
2052 | 2062 | | |
| |||
0 commit comments