Skip to content

Commit 07caabe

Browse files
authored
Merge pull request #17084 from kitasuke/fix_duplicated_import_delc_for_sil-opt
[SIL] Don't print duplicated import decls
2 parents 51319ee + 40da49c commit 07caabe

File tree

2 files changed

+28
-0
lines changed

2 files changed

+28
-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/import-decls.sil

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
// RUN: %empty-directory(%t)
2+
// RUN: touch %t/empty.swift
3+
// RUN: %target-swift-frontend -emit-module -module-name TestModule %t/empty.swift -o %t
4+
// RUN: %target-sil-opt %s -I=%t | %FileCheck %s
5+
6+
sil_stage raw
7+
8+
import Builtin
9+
import Swift
10+
11+
import TestModule
12+
13+
func foo() {}
14+
15+
// CHECK: import Builtin
16+
// CHECK: import Swift
17+
// CHECK-NOT: import Builtin
18+
// CHECK-NOT: import Swift{{$}}
19+
// CHECK: import TestModule

0 commit comments

Comments
 (0)