Skip to content

Commit 90f09e0

Browse files
committed
[interop][sourcekit] print submodules of CxxStdlib when printing out IDE interface of it
1 parent eb6dc22 commit 90f09e0

File tree

2 files changed

+10
-1
lines changed

2 files changed

+10
-1
lines changed
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
// RUN: %sourcekitd-test -req=interface-gen -module CxxStdlib -- -Xfrontend -disable-implicit-concurrency-module-import -Xfrontend -disable-implicit-string-processing-module-import -cxx-interoperability-mode=swift-5.9 -target %target-triple -sdk %sdk | %FileCheck %s
2+
3+
// REQUIRES: OS=macosx || OS=linux-gnu
4+
5+
// CHECK: enum std {
6+
// CHECK-DAG: public typealias string = std.basic_string<

tools/SourceKit/lib/SwiftLang/SwiftEditorInterfaceGen.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -290,15 +290,18 @@ static bool getModuleInterfaceInfo(ASTContext &Ctx,
290290

291291
PrintOptions Options = PrintOptions::printModuleInterface(
292292
Ctx.TypeCheckerOpts.PrintFullConvention);
293+
ModuleTraversalOptions TraversalOptions = None; // Don't print submodules.
293294
if (Mod->findUnderlyingClangModule()) {
295+
// We need to print the submodules of the C++ standard library.
296+
if (ModuleName == "CxxStdlib")
297+
TraversalOptions = ModuleTraversal::VisitSubmodules;
294298
if (Ctx.LangOpts.EnableCXXInterop) {
295299
// Show unavailable C++ APIs.
296300
Options.SkipUnavailable = false;
297301
// Skip over inline namespaces.
298302
Options.SkipInlineCXXNamespace = true;
299303
}
300304
}
301-
ModuleTraversalOptions TraversalOptions = None; // Don't print submodules.
302305
SmallString<128> Text;
303306
llvm::raw_svector_ostream OS(Text);
304307
AnnotatingPrinter Printer(Info, OS);

0 commit comments

Comments
 (0)