Skip to content

Commit 9b20539

Browse files
committed
Add plugin dependencies just once.
1 parent ddf1983 commit 9b20539

File tree

4 files changed

+20
-18
lines changed

4 files changed

+20
-18
lines changed

include/swift/AST/ModuleLoader.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@ class ModuleLoader {
185185

186186
protected:
187187
DependencyTracker * const dependencyTracker;
188-
ModuleLoader(DependencyTracker *tracker) : dependencyTracker(tracker) {}
188+
ModuleLoader(ASTContext &ctx, DependencyTracker *tracker);
189189

190190
public:
191191
virtual ~ModuleLoader() = default;

include/swift/Sema/SourceLoader.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ class SourceLoader : public ModuleLoader {
2929
explicit SourceLoader(ASTContext &ctx,
3030
bool enableResilience,
3131
DependencyTracker *tracker)
32-
: ModuleLoader(tracker), Ctx(ctx),
32+
: ModuleLoader(ctx, tracker), Ctx(ctx),
3333
EnableLibraryEvolution(enableResilience) {}
3434

3535
public:

lib/AST/ModuleLoader.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,14 @@ DependencyTracker::getClangCollector() {
7474
return clangCollector;
7575
}
7676

77+
ModuleLoader::ModuleLoader(ASTContext &ctx, DependencyTracker *tracker)
78+
: dependencyTracker(tracker) {
79+
// Collect compiler plugin dependencies.
80+
if (tracker)
81+
for (auto &path : ctx.SearchPathOpts.getCompilerPluginLibraryPaths())
82+
dependencyTracker->addDependency(path, /*isSystem=*/false);
83+
}
84+
7785
static bool findOverlayFilesInDirectory(ASTContext &ctx, StringRef path,
7886
StringRef moduleName,
7987
SourceLoc diagLoc,

lib/Serialization/SerializedModuleLoader.cpp

Lines changed: 10 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ Optional<bool> forEachModuleSearchPath(
125125
SerializedModuleLoaderBase::SerializedModuleLoaderBase(
126126
ASTContext &ctx, DependencyTracker *tracker, ModuleLoadingMode loadMode,
127127
bool IgnoreSwiftSourceInfoFile)
128-
: ModuleLoader(tracker), Ctx(ctx), LoadMode(loadMode),
128+
: ModuleLoader(ctx, tracker), Ctx(ctx), LoadMode(loadMode),
129129
IgnoreSwiftSourceInfoFile(IgnoreSwiftSourceInfoFile) {}
130130

131131
SerializedModuleLoaderBase::~SerializedModuleLoaderBase() = default;
@@ -1256,23 +1256,17 @@ SerializedModuleLoaderBase::loadModule(SourceLoc importLoc,
12561256
M->setFailedToLoad();
12571257
}
12581258

1259-
if (dependencyTracker) {
1260-
if (file) {
1261-
auto DepPath = file->getFilename();
1262-
// Don't record cached artifacts as dependencies.
1263-
if (!isCached(DepPath)) {
1264-
if (M->hasIncrementalInfo()) {
1265-
dependencyTracker->addIncrementalDependency(DepPath,
1266-
M->getFingerprint());
1267-
} else {
1268-
dependencyTracker->addDependency(DepPath, /*isSystem=*/false);
1269-
}
1259+
if (dependencyTracker && file) {
1260+
auto DepPath = file->getFilename();
1261+
// Don't record cached artifacts as dependencies.
1262+
if (!isCached(DepPath)) {
1263+
if (M->hasIncrementalInfo()) {
1264+
dependencyTracker->addIncrementalDependency(DepPath,
1265+
M->getFingerprint());
1266+
} else {
1267+
dependencyTracker->addDependency(DepPath, /*isSystem=*/false);
12701268
}
12711269
}
1272-
// Collect compiler plugin dependencies.
1273-
for (auto &path : Ctx.SearchPathOpts.getCompilerPluginLibraryPaths()) {
1274-
dependencyTracker->addDependency(path, /*isSystem=*/false);
1275-
}
12761270
}
12771271

12781272
return M;

0 commit comments

Comments
 (0)