Skip to content

Commit d3e9659

Browse files
authored
Merge pull request #61637 from theMomax/extension-block-symbols-deactivation-flag
Make emission of extension block symbols a formal feature
2 parents 63e3ee0 + 504fe3c commit d3e9659

File tree

6 files changed

+18
-6
lines changed

6 files changed

+18
-6
lines changed

include/swift/Option/Options.td

+5
Original file line numberDiff line numberDiff line change
@@ -1406,6 +1406,11 @@ def emit_extension_block_symbols: Flag<["-"], "emit-extension-block-symbols">,
14061406
NoInteractiveOption, SupplementaryOutput, HelpHidden]>,
14071407
HelpText<"Emit 'swift.extension' symbols for extensions to external types instead of directly associating members and conformances with the extended nominal when generating symbol graphs">;
14081408

1409+
def omit_extension_block_symbols: Flag<["-"], "omit-extension-block-symbols">,
1410+
Flags<[SwiftSymbolGraphExtractOption, FrontendOption,
1411+
NoInteractiveOption, SupplementaryOutput, HelpHidden]>,
1412+
HelpText<"Directly associate members and conformances with the extended nominal when generating symbol graphs instead of emitting 'swift.extension' symbols for extensions to external types">;
1413+
14091414
// swift-symbolgraph-extract-only options
14101415
def output_dir : Separate<["-"], "output-dir">,
14111416
Flags<[NoDriverOption, SwiftSymbolGraphExtractOption, SwiftAPIDigesterOption,

lib/Driver/ToolChains.cpp

+4-2
Original file line numberDiff line numberDiff line change
@@ -619,7 +619,8 @@ ToolChain::constructInvocation(const CompileJobAction &job,
619619
context.Args.AddLastArg(Arguments, options::OPT_emit_symbol_graph_dir);
620620
}
621621
context.Args.AddLastArg(Arguments, options::OPT_include_spi_symbols);
622-
context.Args.AddLastArg(Arguments, options::OPT_emit_extension_block_symbols);
622+
context.Args.AddLastArg(Arguments, options::OPT_emit_extension_block_symbols,
623+
options::OPT_omit_extension_block_symbols);
623624
context.Args.AddLastArg(Arguments, options::OPT_symbol_graph_minimum_access_level);
624625

625626
return II;
@@ -1116,7 +1117,8 @@ ToolChain::constructInvocation(const MergeModuleJobAction &job,
11161117
context.Args.AddLastArg(Arguments, options::OPT_emit_symbol_graph);
11171118
context.Args.AddLastArg(Arguments, options::OPT_emit_symbol_graph_dir);
11181119
context.Args.AddLastArg(Arguments, options::OPT_include_spi_symbols);
1119-
context.Args.AddLastArg(Arguments, options::OPT_emit_extension_block_symbols);
1120+
context.Args.AddLastArg(Arguments, options::OPT_emit_extension_block_symbols,
1121+
options::OPT_omit_extension_block_symbols);
11201122
context.Args.AddLastArg(Arguments, options::OPT_symbol_graph_minimum_access_level);
11211123

11221124
context.Args.AddLastArg(Arguments, options::OPT_import_objc_header);

lib/DriverTool/swift_symbolgraph_extract_main.cpp

+2-1
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,8 @@ int swift_symbolgraph_extract_main(ArrayRef<const char *> Args,
172172
ParsedArgs.hasArg(OPT_skip_inherited_docs),
173173
ParsedArgs.hasArg(OPT_include_spi_symbols),
174174
/*IncludeClangDocs=*/false,
175-
ParsedArgs.hasArg(OPT_emit_extension_block_symbols),
175+
ParsedArgs.hasFlag(OPT_emit_extension_block_symbols,
176+
OPT_omit_extension_block_symbols, /*default=*/false),
176177
};
177178

178179
if (auto *A = ParsedArgs.getLastArg(OPT_minimum_access_level)) {

lib/Frontend/CompilerInvocation.cpp

+2-1
Original file line numberDiff line numberDiff line change
@@ -1323,7 +1323,8 @@ static void ParseSymbolGraphArgs(symbolgraphgen::SymbolGraphOptions &Opts,
13231323
Opts.SkipInheritedDocs = Args.hasArg(OPT_skip_inherited_docs);
13241324
Opts.IncludeSPISymbols = Args.hasArg(OPT_include_spi_symbols);
13251325
Opts.EmitExtensionBlockSymbols =
1326-
Args.hasArg(OPT_emit_extension_block_symbols);
1326+
Args.hasFlag(OPT_emit_extension_block_symbols,
1327+
OPT_omit_extension_block_symbols, /*default=*/false);
13271328

13281329
if (auto *A = Args.getLastArg(OPT_symbol_graph_minimum_access_level)) {
13291330
Opts.MinimumAccessLevel =

lib/Option/features.json

+3
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@
2626
},
2727
{
2828
"name": "emit-const-value-sidecar"
29+
},
30+
{
31+
"name": "emit-extension-block-symbols"
2932
}
3033
]
3134
}

test/SymbolGraph/Module/BasicExtension.swift

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22

33
// RUN: %empty-directory(%t)
44
// RUN: %target-build-swift %s -module-name BasicExtension -emit-module -emit-module-path %t/
5-
// RUN: %target-swift-symbolgraph-extract -module-name BasicExtension -I %t -pretty-print -output-dir %t
5+
// RUN: %target-swift-symbolgraph-extract -module-name BasicExtension -I %t -pretty-print -output-dir %t -omit-extension-block-symbols
66
// RUN: %FileCheck %s --input-file %t/[email protected] --check-prefixes ALL,EXTRACT,EBSOff,EBSOff_EXTRACT
77

88
// RUN: %empty-directory(%t)
9-
// RUN: %target-build-swift %s -module-name BasicExtension -emit-module -emit-module-path %t/ -emit-symbol-graph -emit-symbol-graph-dir %t
9+
// RUN: %target-build-swift %s -module-name BasicExtension -emit-module -emit-module-path %t/ -emit-symbol-graph -emit-symbol-graph-dir %t -omit-extension-block-symbols
1010
// RUN: %FileCheck %s --input-file %t/[email protected] --check-prefixes ALL,BUILD,EBSOff,EBSOff_BUILD
1111

1212

0 commit comments

Comments
 (0)