Skip to content

Commit 6b8e2d2

Browse files
committed
Fix infinite lookup importing forward declarations from bridging header
1 parent f93de71 commit 6b8e2d2

File tree

3 files changed

+11
-0
lines changed

3 files changed

+11
-0
lines changed

lib/ClangImporter/ClangImporter.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1422,6 +1422,7 @@ ClangImporter::create(ASTContext &ctx,
14221422
new (ctx) ClangModuleUnit(*importedHeaderModule, importer->Impl, nullptr);
14231423
importedHeaderModule->addFile(*importer->Impl.ImportedHeaderUnit);
14241424
importedHeaderModule->setHasResolvedImports();
1425+
importedHeaderModule->setIsNonSwiftModule(true);
14251426

14261427
importer->Impl.IsReadingBridgingPCH = false;
14271428

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
@class ForwardDeclaredInterface;
2+
3+
ForwardDeclaredInterface *CFunctionReturningAForwardDeclaredInterface();
4+
void CFunctionTakingAForwardDeclaredInterface(ForwardDeclaredInterface *param);
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
// RUN: %target-swift-frontend -import-objc-header %S/Inputs/incomplete_objc_types_bridging_header.h -enable-upcoming-feature ImportObjcForwardDeclarations -enable-objc-interop -typecheck %s
2+
3+
// REQUIRES: objc_interop
4+
5+
let foo = CFunctionReturningAForwardDeclaredInterface()
6+
CFunctionTakingAForwardDeclaredInterface(foo)

0 commit comments

Comments
 (0)