File tree Expand file tree Collapse file tree 2 files changed +38
-1
lines changed Expand file tree Collapse file tree 2 files changed +38
-1
lines changed Original file line number Diff line number Diff line change 1
1
#include " spdlog/fmt/fmt.h"
2
2
3
3
#include " clang/AST/Decl.h"
4
+ #include " clang/AST/Type.h"
4
5
#include " clang/Basic/FileEntry.h"
5
6
#include " clang/Basic/SourceManager.h"
6
7
#include " clang/Lex/PPCallbacks.h"
@@ -157,5 +158,33 @@ std::string formatDecl(const clang::Decl *decl) {
157
158
return buf;
158
159
}
159
160
161
+ std::string formatTemplateNameKind (const clang::TemplateName::NameKind kind) {
162
+ #define HANDLE_KIND (kind_ ) \
163
+ case clang::TemplateName::NameKind::kind_: \
164
+ return #kind_;
165
+ switch (kind) {
166
+ HANDLE_KIND (Template)
167
+ HANDLE_KIND (OverloadedTemplate)
168
+ HANDLE_KIND (AssumedTemplate)
169
+ HANDLE_KIND (QualifiedTemplate)
170
+ HANDLE_KIND (DependentTemplate)
171
+ HANDLE_KIND (SubstTemplateTemplateParm)
172
+ HANDLE_KIND (SubstTemplateTemplateParmPack)
173
+ HANDLE_KIND (UsingTemplate)
174
+ }
175
+ #undef HANDLE_KIND
176
+ }
177
+
178
+ std::string formatTypeInternals (const clang::QualType &qualType,
179
+ const clang::ASTContext &astContext) {
180
+ if (qualType.isNull ()) {
181
+ return " <null>" ;
182
+ }
183
+ std::string buf;
184
+ llvm::raw_string_ostream os (buf);
185
+ qualType.dump (os, astContext);
186
+ return buf;
187
+ }
188
+
160
189
} // namespace debug
161
190
} // namespace scip_clang
Original file line number Diff line number Diff line change 3
3
4
4
#include < string>
5
5
6
+ #include " clang/AST/TemplateName.h"
6
7
#include " clang/Basic/FileEntry.h"
7
8
#include " clang/Basic/SourceManager.h"
8
9
#include " clang/Lex/PPCallbacks.h"
9
10
#include " llvm/ADT/StringRef.h"
10
11
11
12
namespace clang {
13
+ class ASTContext ;
12
14
class Decl ;
13
- }
15
+ class QualType ;
16
+ } // namespace clang
14
17
15
18
namespace scip_clang {
16
19
namespace debug {
@@ -31,6 +34,11 @@ std::string formatRange(const clang::SourceManager &,
31
34
32
35
std::string formatDecl (const clang::Decl *);
33
36
37
+ std::string formatTemplateNameKind (clang::TemplateName::NameKind);
38
+
39
+ std::string formatTypeInternals (const clang::QualType &,
40
+ const clang::ASTContext &);
41
+
34
42
} // namespace debug
35
43
} // namespace scip_clang
36
44
You can’t perform that action at this time.
0 commit comments