本文整理汇总了C++中ApplySite::getSubstitutionMap方法的典型用法代码示例。如果您正苦于以下问题:C++ ApplySite::getSubstitutionMap方法的具体用法?C++ ApplySite::getSubstitutionMap怎么用?C++ ApplySite::getSubstitutionMap使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ApplySite
的用法示例。
在下文中一共展示了ApplySite::getSubstitutionMap方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: getWitnessMethodSubstitutions
static SubstitutionMap
getWitnessMethodSubstitutions(SILModule &Module, ApplySite AI, SILFunction *F,
ProtocolConformanceRef CRef) {
auto witnessFnTy = F->getLoweredFunctionType();
assert(witnessFnTy->getRepresentation() ==
SILFunctionTypeRepresentation::WitnessMethod);
auto requirementSig = AI.getOrigCalleeType()->getGenericSignature();
auto witnessThunkSig = witnessFnTy->getGenericSignature();
SubstitutionMap origSubs = AI.getSubstitutionMap();
auto *mod = Module.getSwiftModule();
bool isDefaultWitness =
(witnessFnTy->getDefaultWitnessMethodProtocol()
== CRef.getRequirement());
auto *classWitness = witnessFnTy->getWitnessMethodClass(*mod);
return getWitnessMethodSubstitutions(
mod, CRef, requirementSig, witnessThunkSig,
origSubs, isDefaultWitness, classWitness);
}