Commit 40cd987
committed
[region-isolation] Always require before transferring.
We purposely do not treat a PartitionOpKind::Transfer as a require since that
would cause us to error when we weakly transfer the same parameter multiple
times to the same function. This is safe since all of the function parameters
will be in the same region.
To ensure that this fixed the multiple strong transferring issue (which is
exposed by requiring before transferring), I also had to muck around a little
with how we emit errors to ensure that we emit errors if the transfer
instruction is also the require.1 parent f3edb57 commit 40cd987
File tree
5 files changed
+86
-33
lines changed- lib/SILOptimizer
- Analysis
- Mandatory
- test/Concurrency
5 files changed
+86
-33
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1625 | 1625 | | |
1626 | 1626 | | |
1627 | 1627 | | |
| 1628 | + | |
1628 | 1629 | | |
1629 | 1630 | | |
1630 | 1631 | | |
| |||
1731 | 1732 | | |
1732 | 1733 | | |
1733 | 1734 | | |
| 1735 | + | |
1734 | 1736 | | |
1735 | 1737 | | |
1736 | 1738 | | |
| |||
1747 | 1749 | | |
1748 | 1750 | | |
1749 | 1751 | | |
| 1752 | + | |
1750 | 1753 | | |
1751 | 1754 | | |
1752 | 1755 | | |
| |||
1816 | 1819 | | |
1817 | 1820 | | |
1818 | 1821 | | |
1819 | | - | |
| 1822 | + | |
1820 | 1823 | | |
1821 | 1824 | | |
1822 | 1825 | | |
| |||
1938 | 1941 | | |
1939 | 1942 | | |
1940 | 1943 | | |
| 1944 | + | |
1941 | 1945 | | |
1942 | 1946 | | |
1943 | 1947 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
214 | 214 | | |
215 | 215 | | |
216 | 216 | | |
217 | | - | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
218 | 221 | | |
219 | 222 | | |
220 | 223 | | |
| |||
1083 | 1086 | | |
1084 | 1087 | | |
1085 | 1088 | | |
1086 | | - | |
1087 | | - | |
1088 | | - | |
1089 | | - | |
1090 | | - | |
1091 | 1089 | | |
1092 | 1090 | | |
1093 | 1091 | | |
| |||
1104 | 1102 | | |
1105 | 1103 | | |
1106 | 1104 | | |
| 1105 | + | |
| 1106 | + | |
| 1107 | + | |
| 1108 | + | |
| 1109 | + | |
| 1110 | + | |
| 1111 | + | |
| 1112 | + | |
| 1113 | + | |
| 1114 | + | |
| 1115 | + | |
| 1116 | + | |
| 1117 | + | |
| 1118 | + | |
| 1119 | + | |
| 1120 | + | |
| 1121 | + | |
| 1122 | + | |
| 1123 | + | |
| 1124 | + | |
| 1125 | + | |
| 1126 | + | |
| 1127 | + | |
| 1128 | + | |
| 1129 | + | |
| 1130 | + | |
| 1131 | + | |
| 1132 | + | |
| 1133 | + | |
| 1134 | + | |
| 1135 | + | |
| 1136 | + | |
| 1137 | + | |
| 1138 | + | |
1107 | 1139 | | |
1108 | 1140 | | |
1109 | 1141 | | |
| |||
1170 | 1202 | | |
1171 | 1203 | | |
1172 | 1204 | | |
| 1205 | + | |
1173 | 1206 | | |
1174 | | - | |
1175 | | - | |
1176 | | - | |
1177 | | - | |
1178 | | - | |
1179 | | - | |
1180 | | - | |
1181 | | - | |
1182 | | - | |
1183 | | - | |
1184 | | - | |
1185 | | - | |
1186 | | - | |
1187 | | - | |
1188 | | - | |
1189 | | - | |
1190 | | - | |
1191 | | - | |
1192 | | - | |
1193 | | - | |
1194 | | - | |
1195 | | - | |
| 1207 | + | |
| 1208 | + | |
| 1209 | + | |
| 1210 | + | |
| 1211 | + | |
1196 | 1212 | | |
1197 | 1213 | | |
1198 | 1214 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1133 | 1133 | | |
1134 | 1134 | | |
1135 | 1135 | | |
| 1136 | + | |
| 1137 | + | |
| 1138 | + | |
| 1139 | + | |
| 1140 | + | |
1136 | 1141 | | |
1137 | 1142 | | |
1138 | | - | |
1139 | | - | |
| 1143 | + | |
| 1144 | + | |
| 1145 | + | |
1140 | 1146 | | |
1141 | 1147 | | |
1142 | 1148 | | |
| |||
1167 | 1173 | | |
1168 | 1174 | | |
1169 | 1175 | | |
1170 | | - | |
| 1176 | + | |
1171 | 1177 | | |
1172 | 1178 | | |
1173 | 1179 | | |
| |||
1321 | 1327 | | |
1322 | 1328 | | |
1323 | 1329 | | |
1324 | | - | |
| 1330 | + | |
1325 | 1331 | | |
1326 | 1332 | | |
1327 | 1333 | | |
| |||
Lines changed: 13 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
25 | 25 | | |
26 | 26 | | |
27 | 27 | | |
| 28 | + | |
28 | 29 | | |
29 | 30 | | |
30 | 31 | | |
| |||
86 | 87 | | |
87 | 88 | | |
88 | 89 | | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
Lines changed: 14 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
38 | 38 | | |
39 | 39 | | |
40 | 40 | | |
| 41 | + | |
| 42 | + | |
41 | 43 | | |
42 | 44 | | |
43 | 45 | | |
| |||
282 | 284 | | |
283 | 285 | | |
284 | 286 | | |
| 287 | + | |
| 288 | + | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
| 293 | + | |
| 294 | + | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
| 298 | + | |
0 commit comments