From 66944dc4e9c8e0fbc18fbf4daa6075d30c8f62bc Mon Sep 17 00:00:00 2001 From: Bernhard Beschow Date: Sun, 22 Oct 2017 22:24:47 +0200 Subject: [PATCH] CppEditorDocument: Return covariant return type As a virtual method overload, completionAssistProvider() can return a covariant return type. This preserves type information and eliminates a qobject_cast<> in CppEditorWidget. Change-Id: I3b29b0fa4e876bbcc43f628e6e0bbf4d73d3f689 Reviewed-by: Orgad Shaneh Reviewed-by: Ivan Donchevskii --- src/plugins/cppeditor/cppeditordocument.cpp | 2 +- src/plugins/cppeditor/cppeditordocument.h | 2 +- src/plugins/cppeditor/cppeditorwidget.cpp | 3 +-- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/plugins/cppeditor/cppeditordocument.cpp b/src/plugins/cppeditor/cppeditordocument.cpp index 1a6912c0483..68e3e6547ec 100644 --- a/src/plugins/cppeditor/cppeditordocument.cpp +++ b/src/plugins/cppeditor/cppeditordocument.cpp @@ -136,7 +136,7 @@ bool CppEditorDocument::isObjCEnabled() const return m_isObjCEnabled; } -TextEditor::CompletionAssistProvider *CppEditorDocument::completionAssistProvider() const +CppTools::CppCompletionAssistProvider *CppEditorDocument::completionAssistProvider() const { return m_completionAssistProvider; } diff --git a/src/plugins/cppeditor/cppeditordocument.h b/src/plugins/cppeditor/cppeditordocument.h index b2a2466c4dc..44fe04becb7 100644 --- a/src/plugins/cppeditor/cppeditordocument.h +++ b/src/plugins/cppeditor/cppeditordocument.h @@ -52,7 +52,7 @@ public: explicit CppEditorDocument(); bool isObjCEnabled() const; - TextEditor::CompletionAssistProvider *completionAssistProvider() const override; + CppTools::CppCompletionAssistProvider *completionAssistProvider() const override; TextEditor::IAssistProvider *quickFixAssistProvider() const override; void recalculateSemanticInfoDetached(); diff --git a/src/plugins/cppeditor/cppeditorwidget.cpp b/src/plugins/cppeditor/cppeditorwidget.cpp index dbd7a450f7e..7bec7b9fe70 100644 --- a/src/plugins/cppeditor/cppeditorwidget.cpp +++ b/src/plugins/cppeditor/cppeditorwidget.cpp @@ -1001,8 +1001,7 @@ void CppEditorWidget::updateSemanticInfo(const SemanticInfo &semanticInfo, AssistInterface *CppEditorWidget::createAssistInterface(AssistKind kind, AssistReason reason) const { if (kind == Completion) { - if (CppCompletionAssistProvider *cap = qobject_cast( - cppEditorDocument()->completionAssistProvider())) { + if (CppCompletionAssistProvider *cap = cppEditorDocument()->completionAssistProvider()) { LanguageFeatures features = LanguageFeatures::defaultFeatures(); if (Document::Ptr doc = d->m_lastSemanticInfo.doc) features = doc->languageFeatures();