summaryrefslogtreecommitdiff
path: root/src/plugins/cpptools/cppelementevaluator.cpp
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@qt.io>2018-03-08 19:25:04 +0100
committerEike Ziller <eike.ziller@qt.io>2018-03-09 08:21:07 +0000
commit711ac6602f67a711eeeb307174408cdc5cf0ab3a (patch)
treed7e2627b3a158f43cd49fab0de08d15797658183 /src/plugins/cpptools/cppelementevaluator.cpp
parent32188f448ab9cfc0e7ed3da4f95c3f9ce2953795 (diff)
downloadqt-creator-711ac6602f67a711eeeb307174408cdc5cf0ab3a.tar.gz
Fix C++ type hierarchy
Dynamic casts between library boundaries tend to fail. Add an "explicit cast" to CppClass via virtual functions as a quickfix. This is a recurring issue, e.g. d2769f30037aa, 3f11ef92167ba and 2ffd0e2d0da5d to name just a few... This was introduced in 5e861d2be6729 Task-number: QTCREATORBUG-20001 Change-Id: Ie5a89a028d587e4e9d1ecec920a7c7d17497dbde Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
Diffstat (limited to 'src/plugins/cpptools/cppelementevaluator.cpp')
-rw-r--r--src/plugins/cpptools/cppelementevaluator.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/plugins/cpptools/cppelementevaluator.cpp b/src/plugins/cpptools/cppelementevaluator.cpp
index df9ebefa3d..513926802b 100644
--- a/src/plugins/cpptools/cppelementevaluator.cpp
+++ b/src/plugins/cpptools/cppelementevaluator.cpp
@@ -63,6 +63,11 @@ CppElement::CppElement() : helpCategory(TextEditor::HelpItem::Unknown)
CppElement::~CppElement()
{}
+CppClass *CppElement::toCppClass()
+{
+ return nullptr;
+}
+
class Unknown : public CppElement
{
public:
@@ -156,6 +161,11 @@ bool CppClass::operator==(const CppClass &other)
return this->declaration == other.declaration;
}
+CppClass *CppClass::toCppClass()
+{
+ return this;
+}
+
void CppClass::lookupBases(Symbol *declaration, const LookupContext &context)
{
typedef QPair<ClassOrNamespace *, CppClass *> Data;