[Distributed] fix how we locate the system property;

This commit is contained in:
Konrad `ktoso` Malawski
2022-02-02 23:00:48 +09:00
parent e6a1e23a9f
commit 18db5af19d

View File

@@ -145,10 +145,19 @@ VarDecl *GetDistributedActorSystemPropertyRequest::evaluate(
if (!C.getLoadedModule(C.Id_Distributed))
return nullptr;
auto module = C.getStdlibModule();
auto DistSystemProtocol =
C.getProtocol(KnownProtocolKind::DistributedActorSystem);
if (auto system = actor->lookupDirect(C.Id_actorSystem).begin()) {
// TODO(distributed): may need to check conformance here?
return dyn_cast<VarDecl>(*system);
for (auto system : actor->lookupDirect(C.Id_actorSystem)) {
if (auto var = dyn_cast<VarDecl>(system)) {
auto conformance = module->conformsToProtocol(var->getInterfaceType(),
DistSystemProtocol);
if (conformance.isInvalid())
continue;
return var;
}
}
return nullptr;