[clang][ExtractAPI] Add support for C++ global function templates
Add records, serialization for global function templates and their specializations Depends on D157350 Reviewed By: dang Differential Revision: https://reviews.llvm.org/D157579
This commit is contained in:
@@ -361,6 +361,14 @@ Object serializeSymbolKind(APIRecord::RecordKind RK, Language Lang) {
|
||||
Kind["identifier"] = AddLangPrefix("func");
|
||||
Kind["displayName"] = "Function";
|
||||
break;
|
||||
case APIRecord::RK_GlobalFunctionTemplate:
|
||||
Kind["identifier"] = AddLangPrefix("func");
|
||||
Kind["displayName"] = "Function Template";
|
||||
break;
|
||||
case APIRecord::RK_GlobalFunctionTemplateSpecialization:
|
||||
Kind["identifier"] = AddLangPrefix("func");
|
||||
Kind["displayName"] = "Function Template Specialization";
|
||||
break;
|
||||
case APIRecord::RK_GlobalVariableTemplate:
|
||||
Kind["identifier"] = AddLangPrefix("var");
|
||||
Kind["displayName"] = "Global Variable Template";
|
||||
@@ -947,6 +955,22 @@ void SymbolGraphSerializer::
|
||||
Symbols.emplace_back(std::move(*GlobalVariableTemplatePartialSpecialization));
|
||||
}
|
||||
|
||||
void SymbolGraphSerializer::visitGlobalFunctionTemplateRecord(
|
||||
const GlobalFunctionTemplateRecord &Record) {
|
||||
auto GlobalFunctionTemplate = serializeAPIRecord(Record);
|
||||
if (!GlobalFunctionTemplate)
|
||||
return;
|
||||
Symbols.emplace_back(std::move(*GlobalFunctionTemplate));
|
||||
}
|
||||
|
||||
void SymbolGraphSerializer::visitGlobalFunctionTemplateSpecializationRecord(
|
||||
const GlobalFunctionTemplateSpecializationRecord &Record) {
|
||||
auto GlobalFunctionTemplateSpecialization = serializeAPIRecord(Record);
|
||||
if (!GlobalFunctionTemplateSpecialization)
|
||||
return;
|
||||
Symbols.emplace_back(std::move(*GlobalFunctionTemplateSpecialization));
|
||||
}
|
||||
|
||||
void SymbolGraphSerializer::visitObjCContainerRecord(
|
||||
const ObjCContainerRecord &Record) {
|
||||
auto ObjCContainer = serializeAPIRecord(Record);
|
||||
|
||||
Reference in New Issue
Block a user