Commit 2e499b73 authored by Marco Bubke's avatar Marco Bubke Committed by Nikolai Kosjar
Browse files

Clang: Filter scope operators



Scope operators are not really user defined.

Change-Id: I1ab08dc3db7c39b98da02b6ef10bf78b75a6856d
Reviewed-by: default avatarNikolai Kosjar <nikolai.kosjar@theqtcompany.com>
parent bd10e9b0
......@@ -241,11 +241,23 @@ HighlightingType literalKind(const Cursor &cursor)
Q_UNREACHABLE();
}
bool hasOperatorName(const char *operatorString)
{
return std::strncmp(operatorString, "operator", 8) == 0;
}
HighlightingType operatorKind(const Cursor &cursor)
{
if (hasOperatorName(cursor.spelling().cString()))
return HighlightingType::Operator;
else
return HighlightingType::Invalid;
}
HighlightingType punctationKind(const Cursor &cursor)
{
switch (cursor.kind()) {
case CXCursor_DeclRefExpr: return HighlightingType::Operator;
case CXCursor_DeclRefExpr: return operatorKind(cursor);
default: return HighlightingType::Invalid;
}
}
......
......@@ -383,3 +383,19 @@ void f17()
{
TemplatedType<int> TemplatedTypeDeclaration;
}
void f18()
{
auto value = 1 + 2;
}
class ScopeClass
{
public:
static void ScopeOperator();
};
void f19()
{
ScopeClass::ScopeOperator();
}
......@@ -881,6 +881,20 @@ TEST_F(HighlightingInformations, TemplatedTypeDeclaration)
ASSERT_THAT(infos[0], HasType(HighlightingType::Type));
}
TEST_F(HighlightingInformations, NoOperator)
{
const auto infos = translationUnit.highlightingInformationsInRange(sourceRange(389, 24));
ASSERT_THAT(infos[2], HasType(HighlightingType::Invalid));
}
TEST_F(HighlightingInformations, ScopeOperator)
{
const auto infos = translationUnit.highlightingInformationsInRange(sourceRange(400, 33));
ASSERT_THAT(infos[1], HasType(HighlightingType::Invalid));
}
Data *HighlightingInformations::d;
void HighlightingInformations::SetUpTestCase()
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment