本文整理汇总了C++中ModuleDecl::getResilienceStrategy方法的典型用法代码示例。如果您正苦于以下问题:C++ ModuleDecl::getResilienceStrategy方法的具体用法?C++ ModuleDecl::getResilienceStrategy怎么用?C++ ModuleDecl::getResilienceStrategy使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ModuleDecl
的用法示例。
在下文中一共展示了ModuleDecl::getResilienceStrategy方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: return
SILLinkage
swift::getLinkageForProtocolConformance(const NormalProtocolConformance *C,
ForDefinition_t definition) {
// Behavior conformances are always private.
if (C->isBehaviorConformance())
return (definition ? SILLinkage::Private : SILLinkage::PrivateExternal);
ModuleDecl *conformanceModule = C->getDeclContext()->getParentModule();
// If the conformance was synthesized by the ClangImporter, give it
// shared linkage.
auto typeDecl = C->getType()->getNominalOrBoundGenericNominal();
auto typeUnit = typeDecl->getModuleScopeContext();
if (isa<ClangModuleUnit>(typeUnit)
&& conformanceModule == typeUnit->getParentModule())
return SILLinkage::Shared;
// If we're bulding with -sil-serialize-all, give the conformance public
// linkage.
if (conformanceModule->getResilienceStrategy()
== ResilienceStrategy::Fragile)
return (definition ? SILLinkage::Public : SILLinkage::PublicExternal);
// FIXME: This should be using std::min(protocol's access, type's access).
switch (C->getProtocol()->getEffectiveAccess()) {
case Accessibility::Private:
return (definition ? SILLinkage::Private : SILLinkage::PrivateExternal);
case Accessibility::Internal:
return (definition ? SILLinkage::Hidden : SILLinkage::HiddenExternal);
default:
return (definition ? SILLinkage::Public : SILLinkage::PublicExternal);
}
}