lib/IRGen/MetadataLayout.cpp
llvm::Value *irgen::emitArgumentWitnessTableRef(IRGenFunction &IGF,
                                                NominalTypeDecl *decl,
                                          const GenericTypeRequirements &reqts,
                                                unsigned reqtIndex,
                                                llvm::Value *metadata) {
  assert(reqts.getRequirements()[reqtIndex].Protocol != nullptr);
  return emitLoadOfGenericRequirement(IGF, metadata, decl, reqtIndex,
                                      IGF.IGM.WitnessTablePtrTy);
}
/// Given a reference to nominal type metadata of the given type,
/// derive a reference to a protocol witness table for the nth
/// argument metadata.  The type must have generic arguments.
Given a reference to nominal type metadata of the given type,
derive a reference to a protocol witness table for the nth
argument metadata.  The type must have generic arguments.
Given a reference to nominal type metadata of the given type derive a reference to a protocol witness table for the nth argument metadata . The type must have generic arguments .
llvm::Value *irgen::emitArgumentWitnessTableRef(IRGenFunction &IGF,
                                                NominalTypeDecl *decl,
                                          const GenericTypeRequirements &reqts,
                                                unsigned reqtIndex,
                                                llvm::Value *metadata) {
  assert(reqts.getRequirements()[reqtIndex].Protocol != nullptr);
  return emitLoadOfGenericRequirement(IGF, metadata, decl, reqtIndex,
                                      IGF.IGM.WitnessTablePtrTy);
}
llvm :: Value * irgen :: emitArgumentWitnessTableRef ( IRGenFunction & IGF , NominalTypeDecl * decl , const GenericTypeRequirements & reqts , unsigned reqtIndex , llvm :: Value * metadata ) { assert ( reqts . getRequirements ( ) [ reqtIndex ] . Protocol != nullptr ) ; return emitLoadOfGenericRequirement ( IGF , metadata , decl , reqtIndex , IGF . IGM . WitnessTablePtrTy ) ; }
Given a reference to nominal type metadata of the given type,
derive a reference to a protocol witness table for the nth
argument metadata.
Given a reference to nominal type metadata of the given type derive a reference to a protocol witness table for the nth argument metadata .