Clang: Fix highlighting for partial specialization

Change-Id: I53f6a87064d45a3a68394d1b3bc0d767b91a9d11
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
Nikolai Kosjar
2017-06-01 09:58:33 +02:00
parent 3bc2ce1864
commit e6c8fbfd92
3 changed files with 11 additions and 0 deletions

View File

@@ -293,6 +293,7 @@ void HighlightingMark::identifierKind(const Cursor &cursor, Recursion recursion)
case CXCursor_ObjCDynamicDecl: types.mainHighlightingType = HighlightingType::Field; break;
case CXCursor_TypeRef: referencedTypeKind(cursor); break;
case CXCursor_ClassDecl:
case CXCursor_ClassTemplatePartialSpecialization:
case CXCursor_TemplateTypeParameter:
case CXCursor_TemplateTemplateParameter:
case CXCursor_UnionDecl:

View File

@@ -548,3 +548,6 @@ struct NonConstReferenceMemberInitialization
int &foo;
};
template<class T> class Coo;
template<class T> class Coo<T*>;

View File

@@ -1105,6 +1105,13 @@ TEST_F(HighlightingMarks, DISABLED_ArgumentToUserDefinedIndexOperator)
ASSERT_THAT(infos[2], HasOnlyType(HighlightingType::LocalVariable));
}
TEST_F(HighlightingMarks, ClassTemplateParticalSpecialization)
{
const auto infos = translationUnit.highlightingMarksInRange(sourceRange(553, 33));
ASSERT_THAT(infos[6], HasOnlyType(HighlightingType::Type));
}
Data *HighlightingMarks::d;
void HighlightingMarks::SetUpTestCase()