forked from qt-creator/qt-creator
CppEditor: Clean up cppvirtualfunctionassistprovider.cpp
- Moves the findMatchingClassDeclaration() call from FollowSymbolUnderCursor::findLink into VirtualFunctionsAssistProcessor since we already have a SymbolFinder there - Make canLookupVirtualFunctionOverrides a class member because we plan to add some methods - Better parameter names/order for FunctionHelper::overrides() Change-Id: I0a93ff5445352d47e808adad45485e520f06946e Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
This commit is contained in:
@@ -132,12 +132,16 @@ public:
|
||||
|
||||
IAssistProposal *perform(const IAssistInterface *)
|
||||
{
|
||||
QTC_ASSERT(m_params.startClass, return 0);
|
||||
QTC_ASSERT(m_params.function, return 0);
|
||||
QTC_ASSERT(!m_params.snapshot.isEmpty(), return 0);
|
||||
|
||||
Class *functionsClass = m_finder.findMatchingClassDeclaration(m_params.function,
|
||||
m_params.snapshot);
|
||||
if (!functionsClass)
|
||||
return 0;
|
||||
|
||||
const QList<Symbol *> overrides
|
||||
= FunctionHelper::overrides(m_params.startClass, m_params.function, m_params.snapshot);
|
||||
= FunctionHelper::overrides(m_params.function, functionsClass, m_params.snapshot);
|
||||
if (overrides.isEmpty())
|
||||
return 0;
|
||||
|
||||
@@ -250,19 +254,19 @@ bool FunctionHelper::isPureVirtualFunction(const Function *function, const Snaps
|
||||
return isVirtualFunction_helper(function, snapshot, PureVirtual);
|
||||
}
|
||||
|
||||
QList<Symbol *> FunctionHelper::overrides(Class *startClass, Function *function,
|
||||
QList<Symbol *> FunctionHelper::overrides(Function *function, Class *functionsClass,
|
||||
const Snapshot &snapshot)
|
||||
{
|
||||
QList<Symbol *> result;
|
||||
QTC_ASSERT(startClass && function, return result);
|
||||
QTC_ASSERT(function && functionsClass, return result);
|
||||
|
||||
FullySpecifiedType referenceType = function->type();
|
||||
const Name *referenceName = function->name();
|
||||
QTC_ASSERT(referenceName && referenceType.isValid(), return result);
|
||||
|
||||
// Find overrides
|
||||
CppEditor::Internal::CppClass cppClass = CppClass(startClass);
|
||||
cppClass.lookupDerived(startClass, snapshot);
|
||||
CppEditor::Internal::CppClass cppClass = CppClass(functionsClass);
|
||||
cppClass.lookupDerived(functionsClass, snapshot);
|
||||
|
||||
QList<CppClass> l;
|
||||
l << cppClass;
|
||||
|
||||
Reference in New Issue
Block a user