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


C++ ASTMangler::mangleClosureWitnessThunk方法代码示例

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


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

示例1: closure

static std::string
getMaterializeForSetCallbackName(ProtocolConformance *conformance,
                                 FuncDecl *requirement) {

  DeclContext *dc = requirement;
  ClosureExpr closure(/*patterns*/ nullptr,
                      /*throws*/ SourceLoc(),
                      /*arrow*/ SourceLoc(),
                      /*in*/ SourceLoc(),
                      /*result*/ TypeLoc(),
                      /*discriminator*/ 0,
                      /*context*/ requirement);
  closure.setType(TupleType::getEmpty(dc->getASTContext()));
  closure.getCaptureInfo().setGenericParamCaptures(true);

  Mangle::ASTMangler Mangler;
  std::string New;
  if (conformance) {
    // Concrete witness thunk for a conformance:
    //
    // Mangle this as if it were a conformance thunk for a closure
    // within the requirement.
    return Mangler.mangleClosureWitnessThunk(conformance, &closure);
  }
  // Default witness thunk or concrete implementation:
  //
  // Mangle this as if it were a closure within the requirement.
  return Mangler.mangleClosureEntity(&closure,
                                 Mangle::ASTMangler::SymbolKind::Default);
}
开发者ID:YanlongMa,项目名称:swift,代码行数:30,代码来源:SILGenMaterializeForSet.cpp


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