Teach the frontend how to parse TypeCheckerOptions

This commit is contained in:
Robert Widmann
2019-11-08 16:33:25 -08:00
parent 097726717e
commit 422bb372d3
4 changed files with 53 additions and 41 deletions

View File

@@ -83,6 +83,7 @@ struct ModuleBuffers {
/// which manages the actual compiler execution.
class CompilerInvocation {
LangOptions LangOpts;
TypeCheckerOptions TypeCheckerOpts;
FrontendOptions FrontendOpts;
ClangImporterOptions ClangImporterOpts;
SearchPathOptions SearchPathOpts;
@@ -215,6 +216,11 @@ public:
return LangOpts;
}
TypeCheckerOptions &getTypeCheckerOptions() { return TypeCheckerOpts; }
const TypeCheckerOptions &getTypeCheckerOptions() const {
return TypeCheckerOpts;
}
FrontendOptions &getFrontendOptions() { return FrontendOpts; }
const FrontendOptions &getFrontendOptions() const { return FrontendOpts; }
@@ -648,14 +654,11 @@ private:
bool
parsePartialModulesAndLibraryFiles(const ImplicitImports &implicitImports);
OptionSet<TypeCheckingFlags> computeTypeCheckingOptions();
void forEachFileToTypeCheck(llvm::function_ref<void(SourceFile &)> fn);
void parseAndTypeCheckMainFileUpTo(SourceFile::ASTStage_t LimitStage,
OptionSet<TypeCheckingFlags> TypeCheckOptions);
void parseAndTypeCheckMainFileUpTo(SourceFile::ASTStage_t LimitStage);
void finishTypeChecking(OptionSet<TypeCheckingFlags> TypeCheckOptions);
void finishTypeChecking();
public:
const PrimarySpecificPaths &