Clang: Do not duplicate operator entries

Do not show the same operator twice in symbol outline and
current document filter.

Extract common checks to TokenInfoContainer class.

Change-Id: I3b48aa949d678564c952a71f650b7ba601570fa2
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
This commit is contained in:
Ivan Donchevskii
2018-06-05 13:37:02 +02:00
parent bb0c681ff8
commit 4f51b89d65
3 changed files with 10 additions and 7 deletions

View File

@@ -124,9 +124,7 @@ QList<Core::LocatorFilterEntry> ClangCurrentDocumentFilter::matchesFor(
const QVector<TokInfoContainer> &infos = processor->tokenInfos();
for (const TokInfoContainer &info : infos) {
if (!info.extraInfo.declaration)
continue;
if (info.types.mainHighlightingType == ClangBackEnd::HighlightingType::LocalVariable)
if (!info.isGlobalDeclaration())
continue;
QRegularExpressionMatch match = regexp.match(info.extraInfo.token);
if (match.hasMatch())

View File

@@ -64,11 +64,8 @@ void buildTree(const TokenContainers &containers,
std::unordered_map<int, TokenTreeItem *> treeItemCache;
for (int index = 0; index < containers.size(); ++index) {
const TokenContainer &container = containers[index];
if (!container.extraInfo.declaration ||
(container.types.mainHighlightingType
== ClangBackEnd::HighlightingType::LocalVariable)) {
if (!container.isGlobalDeclaration())
continue;
}
const int lexicalParentIndex = container.extraInfo.lexicalParentIndex;
QTC_ASSERT(lexicalParentIndex < index, return;);