Print package-name in .private.swiftinterface only for better abstraction

Resolves rdar://107638447
This commit is contained in:
Ellie Shin
2023-04-20 17:41:43 -07:00
parent 578c63a372
commit b081404daa
12 changed files with 163 additions and 49 deletions

View File

@@ -426,8 +426,11 @@ static void SaveModuleInterfaceArgs(ModuleInterfaceOptions &Opts,
return;
ArgStringList RenderedArgs;
ArgStringList RenderedArgsIgnorable;
ArgStringList RenderedArgsIgnorablePrivate;
for (auto A : Args) {
if (A->getOption().hasFlag(options::ModuleInterfaceOptionIgnorable)) {
if (A->getOption().hasFlag(options::ModuleInterfaceOptionIgnorablePrivate)) {
A->render(Args, RenderedArgsIgnorablePrivate);
} else if (A->getOption().hasFlag(options::ModuleInterfaceOptionIgnorable)) {
A->render(Args, RenderedArgsIgnorable);
} else if (A->getOption().hasFlag(options::ModuleInterfaceOption)) {
A->render(Args, RenderedArgs);
@@ -446,6 +449,12 @@ static void SaveModuleInterfaceArgs(ModuleInterfaceOptions &Opts,
if (FOpts.ModuleName == "_Concurrency")
OS << " -disable-availability-checking";
}
{
llvm::raw_string_ostream OS(Opts.IgnorablePrivateFlags);
interleave(RenderedArgsIgnorablePrivate,
[&](const char *Argument) { PrintArg(OS, Argument, StringRef()); },
[&] { OS << " "; });
}
{
llvm::raw_string_ostream OS(Opts.IgnorableFlags);
interleave(RenderedArgsIgnorable,