mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
[Serialization] Refactor logic deciding transitive module loading logic
Refactor and centralize the logic about how implementation-only and package-only dependencies should be loaded.
This commit is contained in:
@@ -940,10 +940,11 @@ void swift::serialization::diagnoseSerializedASTLoadFailure(
|
||||
std::copy_if(
|
||||
loadedModuleFile->getDependencies().begin(),
|
||||
loadedModuleFile->getDependencies().end(), std::back_inserter(missing),
|
||||
[&duplicates, &Ctx](const ModuleFile::Dependency &dependency) -> bool {
|
||||
[&duplicates, &loadedModuleFile](
|
||||
const ModuleFile::Dependency &dependency) -> bool {
|
||||
if (dependency.isLoaded() || dependency.isHeader() ||
|
||||
(dependency.isImplementationOnly() &&
|
||||
Ctx.LangOpts.DebuggerSupport)) {
|
||||
loadedModuleFile->getTransitiveLoadingBehavior(dependency) !=
|
||||
ModuleLoadingBehavior::Required) {
|
||||
return false;
|
||||
}
|
||||
return duplicates.insert(dependency.Core.RawPath).second;
|
||||
|
||||
Reference in New Issue
Block a user