当前位置: 首页>>代码示例>>C++>>正文


C++ ModuleDecl::getResilienceStrategy方法代码示例

本文整理汇总了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);
  }
}
开发者ID:CTGG,项目名称:swift,代码行数:35,代码来源:SIL.cpp


注:本文中的ModuleDecl::getResilienceStrategy方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。