Front-end: add an option to ignore .swiftsourceinfo file for testing purposes

We generate .swiftsourceinfo for stdlib in the build directory because ABI checker
could issue diagnostics to the stdlib source. However, this may also change other
diagnostic tests. Both Brent and Jordan have raised concern about this. After
adding this flag, other diagnostic tests could ignore .swiftsourceinfo files even
though when they are present so our tests will reflect what most users experience
when sources for stdlib are unavailable.
This commit is contained in:
Xi Ge
2019-10-15 10:41:32 -07:00
parent f8209f2865
commit 0a396ab38f
7 changed files with 46 additions and 24 deletions

View File

@@ -134,8 +134,9 @@ class ModuleInterfaceLoader : public SerializedModuleLoaderBase {
ASTContext &ctx, StringRef cacheDir, StringRef prebuiltCacheDir,
DependencyTracker *tracker, ModuleLoadingMode loadMode,
ArrayRef<std::string> PreferInterfaceForModules,
bool RemarkOnRebuildFromInterface)
: SerializedModuleLoaderBase(ctx, tracker, loadMode),
bool RemarkOnRebuildFromInterface, bool IgnoreSwiftSourceInfoFile)
: SerializedModuleLoaderBase(ctx, tracker, loadMode,
IgnoreSwiftSourceInfoFile),
CacheDir(cacheDir), PrebuiltCacheDir(prebuiltCacheDir),
RemarkOnRebuildFromInterface(RemarkOnRebuildFromInterface),
PreferInterfaceForModules(PreferInterfaceForModules)
@@ -161,12 +162,14 @@ public:
create(ASTContext &ctx, StringRef cacheDir, StringRef prebuiltCacheDir,
DependencyTracker *tracker, ModuleLoadingMode loadMode,
ArrayRef<std::string> PreferInterfaceForModules = {},
bool RemarkOnRebuildFromInterface = false) {
bool RemarkOnRebuildFromInterface = false,
bool IgnoreSwiftSourceInfoFile = false) {
return std::unique_ptr<ModuleInterfaceLoader>(
new ModuleInterfaceLoader(ctx, cacheDir, prebuiltCacheDir,
tracker, loadMode,
PreferInterfaceForModules,
RemarkOnRebuildFromInterface));
RemarkOnRebuildFromInterface,
IgnoreSwiftSourceInfoFile));
}
/// Append visible module names to \p names. Note that names are possibly