Skip to content

Commit 512cf21

Browse files
committed
Frontend: Make -dump-availability-scopes an option instead of a mode.
Allowing it to be specified in conjunction with any frontend mode makes it a more flexible debugging tool.
1 parent ab5fc57 commit 512cf21

File tree

7 files changed

+17
-41
lines changed

7 files changed

+17
-41
lines changed

include/swift/Frontend/FrontendOptions.h

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -167,9 +167,6 @@ class FrontendOptions {
167167
/// Parse and dump scope map.
168168
DumpScopeMaps,
169169

170-
/// Parse, type-check, and dump availability scopes
171-
DumpAvailabilityScopes,
172-
173170
EmitImportedModules, ///< Emit the modules that this one imports
174171
EmitPCH, ///< Emit PCH of imported bridging header
175172

@@ -313,6 +310,10 @@ class FrontendOptions {
313310
/// upon termination.
314311
bool DumpClangLookupTables = false;
315312

313+
/// Indicates whether or not availability scopes should be dumped upon
314+
/// termination.
315+
bool DumpAvailabilityScopes = false;
316+
316317
/// Indicates whether standard help should be shown.
317318
bool PrintHelp = false;
318319

include/swift/Option/FrontendOptions.td

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -673,6 +673,9 @@ def dump_clang_lookup_tables : Flag<["-"], "dump-clang-lookup-tables">,
673673
HelpText<"Dump the importer's Swift-name-to-Clang-name lookup tables to "
674674
"stderr">;
675675

676+
def dump_availability_scopes : Flag<["-"], "dump-availability-scopes">,
677+
HelpText<"Dump availability scopes to stderr">;
678+
676679
def disable_modules_validate_system_headers : Flag<["-"], "disable-modules-validate-system-headers">,
677680
HelpText<"Disable validating system headers in the Clang importer">;
678681

include/swift/Option/Options.td

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1435,11 +1435,7 @@ def dump_scope_maps : Separate<["-"], "dump-scope-maps">,
14351435
MetaVarName<"<expanded-or-list-of-line:column>">,
14361436
ModeOpt,
14371437
Flags<[FrontendOption, NoInteractiveOption, DoesNotAffectIncrementalBuild]>;
1438-
def dump_availability_scopes :
1439-
Flag<["-"], "dump-availability-scopes">,
1440-
HelpText<"Type-check input file(s) and dump availability scopes">,
1441-
ModeOpt,
1442-
Flags<[FrontendOption, NoInteractiveOption, DoesNotAffectIncrementalBuild]>;
1438+
14431439
def dump_type_info : Flag<["-"], "dump-type-info">,
14441440
HelpText<"Output YAML dump of fixed-size types from all imported modules">,
14451441
ModeOpt,

lib/Frontend/ArgsToFrontendOptionsConverter.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,7 @@ bool ArgsToFrontendOptionsConverter::convert(
198198
computeTBDOptions();
199199

200200
Opts.DumpClangLookupTables |= Args.hasArg(OPT_dump_clang_lookup_tables);
201+
Opts.DumpAvailabilityScopes |= Args.hasArg(OPT_dump_availability_scopes);
201202

202203
Opts.CheckOnoneSupportCompleteness = Args.hasArg(OPT_check_onone_completeness);
203204

@@ -665,8 +666,6 @@ ArgsToFrontendOptionsConverter::determineRequestedAction(const ArgList &args) {
665666
return FrontendOptions::ActionType::MergeModules;
666667
if (Opt.matches(OPT_dump_scope_maps))
667668
return FrontendOptions::ActionType::DumpScopeMaps;
668-
if (Opt.matches(OPT_dump_availability_scopes))
669-
return FrontendOptions::ActionType::DumpAvailabilityScopes;
670669
if (Opt.matches(OPT_dump_interface_hash))
671670
return FrontendOptions::ActionType::DumpInterfaceHash;
672671
if (Opt.matches(OPT_dump_type_info))

lib/Frontend/ArgsToFrontendOutputsConverter.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -473,7 +473,6 @@ static bool shouldEmitFineModuleTrace(FrontendOptions::ActionType action) {
473473
case swift::FrontendOptions::ActionType::PrintAST:
474474
case swift::FrontendOptions::ActionType::PrintASTDecl:
475475
case swift::FrontendOptions::ActionType::DumpScopeMaps:
476-
case swift::FrontendOptions::ActionType::DumpAvailabilityScopes:
477476
case swift::FrontendOptions::ActionType::EmitImportedModules:
478477
case swift::FrontendOptions::ActionType::EmitPCH:
479478
case swift::FrontendOptions::ActionType::EmitModuleOnly:

lib/Frontend/FrontendOptions.cpp

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@ bool FrontendOptions::needsProperModuleName(ActionType action) {
4141
case ActionType::PrintAST:
4242
case ActionType::PrintASTDecl:
4343
case ActionType::DumpScopeMaps:
44-
case ActionType::DumpAvailabilityScopes:
4544
case ActionType::DumpPCM:
4645
case ActionType::EmitPCH:
4746
return false;
@@ -111,7 +110,6 @@ bool FrontendOptions::doesActionRequireSwiftStandardLibrary(ActionType action) {
111110
case ActionType::PrintAST:
112111
case ActionType::PrintASTDecl:
113112
case ActionType::DumpScopeMaps:
114-
case ActionType::DumpAvailabilityScopes:
115113
case ActionType::EmitSILGen:
116114
case ActionType::EmitSIL:
117115
case ActionType::EmitLoweredSIL:
@@ -157,7 +155,6 @@ bool FrontendOptions::doesActionRequireInputs(ActionType action) {
157155
case ActionType::PrintAST:
158156
case ActionType::PrintASTDecl:
159157
case ActionType::DumpScopeMaps:
160-
case ActionType::DumpAvailabilityScopes:
161158
case ActionType::EmitSILGen:
162159
case ActionType::EmitSIL:
163160
case ActionType::EmitLoweredSIL:
@@ -200,7 +197,6 @@ bool FrontendOptions::doesActionPerformEndOfPipelineActions(ActionType action) {
200197
case ActionType::PrintAST:
201198
case ActionType::PrintASTDecl:
202199
case ActionType::DumpScopeMaps:
203-
case ActionType::DumpAvailabilityScopes:
204200
case ActionType::EmitSILGen:
205201
case ActionType::EmitSIL:
206202
case ActionType::EmitLoweredSIL:
@@ -239,7 +235,6 @@ bool FrontendOptions::supportCompilationCaching(ActionType action) {
239235
case ActionType::PrintAST:
240236
case ActionType::PrintASTDecl:
241237
case ActionType::DumpScopeMaps:
242-
case ActionType::DumpAvailabilityScopes:
243238
case ActionType::MergeModules:
244239
case ActionType::Immediate:
245240
case ActionType::DumpTypeInfo:
@@ -305,7 +300,6 @@ FrontendOptions::formatForPrincipalOutputFileForAction(ActionType action) {
305300
case ActionType::PrintAST:
306301
case ActionType::PrintASTDecl:
307302
case ActionType::DumpScopeMaps:
308-
case ActionType::DumpAvailabilityScopes:
309303
case ActionType::DumpTypeInfo:
310304
case ActionType::DumpPCM:
311305
case ActionType::PrintVersion:
@@ -378,7 +372,6 @@ bool FrontendOptions::canActionEmitDependencies(ActionType action) {
378372
case ActionType::PrintAST:
379373
case ActionType::PrintASTDecl:
380374
case ActionType::DumpScopeMaps:
381-
case ActionType::DumpAvailabilityScopes:
382375
case ActionType::DumpTypeInfo:
383376
case ActionType::CompileModuleFromInterface:
384377
case ActionType::TypecheckModuleFromInterface:
@@ -422,7 +415,6 @@ bool FrontendOptions::canActionEmitReferenceDependencies(ActionType action) {
422415
case ActionType::PrintAST:
423416
case ActionType::PrintASTDecl:
424417
case ActionType::DumpScopeMaps:
425-
case ActionType::DumpAvailabilityScopes:
426418
case ActionType::DumpTypeInfo:
427419
case ActionType::CompileModuleFromInterface:
428420
case ActionType::TypecheckModuleFromInterface:
@@ -467,7 +459,6 @@ bool FrontendOptions::canActionEmitModuleSummary(ActionType action) {
467459
case ActionType::EmitImportedModules:
468460
case ActionType::EmitPCH:
469461
case ActionType::DumpScopeMaps:
470-
case ActionType::DumpAvailabilityScopes:
471462
case ActionType::DumpTypeInfo:
472463
case ActionType::EmitSILGen:
473464
case ActionType::EmitSIBGen:
@@ -509,7 +500,6 @@ bool FrontendOptions::canActionEmitClangHeader(ActionType action) {
509500
case ActionType::PrintASTDecl:
510501
case ActionType::EmitPCH:
511502
case ActionType::DumpScopeMaps:
512-
case ActionType::DumpAvailabilityScopes:
513503
case ActionType::DumpTypeInfo:
514504
case ActionType::CompileModuleFromInterface:
515505
case ActionType::TypecheckModuleFromInterface:
@@ -550,7 +540,6 @@ bool FrontendOptions::canActionEmitLoadedModuleTrace(ActionType action) {
550540
case ActionType::PrintAST:
551541
case ActionType::PrintASTDecl:
552542
case ActionType::DumpScopeMaps:
553-
case ActionType::DumpAvailabilityScopes:
554543
case ActionType::DumpTypeInfo:
555544
case ActionType::CompileModuleFromInterface:
556545
case ActionType::TypecheckModuleFromInterface:
@@ -600,7 +589,6 @@ bool FrontendOptions::canActionEmitModuleSemanticInfo(ActionType action) {
600589
case ActionType::PrintASTDecl:
601590
case ActionType::EmitPCH:
602591
case ActionType::DumpScopeMaps:
603-
case ActionType::DumpAvailabilityScopes:
604592
case ActionType::DumpTypeInfo:
605593
case ActionType::EmitSILGen:
606594
case ActionType::TypecheckModuleFromInterface:
@@ -643,7 +631,6 @@ bool FrontendOptions::canActionEmitConstValues(ActionType action) {
643631
case ActionType::PrintAST:
644632
case ActionType::PrintASTDecl:
645633
case ActionType::DumpScopeMaps:
646-
case ActionType::DumpAvailabilityScopes:
647634
case ActionType::DumpTypeInfo:
648635
case ActionType::CompileModuleFromInterface:
649636
case ActionType::TypecheckModuleFromInterface:
@@ -687,7 +674,6 @@ bool FrontendOptions::canActionEmitModule(ActionType action) {
687674
case ActionType::PrintASTDecl:
688675
case ActionType::EmitPCH:
689676
case ActionType::DumpScopeMaps:
690-
case ActionType::DumpAvailabilityScopes:
691677
case ActionType::DumpTypeInfo:
692678
case ActionType::EmitSILGen:
693679
case ActionType::CompileModuleFromInterface:
@@ -733,7 +719,6 @@ bool FrontendOptions::canActionEmitInterface(ActionType action) {
733719
case ActionType::EmitImportedModules:
734720
case ActionType::EmitPCH:
735721
case ActionType::DumpScopeMaps:
736-
case ActionType::DumpAvailabilityScopes:
737722
case ActionType::DumpTypeInfo:
738723
case ActionType::EmitSILGen:
739724
case ActionType::EmitSIBGen:
@@ -776,7 +761,6 @@ bool FrontendOptions::canActionEmitAPIDescriptor(ActionType action) {
776761
case ActionType::EmitImportedModules:
777762
case ActionType::EmitPCH:
778763
case ActionType::DumpScopeMaps:
779-
case ActionType::DumpAvailabilityScopes:
780764
case ActionType::DumpTypeInfo:
781765
case ActionType::EmitSILGen:
782766
case ActionType::EmitSIBGen:
@@ -818,7 +802,6 @@ bool FrontendOptions::doesActionProduceOutput(ActionType action) {
818802
case ActionType::PrintAST:
819803
case ActionType::PrintASTDecl:
820804
case ActionType::DumpScopeMaps:
821-
case ActionType::DumpAvailabilityScopes:
822805
case ActionType::EmitPCH:
823806
case ActionType::EmitSILGen:
824807
case ActionType::EmitSIL:
@@ -877,7 +860,6 @@ bool FrontendOptions::doesActionProduceTextualOutput(ActionType action) {
877860
case ActionType::PrintAST:
878861
case ActionType::PrintASTDecl:
879862
case ActionType::DumpScopeMaps:
880-
case ActionType::DumpAvailabilityScopes:
881863
case ActionType::EmitImportedModules:
882864
case ActionType::EmitSILGen:
883865
case ActionType::EmitSIL:
@@ -907,7 +889,6 @@ bool FrontendOptions::doesActionGenerateSIL(ActionType action) {
907889
case ActionType::PrintAST:
908890
case ActionType::PrintASTDecl:
909891
case ActionType::DumpScopeMaps:
910-
case ActionType::DumpAvailabilityScopes:
911892
case ActionType::EmitImportedModules:
912893
case ActionType::EmitPCH:
913894
case ActionType::CompileModuleFromInterface:
@@ -948,7 +929,6 @@ bool FrontendOptions::doesActionGenerateIR(ActionType action) {
948929
case ActionType::PrintAST:
949930
case ActionType::PrintASTDecl:
950931
case ActionType::DumpScopeMaps:
951-
case ActionType::DumpAvailabilityScopes:
952932
case ActionType::DumpTypeInfo:
953933
case ActionType::CompileModuleFromInterface:
954934
case ActionType::TypecheckModuleFromInterface:
@@ -994,7 +974,6 @@ bool FrontendOptions::doesActionBuildModuleFromInterface(ActionType action) {
994974
case ActionType::PrintAST:
995975
case ActionType::PrintASTDecl:
996976
case ActionType::DumpScopeMaps:
997-
case ActionType::DumpAvailabilityScopes:
998977
case ActionType::DumpTypeInfo:
999978
case ActionType::Typecheck:
1000979
case ActionType::ResolveImports:

lib/FrontendTool/FrontendTool.cpp

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1040,6 +1040,10 @@ static void performEndOfPipelineActions(CompilerInstance &Instance) {
10401040
if (opts.DumpClangLookupTables && ctx.getClangModuleLoader())
10411041
ctx.getClangModuleLoader()->dumpSwiftLookupTables();
10421042

1043+
if (opts.DumpAvailabilityScopes)
1044+
getPrimaryOrMainSourceFile(Instance).getAvailabilityScope()->dump(
1045+
llvm::errs(), Instance.getASTContext().SourceMgr);
1046+
10431047
// Report mangling stats if there was no error.
10441048
if (!ctx.hadError())
10451049
Mangle::printManglingStats();
@@ -1295,17 +1299,12 @@ static bool performAction(CompilerInstance &Instance,
12951299
});
12961300
case FrontendOptions::ActionType::DumpScopeMaps:
12971301
return withSemanticAnalysis(
1298-
Instance, observer, [](CompilerInstance &Instance) {
1302+
Instance, observer,
1303+
[](CompilerInstance &Instance) {
12991304
return dumpAndPrintScopeMap(Instance,
13001305
getPrimaryOrMainSourceFile(Instance));
1301-
}, /*runDespiteErrors=*/true);
1302-
case FrontendOptions::ActionType::DumpAvailabilityScopes:
1303-
return withSemanticAnalysis(
1304-
Instance, observer, [](CompilerInstance &Instance) {
1305-
getPrimaryOrMainSourceFile(Instance).getAvailabilityScope()->dump(
1306-
llvm::errs(), Instance.getASTContext().SourceMgr);
1307-
return Instance.getASTContext().hadError();
1308-
}, /*runDespiteErrors=*/true);
1306+
},
1307+
/*runDespiteErrors=*/true);
13091308
case FrontendOptions::ActionType::DumpInterfaceHash:
13101309
getPrimaryOrMainSourceFile(Instance).dumpInterfaceHash(llvm::errs());
13111310
return Instance.getASTContext().hadError();

0 commit comments

Comments
 (0)