diff options
Diffstat (limited to 'tools/libclang')
-rw-r--r-- | tools/libclang/CXIndexDataConsumer.cpp | 1 | ||||
-rw-r--r-- | tools/libclang/CXType.cpp | 6 |
2 files changed, 4 insertions, 3 deletions
diff --git a/tools/libclang/CXIndexDataConsumer.cpp b/tools/libclang/CXIndexDataConsumer.cpp index 5d9776be3b6c7..9cd5ff4f505f6 100644 --- a/tools/libclang/CXIndexDataConsumer.cpp +++ b/tools/libclang/CXIndexDataConsumer.cpp @@ -1315,6 +1315,7 @@ static CXIdxEntityLanguage getEntityLangFromSymbolLang(SymbolLanguage L) { case SymbolLanguage::C: return CXIdxEntityLang_C; case SymbolLanguage::ObjC: return CXIdxEntityLang_ObjC; case SymbolLanguage::CXX: return CXIdxEntityLang_CXX; + case SymbolLanguage::Swift: return CXIdxEntityLang_Swift; } llvm_unreachable("invalid symbol language"); } diff --git a/tools/libclang/CXType.cpp b/tools/libclang/CXType.cpp index 16e993e2ac013..fce7ef2c0d867 100644 --- a/tools/libclang/CXType.cpp +++ b/tools/libclang/CXType.cpp @@ -147,9 +147,6 @@ static inline CXTranslationUnit GetTU(CXType CT) { static Optional<ArrayRef<TemplateArgument>> GetTemplateArguments(QualType Type) { assert(!Type.isNull()); - if (const auto *Specialization = Type->getAs<TemplateSpecializationType>()) - return Specialization->template_arguments(); - if (const auto *RecordDecl = Type->getAsCXXRecordDecl()) { const auto *TemplateDecl = dyn_cast<ClassTemplateSpecializationDecl>(RecordDecl); @@ -157,6 +154,9 @@ GetTemplateArguments(QualType Type) { return TemplateDecl->getTemplateArgs().asArray(); } + if (const auto *Specialization = Type->getAs<TemplateSpecializationType>()) + return Specialization->template_arguments(); + return None; } |