summaryrefslogtreecommitdiff
path: root/clang-tools-extra/clang-doc
diff options
context:
space:
mode:
authorPaul Kirth <paulkirth@google.com>2022-07-19 22:55:41 +0000
committerPaul Kirth <paulkirth@google.com>2023-01-26 18:05:31 +0000
commit9470de65bb33a18842d64ab2ab777902613ee014 (patch)
tree8b9ba5f87486519890b744d99ce8d21ee9f4193f /clang-tools-extra/clang-doc
parent6772966dcdf5175c517832c1b2352b4fcd1d6b16 (diff)
downloadllvm-9470de65bb33a18842d64ab2ab777902613ee014.tar.gz
[clang-doc] Reduce duplicate code with template
Reviewed By: phosek Differential Revision: https://reviews.llvm.org/D142564
Diffstat (limited to 'clang-tools-extra/clang-doc')
-rw-r--r--clang-tools-extra/clang-doc/Representation.cpp47
1 files changed, 6 insertions, 41 deletions
diff --git a/clang-tools-extra/clang-doc/Representation.cpp b/clang-tools-extra/clang-doc/Representation.cpp
index 31bb07d04b35..3d078d575a12 100644
--- a/clang-tools-extra/clang-doc/Representation.cpp
+++ b/clang-tools-extra/clang-doc/Representation.cpp
@@ -54,51 +54,16 @@ int getChildIndexIfExists(std::vector<T> &Children, T &ChildToMerge) {
return -1;
}
-void reduceChildren(std::vector<Reference> &Children,
- std::vector<Reference> &&ChildrenToMerge) {
- for (auto &ChildToMerge : ChildrenToMerge) {
- int mergeIdx = getChildIndexIfExists(Children, ChildToMerge);
- if (mergeIdx == -1) {
- Children.push_back(std::move(ChildToMerge));
- continue;
- }
- Children[mergeIdx].merge(std::move(ChildToMerge));
- }
-}
-
-void reduceChildren(std::vector<FunctionInfo> &Children,
- std::vector<FunctionInfo> &&ChildrenToMerge) {
- for (auto &ChildToMerge : ChildrenToMerge) {
- int mergeIdx = getChildIndexIfExists(Children, ChildToMerge);
- if (mergeIdx == -1) {
- Children.push_back(std::move(ChildToMerge));
- continue;
- }
- Children[mergeIdx].merge(std::move(ChildToMerge));
- }
-}
-
-void reduceChildren(std::vector<EnumInfo> &Children,
- std::vector<EnumInfo> &&ChildrenToMerge) {
- for (auto &ChildToMerge : ChildrenToMerge) {
- int mergeIdx = getChildIndexIfExists(Children, ChildToMerge);
- if (mergeIdx == -1) {
- Children.push_back(std::move(ChildToMerge));
- continue;
- }
- Children[mergeIdx].merge(std::move(ChildToMerge));
- }
-}
-
-void reduceChildren(std::vector<TypedefInfo> &Children,
- std::vector<TypedefInfo> &&ChildrenToMerge) {
+template <typename T>
+void reduceChildren(std::vector<T> &Children,
+ std::vector<T> &&ChildrenToMerge) {
for (auto &ChildToMerge : ChildrenToMerge) {
- int mergeIdx = getChildIndexIfExists(Children, ChildToMerge);
- if (mergeIdx == -1) {
+ int MergeIdx = getChildIndexIfExists(Children, ChildToMerge);
+ if (MergeIdx == -1) {
Children.push_back(std::move(ChildToMerge));
continue;
}
- Children[mergeIdx].merge(std::move(ChildToMerge));
+ Children[MergeIdx].merge(std::move(ChildToMerge));
}
}