diff options
author | Eike Ziller <eike.ziller@qt.io> | 2018-03-08 19:25:04 +0100 |
---|---|---|
committer | Eike Ziller <eike.ziller@qt.io> | 2018-03-09 08:21:07 +0000 |
commit | 711ac6602f67a711eeeb307174408cdc5cf0ab3a (patch) | |
tree | d7e2627b3a158f43cd49fab0de08d15797658183 /src/plugins/cpptools/cppelementevaluator.cpp | |
parent | 32188f448ab9cfc0e7ed3da4f95c3f9ce2953795 (diff) | |
download | qt-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.cpp | 10 |
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; |