Commit e0b52cd
committed
[SIL] Extend checked-cast instructions with "prohibit isolated conformances" flag
When performing a dynamic cast to an existential type that satisfies
(Metatype)Sendable, it is unsafe to allow isolated conformances of any
kind to satisfy protocol requirements for the existential. Identify
these cases and mark the corresponding cast instructions with a new flag,
`[prohibit_isolated_conformances]` that will be used to indicate to the
runtime that isolated conformances need to be rejected.1 parent e8d871c commit e0b52cd
File tree
29 files changed
+513
-134
lines changed- SwiftCompilerSources/Sources
- Optimizer/InstructionSimplification
- SIL
- docs/SIL
- include/swift/SIL
- lib
- SILGen
- SILOptimizer
- Differentiation
- Mandatory
- Transforms
- Utils
- SIL
- IR
- Parser
- Utils
- Serialization
- test/Concurrency
29 files changed
+513
-134
lines changedLines changed: 2 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
213 | 213 | | |
214 | 214 | | |
215 | 215 | | |
| 216 | + | |
216 | 217 | | |
217 | 218 | | |
218 | 219 | | |
219 | 220 | | |
220 | 221 | | |
221 | 222 | | |
| 223 | + | |
222 | 224 | | |
223 | 225 | | |
224 | 226 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
180 | 180 | | |
181 | 181 | | |
182 | 182 | | |
183 | | - | |
| 183 | + | |
| 184 | + | |
184 | 185 | | |
185 | 186 | | |
186 | 187 | | |
| |||
191 | 192 | | |
192 | 193 | | |
193 | 194 | | |
| 195 | + | |
194 | 196 | | |
195 | 197 | | |
| 198 | + | |
196 | 199 | | |
197 | 200 | | |
198 | 201 | | |
199 | 202 | | |
200 | 203 | | |
201 | 204 | | |
202 | 205 | | |
| 206 | + | |
203 | 207 | | |
204 | 208 | | |
205 | 209 | | |
206 | | - | |
207 | | - | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
208 | 215 | | |
209 | 216 | | |
210 | 217 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
528 | 528 | | |
529 | 529 | | |
530 | 530 | | |
| 531 | + | |
| 532 | + | |
| 533 | + | |
| 534 | + | |
| 535 | + | |
| 536 | + | |
| 537 | + | |
| 538 | + | |
531 | 539 | | |
532 | 540 | | |
533 | 541 | | |
| |||
1032 | 1040 | | |
1033 | 1041 | | |
1034 | 1042 | | |
| 1043 | + | |
| 1044 | + | |
| 1045 | + | |
| 1046 | + | |
| 1047 | + | |
| 1048 | + | |
| 1049 | + | |
| 1050 | + | |
1035 | 1051 | | |
1036 | 1052 | | |
1037 | 1053 | | |
| |||
1771 | 1787 | | |
1772 | 1788 | | |
1773 | 1789 | | |
| 1790 | + | |
| 1791 | + | |
| 1792 | + | |
| 1793 | + | |
| 1794 | + | |
| 1795 | + | |
| 1796 | + | |
| 1797 | + | |
| 1798 | + | |
| 1799 | + | |
| 1800 | + | |
| 1801 | + | |
1774 | 1802 | | |
1775 | 1803 | | |
1776 | 1804 | | |
| |||
1779 | 1807 | | |
1780 | 1808 | | |
1781 | 1809 | | |
| 1810 | + | |
| 1811 | + | |
| 1812 | + | |
| 1813 | + | |
| 1814 | + | |
| 1815 | + | |
| 1816 | + | |
| 1817 | + | |
1782 | 1818 | | |
1783 | 1819 | | |
1784 | 1820 | | |
| |||
1819 | 1855 | | |
1820 | 1856 | | |
1821 | 1857 | | |
| 1858 | + | |
| 1859 | + | |
| 1860 | + | |
| 1861 | + | |
| 1862 | + | |
| 1863 | + | |
| 1864 | + | |
| 1865 | + | |
1822 | 1866 | | |
1823 | 1867 | | |
1824 | 1868 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4851 | 4851 | | |
4852 | 4852 | | |
4853 | 4853 | | |
4854 | | - | |
| 4854 | + | |
| 4855 | + | |
| 4856 | + | |
4855 | 4857 | | |
4856 | 4858 | | |
4857 | 4859 | | |
| |||
4867 | 4869 | | |
4868 | 4870 | | |
4869 | 4871 | | |
4870 | | - | |
4871 | | - | |
| 4872 | + | |
| 4873 | + | |
| 4874 | + | |
4872 | 4875 | | |
4873 | 4876 | | |
4874 | 4877 | | |
| |||
5231 | 5234 | | |
5232 | 5235 | | |
5233 | 5236 | | |
| 5237 | + | |
5234 | 5238 | | |
5235 | 5239 | | |
5236 | 5240 | | |
5237 | 5241 | | |
| 5242 | + | |
5238 | 5243 | | |
5239 | 5244 | | |
5240 | 5245 | | |
| |||
5253 | 5258 | | |
5254 | 5259 | | |
5255 | 5260 | | |
| 5261 | + | |
| 5262 | + | |
| 5263 | + | |
5256 | 5264 | | |
5257 | 5265 | | |
5258 | 5266 | | |
5259 | 5267 | | |
| 5268 | + | |
5260 | 5269 | | |
5261 | 5270 | | |
5262 | 5271 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
103 | 103 | | |
104 | 104 | | |
105 | 105 | | |
| 106 | + | |
106 | 107 | | |
107 | 108 | | |
108 | 109 | | |
| |||
452 | 453 | | |
453 | 454 | | |
454 | 455 | | |
| 456 | + | |
| 457 | + | |
| 458 | + | |
| 459 | + | |
| 460 | + | |
| 461 | + | |
| 462 | + | |
| 463 | + | |
| 464 | + | |
| 465 | + | |
| 466 | + | |
| 467 | + | |
| 468 | + | |
| 469 | + | |
| 470 | + | |
455 | 471 | | |
456 | 472 | | |
457 | 473 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
696 | 696 | | |
697 | 697 | | |
698 | 698 | | |
| 699 | + | |
| 700 | + | |
| 701 | + | |
| 702 | + | |
| 703 | + | |
699 | 704 | | |
700 | 705 | | |
701 | 706 | | |
| |||
802 | 807 | | |
803 | 808 | | |
804 | 809 | | |
| 810 | + | |
| 811 | + | |
805 | 812 | | |
806 | 813 | | |
| 814 | + | |
| 815 | + | |
807 | 816 | | |
808 | 817 | | |
| 818 | + | |
| 819 | + | |
809 | 820 | | |
810 | 821 | | |
811 | 822 | | |
812 | 823 | | |
| 824 | + | |
| 825 | + | |
813 | 826 | | |
814 | 827 | | |
815 | 828 | | |
| |||
1122 | 1135 | | |
1123 | 1136 | | |
1124 | 1137 | | |
1125 | | - | |
1126 | | - | |
1127 | | - | |
1128 | | - | |
| 1138 | + | |
| 1139 | + | |
| 1140 | + | |
| 1141 | + | |
| 1142 | + | |
1129 | 1143 | | |
1130 | | - | |
1131 | | - | |
| 1144 | + | |
| 1145 | + | |
| 1146 | + | |
1132 | 1147 | | |
1133 | 1148 | | |
1134 | 1149 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1475 | 1475 | | |
1476 | 1476 | | |
1477 | 1477 | | |
| 1478 | + | |
| 1479 | + | |
| 1480 | + | |
| 1481 | + | |
| 1482 | + | |
| 1483 | + | |
1478 | 1484 | | |
1479 | 1485 | | |
1480 | 1486 | | |
| |||
1483 | 1489 | | |
1484 | 1490 | | |
1485 | 1491 | | |
| 1492 | + | |
| 1493 | + | |
| 1494 | + | |
| 1495 | + | |
| 1496 | + | |
| 1497 | + | |
1486 | 1498 | | |
1487 | 1499 | | |
1488 | 1500 | | |
| |||
1491 | 1503 | | |
1492 | 1504 | | |
1493 | 1505 | | |
| 1506 | + | |
| 1507 | + | |
| 1508 | + | |
| 1509 | + | |
| 1510 | + | |
| 1511 | + | |
1494 | 1512 | | |
1495 | 1513 | | |
1496 | 1514 | | |
| |||
1519 | 1537 | | |
1520 | 1538 | | |
1521 | 1539 | | |
| 1540 | + | |
| 1541 | + | |
| 1542 | + | |
| 1543 | + | |
| 1544 | + | |
1522 | 1545 | | |
1523 | 1546 | | |
1524 | 1547 | | |
| |||
2065 | 2088 | | |
2066 | 2089 | | |
2067 | 2090 | | |
2068 | | - | |
2069 | | - | |
2070 | | - | |
2071 | | - | |
| 2091 | + | |
| 2092 | + | |
| 2093 | + | |
| 2094 | + | |
| 2095 | + | |
2072 | 2096 | | |
2073 | 2097 | | |
2074 | | - | |
2075 | | - | |
2076 | | - | |
2077 | | - | |
| 2098 | + | |
| 2099 | + | |
| 2100 | + | |
| 2101 | + | |
| 2102 | + | |
| 2103 | + | |
2078 | 2104 | | |
2079 | 2105 | | |
2080 | 2106 | | |
2081 | | - | |
2082 | | - | |
| 2107 | + | |
| 2108 | + | |
| 2109 | + | |
2083 | 2110 | | |
2084 | 2111 | | |
2085 | | - | |
2086 | | - | |
| 2112 | + | |
| 2113 | + | |
| 2114 | + | |
| 2115 | + | |
2087 | 2116 | | |
2088 | 2117 | | |
2089 | 2118 | | |
| |||
0 commit comments