[Dependency Scanning] Refactor primary scan operations into 'ModuleDependencyScanner' class

From being a scattered collection of 'static' methods in ScanDependencies.cpp
and member methods of ASTContext. This makes 'ScanDependencies.cpp' much easier
to read, and abstracts the actual scanning logic away to a place with common
state which will make it easier to reason about in the future.
This commit is contained in:
Artem Chikin
2023-08-28 16:11:48 -07:00
parent ea0e5c3a3e
commit 6e3f896962
25 changed files with 1480 additions and 1372 deletions

View File

@@ -24,15 +24,10 @@ namespace llvm {
}
namespace swift {
enum class ModuleLoadingBehavior;
}
/// How a dependency should be loaded.
///
/// \sa getTransitiveLoadingBehavior
enum class ModuleLoadingBehavior {
Required,
Optional,
Ignored
};
namespace swift {
/// Serialized core data of a module. The difference with `ModuleFile` is that
/// `ModuleFileSharedCore` provides immutable data and is independent of a