Merge pull request #33114 from brentdax/check-your-interfaces-at-the-door

Verify that just-emitted module interfaces parse and typecheck
This commit is contained in:
Brent Royal-Gordon
2020-08-24 20:33:58 -07:00
committed by GitHub
23 changed files with 203 additions and 26 deletions

View File

@@ -51,6 +51,7 @@ bool FrontendOptions::needsProperModuleName(ActionType action) {
case ActionType::EmitModuleOnly:
case ActionType::MergeModules:
case ActionType::CompileModuleFromInterface:
case ActionType::TypecheckModuleFromInterface:
return true;
case ActionType::Immediate:
case ActionType::REPL:
@@ -120,6 +121,7 @@ FrontendOptions::formatForPrincipalOutputFileForAction(ActionType action) {
case ActionType::Parse:
case ActionType::ResolveImports:
case ActionType::Typecheck:
case ActionType::TypecheckModuleFromInterface:
case ActionType::DumpParse:
case ActionType::DumpInterfaceHash:
case ActionType::DumpAST:
@@ -195,6 +197,7 @@ bool FrontendOptions::canActionEmitDependencies(ActionType action) {
case ActionType::DumpTypeRefinementContexts:
case ActionType::DumpTypeInfo:
case ActionType::CompileModuleFromInterface:
case ActionType::TypecheckModuleFromInterface:
case ActionType::Immediate:
case ActionType::REPL:
case ActionType::DumpPCM:
@@ -236,6 +239,7 @@ bool FrontendOptions::canActionEmitReferenceDependencies(ActionType action) {
case ActionType::DumpTypeRefinementContexts:
case ActionType::DumpTypeInfo:
case ActionType::CompileModuleFromInterface:
case ActionType::TypecheckModuleFromInterface:
case ActionType::Immediate:
case ActionType::REPL:
case ActionType::EmitPCM:
@@ -285,6 +289,7 @@ bool FrontendOptions::canActionEmitObjCHeader(ActionType action) {
case ActionType::DumpTypeRefinementContexts:
case ActionType::DumpTypeInfo:
case ActionType::CompileModuleFromInterface:
case ActionType::TypecheckModuleFromInterface:
case ActionType::Immediate:
case ActionType::REPL:
case ActionType::EmitPCM:
@@ -323,6 +328,7 @@ bool FrontendOptions::canActionEmitLoadedModuleTrace(ActionType action) {
case ActionType::DumpTypeRefinementContexts:
case ActionType::DumpTypeInfo:
case ActionType::CompileModuleFromInterface:
case ActionType::TypecheckModuleFromInterface:
case ActionType::Immediate:
case ActionType::REPL:
case ActionType::EmitPCM:
@@ -367,6 +373,7 @@ bool FrontendOptions::canActionEmitModule(ActionType action) {
case ActionType::DumpTypeInfo:
case ActionType::EmitSILGen:
case ActionType::CompileModuleFromInterface:
case ActionType::TypecheckModuleFromInterface:
case ActionType::Immediate:
case ActionType::REPL:
case ActionType::EmitPCM:
@@ -412,6 +419,7 @@ bool FrontendOptions::canActionEmitInterface(ActionType action) {
case ActionType::EmitSILGen:
case ActionType::EmitSIBGen:
case ActionType::CompileModuleFromInterface:
case ActionType::TypecheckModuleFromInterface:
case ActionType::Immediate:
case ActionType::REPL:
case ActionType::EmitPCM:
@@ -459,6 +467,7 @@ bool FrontendOptions::doesActionProduceOutput(ActionType action) {
case ActionType::EmitImportedModules:
case ActionType::MergeModules:
case ActionType::CompileModuleFromInterface:
case ActionType::TypecheckModuleFromInterface:
case ActionType::DumpTypeInfo:
case ActionType::EmitPCM:
case ActionType::DumpPCM:
@@ -494,6 +503,7 @@ bool FrontendOptions::doesActionProduceTextualOutput(ActionType action) {
case ActionType::Parse:
case ActionType::ResolveImports:
case ActionType::Typecheck:
case ActionType::TypecheckModuleFromInterface:
case ActionType::DumpParse:
case ActionType::DumpInterfaceHash:
case ActionType::DumpAST:
@@ -532,6 +542,7 @@ bool FrontendOptions::doesActionGenerateSIL(ActionType action) {
case ActionType::EmitImportedModules:
case ActionType::EmitPCH:
case ActionType::CompileModuleFromInterface:
case ActionType::TypecheckModuleFromInterface:
case ActionType::EmitPCM:
case ActionType::DumpPCM:
case ActionType::ScanDependencies:
@@ -569,6 +580,7 @@ bool FrontendOptions::doesActionGenerateIR(ActionType action) {
case ActionType::DumpTypeRefinementContexts:
case ActionType::DumpTypeInfo:
case ActionType::CompileModuleFromInterface:
case ActionType::TypecheckModuleFromInterface:
case ActionType::Typecheck:
case ActionType::ResolveImports:
case ActionType::MergeModules: