@@ -39,6 +39,9 @@ struct DumpSymbolGraph: SwiftCommand {
3939
4040 @Flag ( help: " Add symbols with SPI information to the symbol graph. " )
4141 var includeSPISymbols = false
42+
43+ @Flag ( help: " Emit extension block symbols for extensions to external types or directly associate members and conformances with the extended nominal. " )
44+ var extensionBlockSymbolBehavior : ExtensionBlockSymbolBehavior = . omitExtensionBlockSymbols
4245
4346 func run( _ swiftTool: SwiftTool ) throws {
4447 // Build the current package.
@@ -51,10 +54,12 @@ struct DumpSymbolGraph: SwiftCommand {
5154 let symbolGraphExtractor = try SymbolGraphExtract (
5255 fileSystem: swiftTool. fileSystem,
5356 tool: swiftTool. getDestinationToolchain ( ) . getSymbolGraphExtract ( ) ,
57+ observabilityScope: swiftTool. observabilityScope,
5458 skipSynthesizedMembers: skipSynthesizedMembers,
5559 minimumAccessLevel: minimumAccessLevel,
5660 skipInheritedDocs: skipInheritedDocs,
5761 includeSPISymbols: includeSPISymbols,
62+ emitExtensionBlockSymbols: extensionBlockSymbolBehavior == . emitExtensionBlockSymbols,
5863 outputFormat: . json( pretty: prettyPrint)
5964 )
6065
@@ -76,6 +81,11 @@ struct DumpSymbolGraph: SwiftCommand {
7681 }
7782}
7883
84+ enum ExtensionBlockSymbolBehavior : String , EnumerableFlag {
85+ case emitExtensionBlockSymbols
86+ case omitExtensionBlockSymbols
87+ }
88+
7989struct DumpPackage : SwiftCommand {
8090 static let configuration = CommandConfiguration (
8191 abstract: " Print parsed Package.swift as JSON " )
0 commit comments