forked from qt-creator/qt-creator
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 <orgads@gmail.com> Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
This commit is contained in:
@@ -136,7 +136,7 @@ bool CppEditorDocument::isObjCEnabled() const
|
||||
return m_isObjCEnabled;
|
||||
}
|
||||
|
||||
TextEditor::CompletionAssistProvider *CppEditorDocument::completionAssistProvider() const
|
||||
CppTools::CppCompletionAssistProvider *CppEditorDocument::completionAssistProvider() const
|
||||
{
|
||||
return m_completionAssistProvider;
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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<CppCompletionAssistProvider *>(
|
||||
cppEditorDocument()->completionAssistProvider())) {
|
||||
if (CppCompletionAssistProvider *cap = cppEditorDocument()->completionAssistProvider()) {
|
||||
LanguageFeatures features = LanguageFeatures::defaultFeatures();
|
||||
if (Document::Ptr doc = d->m_lastSemanticInfo.doc)
|
||||
features = doc->languageFeatures();
|
||||
|
||||
Reference in New Issue
Block a user