mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
use new noncopyable types infrastructure
The infrastructure underpinning the new feature NoncopyableGenerics is mature enough to be used.
This commit is contained in:
@@ -486,19 +486,6 @@ struct RequireOSSAModules_t {
|
||||
explicit operator bool() const { return bool(value); }
|
||||
};
|
||||
|
||||
/// Help prevent confusion between different bools being passed around.
|
||||
struct RequireNoncopyableGenerics_t {
|
||||
private:
|
||||
bool value;
|
||||
public:
|
||||
RequireNoncopyableGenerics_t(const ASTContext &ctx)
|
||||
: RequireNoncopyableGenerics_t(ctx.LangOpts) {}
|
||||
RequireNoncopyableGenerics_t(const LangOptions &opts)
|
||||
: value(opts.hasFeature(Feature::NoncopyableGenerics)) {}
|
||||
|
||||
explicit operator bool() const { return value; }
|
||||
};
|
||||
|
||||
class ModuleInterfaceCheckerImpl: public ModuleInterfaceChecker {
|
||||
friend class ModuleInterfaceLoader;
|
||||
ASTContext &Ctx;
|
||||
@@ -507,26 +494,22 @@ class ModuleInterfaceCheckerImpl: public ModuleInterfaceChecker {
|
||||
std::string BackupInterfaceDir;
|
||||
ModuleInterfaceLoaderOptions Opts;
|
||||
RequireOSSAModules_t RequiresOSSAModules;
|
||||
RequireNoncopyableGenerics_t RequireNCGenerics;
|
||||
|
||||
public:
|
||||
explicit ModuleInterfaceCheckerImpl(ASTContext &Ctx, StringRef cacheDir,
|
||||
StringRef prebuiltCacheDir,
|
||||
StringRef BackupInterfaceDir,
|
||||
ModuleInterfaceLoaderOptions opts,
|
||||
RequireOSSAModules_t requiresOSSAModules,
|
||||
RequireNoncopyableGenerics_t requireNCGenerics)
|
||||
RequireOSSAModules_t requiresOSSAModules)
|
||||
: Ctx(Ctx), CacheDir(cacheDir), PrebuiltCacheDir(prebuiltCacheDir),
|
||||
BackupInterfaceDir(BackupInterfaceDir),
|
||||
Opts(opts), RequiresOSSAModules(requiresOSSAModules),
|
||||
RequireNCGenerics(requireNCGenerics) {}
|
||||
Opts(opts), RequiresOSSAModules(requiresOSSAModules) {}
|
||||
explicit ModuleInterfaceCheckerImpl(ASTContext &Ctx, StringRef cacheDir,
|
||||
StringRef prebuiltCacheDir,
|
||||
ModuleInterfaceLoaderOptions opts,
|
||||
RequireOSSAModules_t requiresOSSAModules,
|
||||
RequireNoncopyableGenerics_t requireNCGenerics):
|
||||
RequireOSSAModules_t requiresOSSAModules):
|
||||
ModuleInterfaceCheckerImpl(Ctx, cacheDir, prebuiltCacheDir, StringRef(),
|
||||
opts, requiresOSSAModules, requireNCGenerics) {}
|
||||
opts, requiresOSSAModules) {}
|
||||
std::vector<std::string>
|
||||
getCompiledModuleCandidatesForInterface(StringRef moduleName,
|
||||
StringRef interfacePath) override;
|
||||
@@ -602,7 +585,6 @@ public:
|
||||
bool SerializeDependencyHashes, bool TrackSystemDependencies,
|
||||
ModuleInterfaceLoaderOptions Opts,
|
||||
RequireOSSAModules_t RequireOSSAModules,
|
||||
RequireNoncopyableGenerics_t RequireNCGenerics,
|
||||
bool silenceInterfaceDiagnostics);
|
||||
|
||||
/// Unconditionally build \p InPath (a swiftinterface file) to \p OutPath (as
|
||||
@@ -657,8 +639,7 @@ private:
|
||||
const ClangImporterOptions &clangImporterOpts,
|
||||
const CASOptions &casOpts,
|
||||
bool suppressRemarks,
|
||||
RequireOSSAModules_t requireOSSAModules,
|
||||
RequireNoncopyableGenerics_t requireNCGenerics);
|
||||
RequireOSSAModules_t requireOSSAModules);
|
||||
bool extractSwiftInterfaceVersionAndArgs(CompilerInvocation &subInvocation,
|
||||
SwiftInterfaceInfo &interfaceInfo,
|
||||
StringRef interfacePath,
|
||||
@@ -671,8 +652,7 @@ public:
|
||||
ModuleInterfaceLoaderOptions LoaderOpts, bool buildModuleCacheDirIfAbsent,
|
||||
StringRef moduleCachePath, StringRef prebuiltCachePath,
|
||||
StringRef backupModuleInterfaceDir, bool serializeDependencyHashes,
|
||||
bool trackSystemDependencies, RequireOSSAModules_t requireOSSAModules,
|
||||
RequireNoncopyableGenerics_t requireNCGenerics);
|
||||
bool trackSystemDependencies, RequireOSSAModules_t requireOSSAModules);
|
||||
|
||||
template<typename ...ArgTypes>
|
||||
static InFlightDiagnostic diagnose(StringRef interfacePath,
|
||||
|
||||
Reference in New Issue
Block a user