Add has_template template, DeclarationFragmentBuilder functions, and tests for class templates, specializations/partial specs, and concepts.
Depends on D157007
Paths
| Differential D157076
[clang][ExtractAPI] Add support for C++ class templates and concepts ClosedPublic Authored by evelez7 on Aug 4 2023, 12:27 AM.
Details Summary Add has_template template, DeclarationFragmentBuilder functions, and tests for class templates, specializations/partial specs, and concepts. Depends on D157007
Diff Detail
Event TimelineComment Actions Add documentation to template argument name deduction, add missing method declarations to visitor base Comment Actions Abstract the name deduction for generic template args to its own function. It's very helpful in other cases. Comment Actions Refactor template arg name deduction to get as string for FragmentKind::typeIdentifier evelez7 added a child revision: D157350: [clang][ExtractAPI] Add support for C++ variable templates.Aug 7 2023, 6:28 PM Comment Actions Looks mostly good. Quick Question how do we handle inheritance to a template parameter?
evelez7 marked 5 inline comments as done. Comment ActionsAddress review feedback
Comment Actions We didn't handle inheriting from a template parameter, but now we do by serializing the relationship. The parameter does not produce a target USR so it falls back to its name.
evelez7 added a child revision: D158239: [clang][ExtractAPI] Add support for namespaces.Aug 17 2023, 5:38 PM This revision is now accepted and ready to land.Aug 18 2023, 8:02 AM This revision was landed with ongoing or failed builds.Aug 18 2023, 1:41 PM Closed by commit rG7ba37f4e46a5: [clang][ExtractAPI] Add support for C++ class templates and concepts (authored by evelez7). · Explain Why This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 551627 clang/include/clang/ExtractAPI/API.h
clang/include/clang/ExtractAPI/DeclarationFragments.h
clang/include/clang/ExtractAPI/ExtractAPIVisitor.h
clang/include/clang/ExtractAPI/Serialization/SerializerBase.h
clang/include/clang/ExtractAPI/Serialization/SymbolGraphSerializer.h
clang/lib/ExtractAPI/API.cpp
clang/lib/ExtractAPI/DeclarationFragments.cpp
clang/lib/ExtractAPI/Serialization/SymbolGraphSerializer.cpp
clang/test/ExtractAPI/class_template.cpp
clang/test/ExtractAPI/class_template_param_inheritance.cpp
clang/test/ExtractAPI/class_template_partial_spec.cpp
clang/test/ExtractAPI/class_template_spec.cpp
clang/test/ExtractAPI/concept.cpp
|
Minor nit, I would prefer for Specialization to be fully spelled out.