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


C++ ProtocolConformanceRef::isConcrete方法代码示例

本文整理汇总了C++中ProtocolConformanceRef::isConcrete方法的典型用法代码示例。如果您正苦于以下问题:C++ ProtocolConformanceRef::isConcrete方法的具体用法?C++ ProtocolConformanceRef::isConcrete怎么用?C++ ProtocolConformanceRef::isConcrete使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在ProtocolConformanceRef的用法示例。


在下文中一共展示了ProtocolConformanceRef::isConcrete方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: mustDeserializeProtocolConformance

// Eagerly visiting all used conformances leads to a large blowup
// in the amount of SIL we read in. For optimization purposes we can defer
// reading in most conformances until we need them for devirtualization.
// However, we *must* pull in shared clang-importer-derived conformances
// we potentially use, since we may not otherwise have a local definition.
static bool mustDeserializeProtocolConformance(SILModule &M,
                                               ProtocolConformanceRef c) {
  if (!c.isConcrete())
    return false;
  auto conformance = c.getConcrete()->getRootNormalConformance();
  return M.Types.protocolRequiresWitnessTable(conformance->getProtocol())
    && isa<ClangModuleUnit>(conformance->getDeclContext()
                                       ->getModuleScopeContext());
}
开发者ID:DevAndArtist,项目名称:swift,代码行数:14,代码来源:Linker.cpp

示例2: lookUpWitnessTable

std::pair<SILWitnessTable *, ArrayRef<Substitution>>
SILModule::
lookUpWitnessTable(ProtocolConformanceRef C, bool deserializeLazily) {
  // If we have an abstract conformance passed in (a legal value), just return
  // nullptr.
  if (!C.isConcrete())
    return {nullptr, {}};

  return lookUpWitnessTable(C.getConcrete());
}
开发者ID:peterfriese,项目名称:swift,代码行数:10,代码来源:SILModule.cpp

示例3: getWitnessType

Type TypeChecker::getWitnessType(Type type, ProtocolDecl *protocol,
                                 ProtocolConformanceRef conformance,
                                 Identifier name,
                                 Diag<> brokenProtocolDiag) {
  Type ty = ProtocolConformance::getTypeWitnessByName(type, conformance,
                                                      name, this);
  if (!ty &&
      !(conformance.isConcrete() && conformance.getConcrete()->isInvalid()))
    diagnose(protocol->getLoc(), brokenProtocolDiag);

  return ty;
}
开发者ID:yasirmcs,项目名称:swift,代码行数:12,代码来源:TypeCheckGeneric.cpp


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