From 2ec8efea9155498e7f0fa2018542696d110fcd84 Mon Sep 17 00:00:00 2001 From: Allan Shortlidge Date: Mon, 9 Sep 2024 12:25:22 -0700 Subject: [PATCH] Sema: Allow some @_implementationOnly imports in stdlib modules. The `_Concurrency` module imports a C module that is not available in the toolchain or SDK, which means that `@_implementationOnly` must be used to hide the dependency on this module from clients. --- lib/Sema/ImportResolution.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/Sema/ImportResolution.cpp b/lib/Sema/ImportResolution.cpp index 355a31b37a3..80c7f453bea 100644 --- a/lib/Sema/ImportResolution.cpp +++ b/lib/Sema/ImportResolution.cpp @@ -797,6 +797,9 @@ void UnboundImport::validateInterfaceWithPackageName(ModuleDecl *topLevelModule, /// be hidden from clients. static bool shouldSuppressNonResilientImplementationOnlyImportDiagnostic( StringRef targetName, StringRef importerName) { + if (targetName == "SwiftConcurrencyInternalShims") + return importerName == "_Concurrency"; + if (targetName == "CCryptoBoringSSL" || targetName == "CCryptoBoringSSLShims") return importerName == "Crypto" || importerName == "_CryptoExtras" || importerName == "CryptoBoringWrapper";