Skip to content

Commit 802774c

Browse files
committed
Don't print duplicated import decls by sil-opt if input file is silgen
1 parent 7f158a5 commit 802774c

File tree

2 files changed

+20
-0
lines changed

2 files changed

+20
-0
lines changed

lib/SIL/SILPrinter.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2712,6 +2712,15 @@ void SILModule::print(SILPrintContext &PrintCtx, ModuleDecl *M,
27122712
!D->isImplicit()) {
27132713
if (isa<AccessorDecl>(D))
27142714
continue;
2715+
2716+
// skip to visit ASTPrinter to avoid sil-opt prints duplicated import declarations
2717+
if (auto importDecl = dyn_cast<ImportDecl>(D)) {
2718+
StringRef importName = importDecl->getModule()->getName().str();
2719+
if (importName == BUILTIN_NAME ||
2720+
importName == STDLIB_NAME ||
2721+
importName == SWIFT_SHIMS_NAME)
2722+
continue;
2723+
}
27152724
D->print(OS, Options);
27162725
OS << "\n\n";
27172726
}

test/sil-opt/import-decls.silgen

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
// RUN: %target-sil-opt %s | %FileCheck %s
2+
3+
import Builtin
4+
import Swift
5+
6+
func foo() {}
7+
8+
// CHECK: import Builtin
9+
// CHECK: import Swift
10+
// CHECK-NOT: import Builtin
11+
// CHECK-NOT: import Swift{{$}}

0 commit comments

Comments
 (0)