Commit d8cf185
committed
Sema: Fix source location bookkeeping for 'reasonable time' diagnostic
We already had bookkeeping to track which statement in a multi-statement
closure we were looking at, but this was only used for the 'reasonable time'
diagnostic in the case that we hit the expression timer, which was almost
never hit, and is now off by default. The scope, memory, and trial limits
couldn't use this information, so they would always diagnose the entire
target being type checked.
Move it up from ExpressionTimer to ConstraintSystem, so that we get the
right source location there too. Also, factor out some code duplication
in BuilderTransform to ensure we get the same benefit for result builders
applied to function bodies too.1 parent a99aebb commit d8cf185
File tree
9 files changed
+180
-132
lines changed- include/swift/Sema
- lib/Sema
- test/Constraints
- validation-test/Sema
- SwiftUI
- type_checker_perf/slow
9 files changed
+180
-132
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
236 | 236 | | |
237 | 237 | | |
238 | 238 | | |
239 | | - | |
240 | | - | |
241 | | - | |
242 | | - | |
243 | | - | |
244 | | - | |
| 239 | + | |
245 | 240 | | |
246 | 241 | | |
247 | 242 | | |
248 | 243 | | |
249 | 244 | | |
250 | 245 | | |
251 | | - | |
252 | 246 | | |
253 | 247 | | |
254 | 248 | | |
255 | 249 | | |
256 | 250 | | |
257 | | - | |
258 | | - | |
| 251 | + | |
259 | 252 | | |
260 | 253 | | |
261 | 254 | | |
262 | | - | |
263 | | - | |
264 | | - | |
265 | | - | |
266 | | - | |
267 | | - | |
268 | | - | |
| 255 | + | |
269 | 256 | | |
270 | 257 | | |
271 | 258 | | |
| |||
2159 | 2146 | | |
2160 | 2147 | | |
2161 | 2148 | | |
| 2149 | + | |
2162 | 2150 | | |
| 2151 | + | |
2163 | 2152 | | |
2164 | 2153 | | |
2165 | 2154 | | |
| |||
5384 | 5373 | | |
5385 | 5374 | | |
5386 | 5375 | | |
| 5376 | + | |
| 5377 | + | |
| 5378 | + | |
5387 | 5379 | | |
5388 | 5380 | | |
5389 | 5381 | | |
| |||
5481 | 5473 | | |
5482 | 5474 | | |
5483 | 5475 | | |
| 5476 | + | |
| 5477 | + | |
5484 | 5478 | | |
5485 | 5479 | | |
5486 | 5480 | | |
| |||
5518 | 5512 | | |
5519 | 5513 | | |
5520 | 5514 | | |
5521 | | - | |
5522 | 5515 | | |
5523 | 5516 | | |
5524 | 5517 | | |
| |||
5571 | 5564 | | |
5572 | 5565 | | |
5573 | 5566 | | |
5574 | | - | |
| 5567 | + | |
| 5568 | + | |
| 5569 | + | |
| 5570 | + | |
| 5571 | + | |
| 5572 | + | |
| 5573 | + | |
| 5574 | + | |
5575 | 5575 | | |
5576 | 5576 | | |
5577 | 5577 | | |
| |||
5584 | 5584 | | |
5585 | 5585 | | |
5586 | 5586 | | |
5587 | | - | |
5588 | | - | |
5589 | | - | |
5590 | | - | |
5591 | | - | |
5592 | | - | |
5593 | | - | |
5594 | | - | |
5595 | | - | |
5596 | | - | |
5597 | | - | |
5598 | | - | |
5599 | | - | |
5600 | | - | |
5601 | | - | |
5602 | | - | |
5603 | | - | |
5604 | | - | |
5605 | | - | |
5606 | | - | |
5607 | | - | |
5608 | | - | |
5609 | | - | |
5610 | | - | |
5611 | | - | |
5612 | | - | |
5613 | | - | |
5614 | | - | |
5615 | | - | |
5616 | | - | |
5617 | | - | |
5618 | | - | |
5619 | | - | |
5620 | | - | |
5621 | | - | |
5622 | | - | |
5623 | | - | |
5624 | | - | |
5625 | | - | |
5626 | | - | |
5627 | | - | |
5628 | | - | |
5629 | | - | |
5630 | | - | |
5631 | | - | |
5632 | | - | |
5633 | | - | |
| 5587 | + | |
5634 | 5588 | | |
5635 | 5589 | | |
5636 | 5590 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1053 | 1053 | | |
1054 | 1054 | | |
1055 | 1055 | | |
1056 | | - | |
1057 | | - | |
1058 | | - | |
| 1056 | + | |
1059 | 1057 | | |
1060 | 1058 | | |
1061 | 1059 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
829 | 829 | | |
830 | 830 | | |
831 | 831 | | |
832 | | - | |
833 | | - | |
834 | | - | |
| 832 | + | |
835 | 833 | | |
836 | 834 | | |
837 | 835 | | |
| |||
1455 | 1453 | | |
1456 | 1454 | | |
1457 | 1455 | | |
1458 | | - | |
1459 | | - | |
1460 | | - | |
1461 | | - | |
1462 | | - | |
1463 | | - | |
1464 | | - | |
1465 | | - | |
1466 | | - | |
1467 | | - | |
1468 | | - | |
1469 | | - | |
| 1456 | + | |
1470 | 1457 | | |
1471 | 1458 | | |
1472 | 1459 | | |
| |||
1501 | 1488 | | |
1502 | 1489 | | |
1503 | 1490 | | |
| 1491 | + | |
| 1492 | + | |
| 1493 | + | |
| 1494 | + | |
| 1495 | + | |
| 1496 | + | |
| 1497 | + | |
| 1498 | + | |
| 1499 | + | |
| 1500 | + | |
| 1501 | + | |
| 1502 | + | |
| 1503 | + | |
1504 | 1504 | | |
1505 | 1505 | | |
1506 | 1506 | | |
| |||
1518 | 1518 | | |
1519 | 1519 | | |
1520 | 1520 | | |
1521 | | - | |
1522 | 1521 | | |
1523 | | - | |
| 1522 | + | |
1524 | 1523 | | |
1525 | 1524 | | |
1526 | 1525 | | |
| |||
1701 | 1700 | | |
1702 | 1701 | | |
1703 | 1702 | | |
1704 | | - | |
1705 | | - | |
| 1703 | + | |
1706 | 1704 | | |
1707 | 1705 | | |
1708 | 1706 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
823 | 823 | | |
824 | 824 | | |
825 | 825 | | |
826 | | - | |
| 826 | + | |
827 | 827 | | |
828 | | - | |
| 828 | + | |
| 829 | + | |
| 830 | + | |
| 831 | + | |
| 832 | + | |
829 | 833 | | |
830 | 834 | | |
831 | 835 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
867 | 867 | | |
868 | 868 | | |
869 | 869 | | |
870 | | - | |
871 | | - | |
| 870 | + | |
872 | 871 | | |
873 | 872 | | |
874 | 873 | | |
| |||
910 | 909 | | |
911 | 910 | | |
912 | 911 | | |
913 | | - | |
| 912 | + | |
914 | 913 | | |
915 | 914 | | |
916 | 915 | | |
| |||
925 | 924 | | |
926 | 925 | | |
927 | 926 | | |
928 | | - | |
929 | | - | |
930 | | - | |
931 | | - | |
932 | | - | |
| 927 | + | |
| 928 | + | |
933 | 929 | | |
934 | 930 | | |
935 | 931 | | |
| |||
0 commit comments