Commit 27319275 authored by Nikolai Kosjar's avatar Nikolai Kosjar

CppEditor/CppTools: Move FunctionHelper to CppTools

...and rename it to FunctionUtils.

Change-Id: If076ec01fd82e8ba728764bdeab7e87e8bc1ff3b
Reviewed-by: default avatarErik Verbruggen <erik.verbruggen@digia.com>
parent a18b5e27
......@@ -206,9 +206,6 @@ private slots:
void test_quickfix_InsertVirtualMethods_implementationFile();
void test_quickfix_InsertVirtualMethods_BaseClassInNamespace();
void test_functionhelper_virtualFunctions();
void test_functionhelper_virtualFunctions_data();
// tests for "Include Hiererchy"
void test_includeHierarchyModel_simpleIncludes();
void test_includeHierarchyModel_simpleIncludedBy();
......
......@@ -39,6 +39,7 @@
#include <cplusplus/SimpleLexer.h>
#include <cplusplus/TypeOfExpression.h>
#include <cpptools/cppmodelmanagerinterface.h>
#include <cpptools/functionutils.h>
#include <cpptools/symbolfinder.h>
#include <texteditor/basetextdocumentlayout.h>
#include <utils/qtcassert.h>
......@@ -128,12 +129,12 @@ bool VirtualFunctionHelper::canLookupVirtualFunctionOverrides(Function *function
if (IdExpressionAST *idExpressionAST = m_baseExpressionAST->asIdExpression()) {
NameAST *name = idExpressionAST->name;
const bool nameIsQualified = name && name->asQualifiedName();
result = !nameIsQualified && FunctionHelper::isVirtualFunction(
result = !nameIsQualified && FunctionUtils::isVirtualFunction(
function, LookupContext(m_document, m_snapshot));
} else if (MemberAccessAST *memberAccessAST = m_baseExpressionAST->asMemberAccess()) {
NameAST *name = memberAccessAST->member_name;
const bool nameIsQualified = name && name->asQualifiedName();
if (!nameIsQualified && FunctionHelper::isVirtualFunction(
if (!nameIsQualified && FunctionUtils::isVirtualFunction(
function, LookupContext(m_document, m_snapshot))) {
TranslationUnit *unit = m_expressionDocument->translationUnit();
QTC_ASSERT(unit, return false);
......
......@@ -70,23 +70,6 @@ private:
Parameters m_params;
};
class FunctionHelper
{
public:
static bool isVirtualFunction(const CPlusPlus::Function *function,
const CPlusPlus::LookupContext &context,
const CPlusPlus::Function **firstVirtual = 0);
static bool isPureVirtualFunction(const CPlusPlus::Function *function,
const CPlusPlus::LookupContext &context,
const CPlusPlus::Function **firstVirtual = 0);
static QList<CPlusPlus::Symbol *> overrides(CPlusPlus::Function *function,
CPlusPlus::Class *functionsClass,
CPlusPlus::Class *staticClass,
const CPlusPlus::Snapshot &snapshot);
};
} // namespace Internal
} // namespace CppEditor
......
......@@ -51,7 +51,8 @@ HEADERS += completionsettingspage.h \
cpplocatordata.h \
cppmodelmanagersupportinternal.h \
cppcodemodelsettings.h \
cppcodemodelsettingspage.h
cppcodemodelsettingspage.h \
functionutils.h
SOURCES += completionsettingspage.cpp \
cppclassesfilter.cpp \
......@@ -100,7 +101,8 @@ SOURCES += completionsettingspage.cpp \
cpplocatordata.cpp \
cppmodelmanagersupportinternal.cpp \
cppcodemodelsettings.cpp \
cppcodemodelsettingspage.cpp
cppcodemodelsettingspage.cpp \
functionutils.cpp
FORMS += completionsettingspage.ui \
cppfilesettingspage.ui \
......
......@@ -101,6 +101,8 @@ QtcPlugin {
"cpptoolssettings.h",
"doxygengenerator.cpp",
"doxygengenerator.h",
"functionutils.cpp",
"functionutils.h",
"insertionpointlocator.cpp",
"insertionpointlocator.h",
"searchsymbols.cpp",
......
......@@ -204,6 +204,9 @@ private slots:
void test_cpppreprocessor_includes();
void test_functionutils_virtualFunctions();
void test_functionutils_virtualFunctions_data();
void test_modelmanager_paths_are_clean();
void test_modelmanager_framework_headers();
void test_modelmanager_refresh_also_includes_of_project_files();
......
This diff is collapsed.
/****************************************************************************
**
** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of Qt Creator.
**
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and Digia. For licensing terms and
** conditions see http://qt.digia.com/licensing. For further information
** use the contact form at http://qt.digia.com/contact-us.
**
** GNU Lesser General Public License Usage
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 2.1 as published by the Free Software
** Foundation and appearing in the file LICENSE.LGPL included in the
** packaging of this file. Please review the following information to
** ensure the GNU Lesser General Public License version 2.1 requirements
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** In addition, as a special exception, Digia gives you certain additional
** rights. These rights are described in the Digia Qt LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
****************************************************************************/
#ifndef FUNCTIONUTILS_H
#define FUNCTIONUTILS_H
#include "cpptools_global.h"
QT_BEGIN_NAMESPACE
template <class> class QList;
QT_END_NAMESPACE
namespace CPlusPlus {
class Class;
class Function;
class LookupContext;
class Snapshot;
class Symbol;
} // namespace CPlusPlus
namespace CppTools {
class CPPTOOLS_EXPORT FunctionUtils
{
public:
static bool isVirtualFunction(const CPlusPlus::Function *function,
const CPlusPlus::LookupContext &context,
const CPlusPlus::Function **firstVirtual = 0);
static bool isPureVirtualFunction(const CPlusPlus::Function *function,
const CPlusPlus::LookupContext &context,
const CPlusPlus::Function **firstVirtual = 0);
static QList<CPlusPlus::Symbol *> overrides(CPlusPlus::Function *function,
CPlusPlus::Class *functionsClass,
CPlusPlus::Class *staticClass,
const CPlusPlus::Snapshot &snapshot);
};
} // namespace CppTools
#endif // FUNCTIONUTILS_H
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment