Skip to content

Commit 79a43f2

Browse files
authored
Merge pull request #81798 from ktoso/pick-3b94f009d66667f6f32e50ad85d3990159a91a84
[6.2][Distributed] account Distributed module use from DA declarations
2 parents c8a8183 + 11bc2c2 commit 79a43f2

File tree

2 files changed

+26
-0
lines changed

2 files changed

+26
-0
lines changed

lib/Sema/TypeCheckDistributed.cpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -710,6 +710,18 @@ void TypeChecker::checkDistributedActor(SourceFile *SF, NominalTypeDecl *nominal
710710
if (!swift::ensureDistributedModuleLoaded(nominal))
711711
return;
712712

713+
auto &C = nominal->getASTContext();
714+
auto loc = nominal->getLoc();
715+
recordRequiredImportAccessLevelForDecl(
716+
C.getDistributedActorDecl(), nominal, nominal->getEffectiveAccess(),
717+
[&](AttributedImport<ImportedModule> attributedImport) {
718+
ModuleDecl *importedVia = attributedImport.module.importedModule,
719+
*sourceModule = nominal->getModuleContext();
720+
C.Diags.diagnose(loc, diag::module_api_import, nominal, importedVia,
721+
sourceModule, importedVia == sourceModule,
722+
/*isImplicit*/ false);
723+
});
724+
713725
// ==== Constructors
714726
// --- Get the default initializer
715727
// If applicable, this will create the default 'init(transport:)' initializer
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
// RUN: %empty-directory(%t)
2+
// RUN: %target-swift-frontend-emit-module -emit-module-path %t/FakeDistributedActorSystems.swiftmodule -module-name FakeDistributedActorSystems -target %target-swift-5.7-abi-triple %S/Inputs/FakeDistributedActorSystems.swift
3+
// RUN: %target-swift-frontend -typecheck -verify -target %target-swift-5.7-abi-triple -I %t 2>&1 %s
4+
// REQUIRES: concurrency
5+
// REQUIRES: distributed
6+
7+
// Should NOT produce a warning, we do use the module in a public declaration, see MyPublicDistributedActor
8+
public import Distributed
9+
import FakeDistributedActorSystems
10+
11+
12+
public distributed actor MyPublicDistributedActor {
13+
public typealias ActorSystem = FakeActorSystem
14+
}

0 commit comments

Comments
 (0)