diff --git a/src/plugins/cppeditor/cppcompletionassist.cpp b/src/plugins/cppeditor/cppcompletionassist.cpp index 5466f675eaf..7a886a96c0f 100644 --- a/src/plugins/cppeditor/cppcompletionassist.cpp +++ b/src/plugins/cppeditor/cppcompletionassist.cpp @@ -850,20 +850,20 @@ IAssistProposal *InternalCppCompletionAssistProcessor::createContentProposal() QSet processed; auto it = m_completions.begin(); while (it != m_completions.end()) { - auto item = static_cast(*it); - if (!processed.contains(item->text()) || item->isSnippet()) { + if ((*it)->isSnippet()) { ++it; - if (!item->isSnippet()) { - processed.insert(item->text()); - if (!item->isOverloaded()) { - if (auto symbol = qvariant_cast(item->data())) { - if (Function *funTy = symbol->type()->asFunctionType()) { - if (funTy->hasArguments()) - item->markAsOverloaded(); - } + } else if (!processed.contains((*it)->text())) { + auto item = static_cast(*it); + processed.insert(item->text()); + if (!item->isOverloaded()) { + if (auto symbol = qvariant_cast(item->data())) { + if (Function *funTy = symbol->type()->asFunctionType()) { + if (funTy->hasArguments()) + item->markAsOverloaded(); } } } + ++it; } else { delete *it; it = m_completions.erase(it);