[Dependency Scanning] Unique collected cross-import overlay files with a set

Resolves rdar://146141228
This commit is contained in:
Artem Chikin
2025-03-05 15:00:07 -08:00
parent 0997a7e016
commit 148fb369fe
4 changed files with 25 additions and 5 deletions

View File

@@ -202,7 +202,7 @@ void ModuleLoader::findOverlayFiles(SourceLoc diagLoc, ModuleDecl *module,
llvm::StringMap<llvm::SmallSetVector<Identifier, 4>>
ModuleDependencyInfo::collectCrossImportOverlayNames(
ASTContext &ctx, StringRef moduleName,
std::vector<std::pair<std::string, std::string>> &overlayFiles) const {
std::set<std::pair<std::string, std::string>> &overlayFiles) const {
using namespace llvm::sys;
using namespace file_types;
std::optional<std::string> modulePath;
@@ -254,7 +254,7 @@ ModuleDependencyInfo::collectCrossImportOverlayNames(
ModuleDecl::collectCrossImportOverlay(ctx, file, moduleName,
bystandingModule);
result[bystandingModule] = std::move(overlayNames);
overlayFiles.push_back({moduleName.str(), file.str()});
overlayFiles.insert({moduleName.str(), file.str()});
});
return result;
}