aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/languageclient/languageclientfunctionhint.cpp
diff options
context:
space:
mode:
authorDavid Schulz <david.schulz@qt.io>2020-05-13 15:18:38 +0200
committerDavid Schulz <david.schulz@qt.io>2020-05-14 09:46:37 +0000
commit32d29f5a11d38324ae0a1f82e874c8f1c8d6b250 (patch)
treef5a00eb72aaa0d6fdd840dd02573068351f7039d /src/plugins/languageclient/languageclientfunctionhint.cpp
parent98be9d4f6d3a5e0b98e688e0544d9436f2b9e8c2 (diff)
LSP: do not create empty function hint proposal model
Fixes: SOFT ASSERT: "d->m_totalHints != 0" in functionhintproposalwidget.cpp Change-Id: Ibfda27bf1e02b60d624851995ce1f5f54f662182 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Diffstat (limited to 'src/plugins/languageclient/languageclientfunctionhint.cpp')
-rw-r--r--src/plugins/languageclient/languageclientfunctionhint.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/plugins/languageclient/languageclientfunctionhint.cpp b/src/plugins/languageclient/languageclientfunctionhint.cpp
index 8b47b73458c..e49f5fc99cb 100644
--- a/src/plugins/languageclient/languageclientfunctionhint.cpp
+++ b/src/plugins/languageclient/languageclientfunctionhint.cpp
@@ -106,10 +106,14 @@ void FunctionHintProcessor::handleSignatureResponse(const SignatureHelpRequest::
m_currentRequest = MessageId();
if (auto error = response.error())
m_client->log(error.value());
- FunctionHintProposalModelPtr model(
- new FunctionHintProposalModel(response.result().value().value()));
m_client->removeAssistProcessor(this);
- setAsyncProposalAvailable(new FunctionHintProposal(m_pos, model));
+ const SignatureHelp &signatureHelp = response.result().value().value();
+ if (signatureHelp.signatures().isEmpty()) {
+ setAsyncProposalAvailable(nullptr);
+ } else {
+ FunctionHintProposalModelPtr model(new FunctionHintProposalModel(signatureHelp));
+ setAsyncProposalAvailable(new FunctionHintProposal(m_pos, model));
+ }
}
FunctionHintAssistProvider::FunctionHintAssistProvider(Client *client)