mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
don't assert when a module re-exports a module and one of its symbols (#64479)
rdar://106807038
This commit is contained in:
@@ -1397,6 +1397,9 @@ void ModuleDecl::getDisplayDecls(SmallVectorImpl<Decl*> &Results, bool Recursive
|
||||
llvm::SmallDenseMap<ModuleDecl *, SmallPtrSet<Decl *, 4>, 4> QualifiedImports;
|
||||
collectParsedExportedImports(this, Modules, QualifiedImports);
|
||||
for (const auto &QI : QualifiedImports) {
|
||||
auto Module = QI.getFirst();
|
||||
if (Modules.contains(Module)) continue;
|
||||
|
||||
auto &Decls = QI.getSecond();
|
||||
Results.append(Decls.begin(), Decls.end());
|
||||
}
|
||||
|
||||
11
test/SymbolGraph/Module/DuplicateExportedImport.swift
Normal file
11
test/SymbolGraph/Module/DuplicateExportedImport.swift
Normal file
@@ -0,0 +1,11 @@
|
||||
// RUN: %empty-directory(%t)
|
||||
// RUN: %target-swift-frontend %S/Inputs/DuplicateExportedImport/A.swift -module-name A -emit-module -emit-module-path %t/A.swiftmodule
|
||||
// RUN: %target-swift-frontend %s -module-name DuplicateExportedImport -emit-module -emit-module-path /dev/null -I %t -emit-symbol-graph -emit-symbol-graph-dir %t/
|
||||
// RUN: %FileCheck %s --input-file %t/DuplicateExportedImport.symbols.json
|
||||
|
||||
// REQUIRES: asserts
|
||||
|
||||
// CHECK-COUNT-1: "precise":"s:1A8ClassTwoC"
|
||||
|
||||
@_exported import A
|
||||
@_exported import class A.ClassTwo
|
||||
@@ -0,0 +1,3 @@
|
||||
public class ClassOne {}
|
||||
|
||||
public class ClassTwo {}
|
||||
Reference in New Issue
Block a user