本文整理汇总了C++中mangle::ASTMangler::mangleClosureEntity方法的典型用法代码示例。如果您正苦于以下问题:C++ ASTMangler::mangleClosureEntity方法的具体用法?C++ ASTMangler::mangleClosureEntity怎么用?C++ ASTMangler::mangleClosureEntity使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类mangle::ASTMangler
的用法示例。
在下文中一共展示了ASTMangler::mangleClosureEntity方法的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);
}