diff options
author | David Schulz <david.schulz@qt.io> | 2020-05-13 15:18:38 +0200 |
---|---|---|
committer | David Schulz <david.schulz@qt.io> | 2020-05-14 09:46:37 +0000 |
commit | 32d29f5a11d38324ae0a1f82e874c8f1c8d6b250 (patch) | |
tree | f5a00eb72aaa0d6fdd840dd02573068351f7039d /src/plugins/languageclient/languageclientfunctionhint.cpp | |
parent | 98be9d4f6d3a5e0b98e688e0544d9436f2b9e8c2 (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.cpp | 10 |
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) |