[ASTPrinter] Print expressions

Add new `-print-ast-decl` frontend option for only printing declarations,
to match existing behavior.
Some tests want to print the AST, but don't care about expressions.

The existing `-print-ast` option now prints function bodies and expressions.
Not all expressions are printed yet, but most common ones are.
This commit is contained in:
Louis D'hauwe
2021-12-22 11:35:31 -08:00
parent 77f4dfa926
commit a89ea380a9
17 changed files with 695 additions and 30 deletions

View File

@@ -39,6 +39,7 @@ bool FrontendOptions::needsProperModuleName(ActionType action) {
case ActionType::EmitSyntax:
case ActionType::DumpInterfaceHash:
case ActionType::PrintAST:
case ActionType::PrintASTDecl:
case ActionType::DumpScopeMaps:
case ActionType::DumpTypeRefinementContexts:
case ActionType::DumpPCM:
@@ -109,6 +110,7 @@ bool FrontendOptions::doesActionRequireSwiftStandardLibrary(ActionType action) {
case ActionType::Typecheck:
case ActionType::DumpAST:
case ActionType::PrintAST:
case ActionType::PrintASTDecl:
case ActionType::DumpScopeMaps:
case ActionType::DumpTypeRefinementContexts:
case ActionType::EmitSILGen:
@@ -154,6 +156,7 @@ bool FrontendOptions::doesActionRequireInputs(ActionType action) {
case ActionType::Typecheck:
case ActionType::DumpAST:
case ActionType::PrintAST:
case ActionType::PrintASTDecl:
case ActionType::DumpScopeMaps:
case ActionType::DumpTypeRefinementContexts:
case ActionType::EmitSILGen:
@@ -196,6 +199,7 @@ bool FrontendOptions::doesActionPerformEndOfPipelineActions(ActionType action) {
case ActionType::Typecheck:
case ActionType::DumpAST:
case ActionType::PrintAST:
case ActionType::PrintASTDecl:
case ActionType::DumpScopeMaps:
case ActionType::DumpTypeRefinementContexts:
case ActionType::EmitSILGen:
@@ -256,6 +260,7 @@ FrontendOptions::formatForPrincipalOutputFileForAction(ActionType action) {
case ActionType::DumpAST:
case ActionType::EmitSyntax:
case ActionType::PrintAST:
case ActionType::PrintASTDecl:
case ActionType::DumpScopeMaps:
case ActionType::DumpTypeRefinementContexts:
case ActionType::DumpTypeInfo:
@@ -324,6 +329,7 @@ bool FrontendOptions::canActionEmitDependencies(ActionType action) {
case ActionType::DumpAST:
case ActionType::EmitSyntax:
case ActionType::PrintAST:
case ActionType::PrintASTDecl:
case ActionType::DumpScopeMaps:
case ActionType::DumpTypeRefinementContexts:
case ActionType::DumpTypeInfo:
@@ -367,6 +373,7 @@ bool FrontendOptions::canActionEmitReferenceDependencies(ActionType action) {
case ActionType::DumpAST:
case ActionType::EmitSyntax:
case ActionType::PrintAST:
case ActionType::PrintASTDecl:
case ActionType::DumpScopeMaps:
case ActionType::DumpTypeRefinementContexts:
case ActionType::DumpTypeInfo:
@@ -409,6 +416,7 @@ bool FrontendOptions::canActionEmitModuleSummary(ActionType action) {
case ActionType::DumpAST:
case ActionType::EmitSyntax:
case ActionType::PrintAST:
case ActionType::PrintASTDecl:
case ActionType::EmitImportedModules:
case ActionType::EmitPCH:
case ActionType::DumpScopeMaps:
@@ -451,6 +459,7 @@ bool FrontendOptions::canActionEmitObjCHeader(ActionType action) {
case ActionType::DumpAST:
case ActionType::EmitSyntax:
case ActionType::PrintAST:
case ActionType::PrintASTDecl:
case ActionType::EmitPCH:
case ActionType::DumpScopeMaps:
case ActionType::DumpTypeRefinementContexts:
@@ -492,6 +501,7 @@ bool FrontendOptions::canActionEmitLoadedModuleTrace(ActionType action) {
case ActionType::DumpAST:
case ActionType::EmitSyntax:
case ActionType::PrintAST:
case ActionType::PrintASTDecl:
case ActionType::DumpScopeMaps:
case ActionType::DumpTypeRefinementContexts:
case ActionType::DumpTypeInfo:
@@ -540,6 +550,7 @@ bool FrontendOptions::canActionEmitModuleSemanticInfo(ActionType action) {
case ActionType::DumpAST:
case ActionType::EmitSyntax:
case ActionType::PrintAST:
case ActionType::PrintASTDecl:
case ActionType::EmitPCH:
case ActionType::DumpScopeMaps:
case ActionType::DumpTypeRefinementContexts:
@@ -584,6 +595,7 @@ bool FrontendOptions::canActionEmitModule(ActionType action) {
case ActionType::DumpAST:
case ActionType::EmitSyntax:
case ActionType::PrintAST:
case ActionType::PrintASTDecl:
case ActionType::EmitPCH:
case ActionType::DumpScopeMaps:
case ActionType::DumpTypeRefinementContexts:
@@ -629,6 +641,7 @@ bool FrontendOptions::canActionEmitInterface(ActionType action) {
case ActionType::DumpAST:
case ActionType::EmitSyntax:
case ActionType::PrintAST:
case ActionType::PrintASTDecl:
case ActionType::EmitImportedModules:
case ActionType::EmitPCH:
case ActionType::DumpScopeMaps:
@@ -671,6 +684,7 @@ bool FrontendOptions::doesActionProduceOutput(ActionType action) {
case ActionType::EmitSyntax:
case ActionType::DumpInterfaceHash:
case ActionType::PrintAST:
case ActionType::PrintASTDecl:
case ActionType::DumpScopeMaps:
case ActionType::DumpTypeRefinementContexts:
case ActionType::EmitPCH:
@@ -729,6 +743,7 @@ bool FrontendOptions::doesActionProduceTextualOutput(ActionType action) {
case ActionType::DumpAST:
case ActionType::EmitSyntax:
case ActionType::PrintAST:
case ActionType::PrintASTDecl:
case ActionType::DumpScopeMaps:
case ActionType::DumpTypeRefinementContexts:
case ActionType::EmitImportedModules:
@@ -758,6 +773,7 @@ bool FrontendOptions::doesActionGenerateSIL(ActionType action) {
case ActionType::EmitSyntax:
case ActionType::DumpAST:
case ActionType::PrintAST:
case ActionType::PrintASTDecl:
case ActionType::DumpScopeMaps:
case ActionType::DumpTypeRefinementContexts:
case ActionType::EmitImportedModules:
@@ -798,6 +814,7 @@ bool FrontendOptions::doesActionGenerateIR(ActionType action) {
case ActionType::DumpAST:
case ActionType::EmitSyntax:
case ActionType::PrintAST:
case ActionType::PrintASTDecl:
case ActionType::DumpScopeMaps:
case ActionType::DumpTypeRefinementContexts:
case ActionType::DumpTypeInfo: