Commit 6a12dc0
committed
[Dependency Scanning] Have the scanner cache answer queries relevant to current search paths only.
The dependency scanner's cache persists across different queries and answering a subsequent query's module lookup with a module not in the query's search path is not correct.
For example, suppose we are looking for a Swift module `Foo` with a set of search paths `SP`.
And dependency scanner cache already contains a module `Foo`, for which we found an interface file at location `L`. If `L`∉`SP`, then we cannot re-use the cached entry because we’d be resolving the scanning query to a filesystem location that the current scanning context is not aware of.
Resolves rdar://811759421 parent 77cb4b6 commit 6a12dc0
File tree
11 files changed
+479
-140
lines changed- include/swift/AST
- lib
- AST
- ClangImporter
- DependencyScan
- Serialization
- test/ScanDependencies
- Inputs/SwiftDifferent
11 files changed
+479
-140
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
37 | 37 | | |
38 | 38 | | |
39 | 39 | | |
| 40 | + | |
40 | 41 | | |
41 | 42 | | |
42 | 43 | | |
| |||
853 | 854 | | |
854 | 855 | | |
855 | 856 | | |
| 857 | + | |
| 858 | + | |
| 859 | + | |
| 860 | + | |
| 861 | + | |
| 862 | + | |
| 863 | + | |
856 | 864 | | |
857 | 865 | | |
858 | 866 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
63 | 63 | | |
64 | 64 | | |
65 | 65 | | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
66 | 72 | | |
67 | 73 | | |
68 | 74 | | |
| |||
407 | 413 | | |
408 | 414 | | |
409 | 415 | | |
| 416 | + | |
| 417 | + | |
410 | 418 | | |
411 | 419 | | |
412 | 420 | | |
413 | 421 | | |
414 | 422 | | |
415 | | - | |
| 423 | + | |
| 424 | + | |
| 425 | + | |
416 | 426 | | |
417 | 427 | | |
418 | | - | |
| 428 | + | |
419 | 429 | | |
420 | 430 | | |
421 | | - | |
| 431 | + | |
422 | 432 | | |
423 | 433 | | |
424 | | - | |
| 434 | + | |
425 | 435 | | |
426 | 436 | | |
427 | 437 | | |
| |||
437 | 447 | | |
438 | 448 | | |
439 | 449 | | |
440 | | - | |
| 450 | + | |
441 | 451 | | |
442 | | - | |
| 452 | + | |
443 | 453 | | |
444 | 454 | | |
445 | 455 | | |
| |||
469 | 479 | | |
470 | 480 | | |
471 | 481 | | |
472 | | - | |
| 482 | + | |
473 | 483 | | |
474 | | - | |
| 484 | + | |
475 | 485 | | |
476 | 486 | | |
477 | 487 | | |
| 488 | + | |
| 489 | + | |
| 490 | + | |
| 491 | + | |
| 492 | + | |
| 493 | + | |
| 494 | + | |
| 495 | + | |
| 496 | + | |
478 | 497 | | |
479 | 498 | | |
480 | 499 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
41 | 41 | | |
42 | 42 | | |
43 | 43 | | |
| 44 | + | |
44 | 45 | | |
45 | 46 | | |
46 | 47 | | |
| |||
1641 | 1642 | | |
1642 | 1643 | | |
1643 | 1644 | | |
| 1645 | + | |
1644 | 1646 | | |
1645 | 1647 | | |
1646 | | - | |
1647 | | - | |
| 1648 | + | |
| 1649 | + | |
| 1650 | + | |
1648 | 1651 | | |
1649 | | - | |
1650 | | - | |
| 1652 | + | |
| 1653 | + | |
1651 | 1654 | | |
1652 | | - | |
1653 | | - | |
| 1655 | + | |
| 1656 | + | |
| 1657 | + | |
1654 | 1658 | | |
1655 | 1659 | | |
1656 | | - | |
1657 | | - | |
| 1660 | + | |
| 1661 | + | |
1658 | 1662 | | |
1659 | 1663 | | |
1660 | 1664 | | |
1661 | 1665 | | |
1662 | 1666 | | |
1663 | 1667 | | |
1664 | 1668 | | |
1665 | | - | |
1666 | | - | |
| 1669 | + | |
| 1670 | + | |
1667 | 1671 | | |
1668 | 1672 | | |
1669 | 1673 | | |
| |||
1686 | 1690 | | |
1687 | 1691 | | |
1688 | 1692 | | |
| 1693 | + | |
| 1694 | + | |
| 1695 | + | |
| 1696 | + | |
| 1697 | + | |
| 1698 | + | |
| 1699 | + | |
| 1700 | + | |
| 1701 | + | |
| 1702 | + | |
| 1703 | + | |
| 1704 | + | |
| 1705 | + | |
| 1706 | + | |
| 1707 | + | |
| 1708 | + | |
| 1709 | + | |
| 1710 | + | |
| 1711 | + | |
| 1712 | + | |
| 1713 | + | |
| 1714 | + | |
| 1715 | + | |
| 1716 | + | |
| 1717 | + | |
| 1718 | + | |
| 1719 | + | |
| 1720 | + | |
| 1721 | + | |
| 1722 | + | |
| 1723 | + | |
| 1724 | + | |
| 1725 | + | |
| 1726 | + | |
| 1727 | + | |
| 1728 | + | |
| 1729 | + | |
| 1730 | + | |
| 1731 | + | |
| 1732 | + | |
| 1733 | + | |
| 1734 | + | |
| 1735 | + | |
| 1736 | + | |
| 1737 | + | |
| 1738 | + | |
| 1739 | + | |
| 1740 | + | |
| 1741 | + | |
| 1742 | + | |
| 1743 | + | |
| 1744 | + | |
| 1745 | + | |
| 1746 | + | |
| 1747 | + | |
| 1748 | + | |
| 1749 | + | |
| 1750 | + | |
| 1751 | + | |
1689 | 1752 | | |
1690 | 1753 | | |
1691 | 1754 | | |
| |||
0 commit comments