Clang: Do not replace class completion with constructor completion

Both completion kinds have the same name. Do not merge them
together when looking for constructor overloads.

Task-number: QTCREATORBUG-21010
Change-Id: I4c851033d63ad4e242b6179491f1fba00af466f6
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
Ivan Donchevskii
2018-08-29 10:44:48 +02:00
parent 9492066a31
commit 4a6ad6c849
6 changed files with 39 additions and 5 deletions

View File

@@ -133,12 +133,14 @@ static QList<AssistProposalItemInterface *> toAssistProposalItems(
auto samePreviousConstructor
= std::find_if(items.begin(),
items.end(),
[&name](const AssistProposalItemInterface *item) {
return item->text() == name;
[&](const AssistProposalItemInterface *item) {
return item->text() == name
&& static_cast<const ClangAssistProposalItem *>(item)->firstCodeCompletion()
.completionKind == codeCompletion.completionKind;
});
if (samePreviousConstructor == items.end()) {
addAssistProposalItem(items, codeCompletion, name);
} else {
} else if (codeCompletion.completionKind == CodeCompletion::ConstructorCompletionKind){
addFunctionOverloadAssistProposalItem(items, *samePreviousConstructor, interface,
codeCompletion, name);
}