diff options
author | Paul Kirth <paulkirth@google.com> | 2022-07-19 22:55:41 +0000 |
---|---|---|
committer | Paul Kirth <paulkirth@google.com> | 2023-01-26 18:05:31 +0000 |
commit | 9470de65bb33a18842d64ab2ab777902613ee014 (patch) | |
tree | 8b9ba5f87486519890b744d99ce8d21ee9f4193f /clang-tools-extra/clang-doc | |
parent | 6772966dcdf5175c517832c1b2352b4fcd1d6b16 (diff) | |
download | llvm-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.cpp | 47 |
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)); } } |