diff options
author | hjk <hjk@qt.io> | 2019-02-14 10:28:20 +0100 |
---|---|---|
committer | hjk <hjk@qt.io> | 2019-02-15 14:33:56 +0000 |
commit | 66fd5abe583629cc2609e0724f0912e449e9d569 (patch) | |
tree | 094c143b02352ccc30e65084d3b0963675b92de5 /src | |
parent | d9678ceb07f7019c7514e8bf15d6d12539702f68 (diff) | |
download | qt-creator-66fd5abe583629cc2609e0724f0912e449e9d569.tar.gz |
QtSupport: Drop one suite of QtVersion constructors
Use default plus polish afterwards instead.
Change-Id: Ibd137562128445a5bae5aaa4fc5fcce2df6c3e38
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Diffstat (limited to 'src')
30 files changed, 36 insertions, 90 deletions
diff --git a/src/plugins/android/androidqtversion.cpp b/src/plugins/android/androidqtversion.cpp index 35a0b53f82..bb9302f7bd 100644 --- a/src/plugins/android/androidqtversion.cpp +++ b/src/plugins/android/androidqtversion.cpp @@ -50,12 +50,6 @@ AndroidQtVersion::AndroidQtVersion() { } -AndroidQtVersion::AndroidQtVersion(const Utils::FileName &path) - : QtSupport::BaseQtVersion(path) -{ - setUnexpandedDisplayName(defaultUnexpandedDisplayName(path, false)); -} - AndroidQtVersion *AndroidQtVersion::clone() const { return new AndroidQtVersion(*this); diff --git a/src/plugins/android/androidqtversion.h b/src/plugins/android/androidqtversion.h index bb5b2d7487..baffad526c 100644 --- a/src/plugins/android/androidqtversion.h +++ b/src/plugins/android/androidqtversion.h @@ -38,7 +38,6 @@ class AndroidQtVersion : public QtSupport::BaseQtVersion public: AndroidQtVersion(); - explicit AndroidQtVersion(const Utils::FileName &path); AndroidQtVersion *clone() const override; QString type() const override; diff --git a/src/plugins/android/androidqtversionfactory.cpp b/src/plugins/android/androidqtversionfactory.cpp index e15ca0693f..358f73583a 100644 --- a/src/plugins/android/androidqtversionfactory.cpp +++ b/src/plugins/android/androidqtversionfactory.cpp @@ -40,14 +40,14 @@ AndroidQtVersionFactory::AndroidQtVersionFactory() setPriority(90); } -QtSupport::BaseQtVersion *AndroidQtVersionFactory::create(const Utils::FileName &qmakePath, ProFileEvaluator *evaluator) +QtSupport::BaseQtVersion *AndroidQtVersionFactory::create(ProFileEvaluator *evaluator) { if (!evaluator->values(QLatin1String("CONFIG")).contains(QLatin1String("android")) && evaluator->value(QLatin1String("QMAKE_PLATFORM")) != QLatin1String("android")) return nullptr; if (evaluator->values(QLatin1String("CONFIG")).contains(QLatin1String("android-no-sdk"))) return nullptr; - return new AndroidQtVersion(qmakePath); + return new AndroidQtVersion; } } // Internal diff --git a/src/plugins/android/androidqtversionfactory.h b/src/plugins/android/androidqtversionfactory.h index 3af4edc514..5c9d0f5893 100644 --- a/src/plugins/android/androidqtversionfactory.h +++ b/src/plugins/android/androidqtversionfactory.h @@ -35,8 +35,7 @@ class AndroidQtVersionFactory : public QtSupport::QtVersionFactory public: AndroidQtVersionFactory(); - QtSupport::BaseQtVersion *create(const Utils::FileName &qmakePath, - ProFileEvaluator *evaluator) override; + QtSupport::BaseQtVersion *create(ProFileEvaluator *evaluator) override; }; } // namespace Internal diff --git a/src/plugins/ios/iosqtversion.cpp b/src/plugins/ios/iosqtversion.cpp index 23a52a2578..b6cb2a037e 100644 --- a/src/plugins/ios/iosqtversion.cpp +++ b/src/plugins/ios/iosqtversion.cpp @@ -42,12 +42,6 @@ using namespace ProjectExplorer; IosQtVersion::IosQtVersion() = default; -IosQtVersion::IosQtVersion(const Utils::FileName &path) - : QtSupport::BaseQtVersion(path) -{ - setUnexpandedDisplayName(defaultUnexpandedDisplayName(path, false)); -} - IosQtVersion *IosQtVersion::clone() const { return new IosQtVersion(*this); diff --git a/src/plugins/ios/iosqtversion.h b/src/plugins/ios/iosqtversion.h index a747000d55..203a0961f3 100644 --- a/src/plugins/ios/iosqtversion.h +++ b/src/plugins/ios/iosqtversion.h @@ -38,7 +38,6 @@ class IosQtVersion : public QtSupport::BaseQtVersion public: IosQtVersion(); - explicit IosQtVersion(const Utils::FileName &path); IosQtVersion *clone() const override; QString type() const override; diff --git a/src/plugins/ios/iosqtversionfactory.cpp b/src/plugins/ios/iosqtversionfactory.cpp index 0fc3775efc..ebdbd74c5a 100644 --- a/src/plugins/ios/iosqtversionfactory.cpp +++ b/src/plugins/ios/iosqtversionfactory.cpp @@ -39,12 +39,11 @@ IosQtVersionFactory::IosQtVersionFactory() setPriority(90); } -QtSupport::BaseQtVersion *IosQtVersionFactory::create(const Utils::FileName &qmakePath, - ProFileEvaluator *evaluator) +QtSupport::BaseQtVersion *IosQtVersionFactory::create(ProFileEvaluator *evaluator) { if (!(evaluator->values(QLatin1String("QMAKE_PLATFORM")).contains(QLatin1String("ios")))) return nullptr; - return new IosQtVersion(qmakePath); + return new IosQtVersion; } } // Internal diff --git a/src/plugins/ios/iosqtversionfactory.h b/src/plugins/ios/iosqtversionfactory.h index 8c093d7cb3..ce912ed60f 100644 --- a/src/plugins/ios/iosqtversionfactory.h +++ b/src/plugins/ios/iosqtversionfactory.h @@ -35,8 +35,7 @@ class IosQtVersionFactory : public QtSupport::QtVersionFactory public: IosQtVersionFactory(); - QtSupport::BaseQtVersion *create(const Utils::FileName &qmakePath, - ProFileEvaluator *evaluator) override; + QtSupport::BaseQtVersion *create(ProFileEvaluator *evaluator) override; }; } // namespace Internal diff --git a/src/plugins/qnx/qnxqtversion.cpp b/src/plugins/qnx/qnxqtversion.cpp index 19f2b9fa4c..9e58c0fc81 100644 --- a/src/plugins/qnx/qnxqtversion.cpp +++ b/src/plugins/qnx/qnxqtversion.cpp @@ -46,12 +46,6 @@ static char SDP_PATH_KEY[] = "SDKPath"; QnxQtVersion::QnxQtVersion() = default; -QnxQtVersion::QnxQtVersion(const Utils::FileName &path) : - QtSupport::BaseQtVersion(path) -{ - setUnexpandedDisplayName(defaultUnexpandedDisplayName(path, false)); -} - QnxQtVersion *QnxQtVersion::clone() const { return new QnxQtVersion(*this); diff --git a/src/plugins/qnx/qnxqtversion.h b/src/plugins/qnx/qnxqtversion.h index 22ab58c935..5a1ac46136 100644 --- a/src/plugins/qnx/qnxqtversion.h +++ b/src/plugins/qnx/qnxqtversion.h @@ -39,7 +39,6 @@ class QnxQtVersion : public QtSupport::BaseQtVersion { public: QnxQtVersion(); - explicit QnxQtVersion(const Utils::FileName &path); QnxQtVersion *clone() const override; diff --git a/src/plugins/qnx/qnxqtversionfactory.cpp b/src/plugins/qnx/qnxqtversionfactory.cpp index 283a8a52af..eea7f49243 100644 --- a/src/plugins/qnx/qnxqtversionfactory.cpp +++ b/src/plugins/qnx/qnxqtversionfactory.cpp @@ -40,12 +40,10 @@ QnxQtVersionFactory::QnxQtVersionFactory() setPriority(50); } -QtSupport::BaseQtVersion *QnxQtVersionFactory::create(const Utils::FileName &qmakePath, - ProFileEvaluator *evaluator) +QtSupport::BaseQtVersion *QnxQtVersionFactory::create(ProFileEvaluator *evaluator) { - if (evaluator->contains(QLatin1String("QNX_CPUDIR"))) { - return new QnxQtVersion(qmakePath); - } + if (evaluator->contains(QLatin1String("QNX_CPUDIR"))) + return new QnxQtVersion; return nullptr; } diff --git a/src/plugins/qnx/qnxqtversionfactory.h b/src/plugins/qnx/qnxqtversionfactory.h index f3052a720f..5c3aabb520 100644 --- a/src/plugins/qnx/qnxqtversionfactory.h +++ b/src/plugins/qnx/qnxqtversionfactory.h @@ -35,8 +35,7 @@ class QnxQtVersionFactory : public QtSupport::QtVersionFactory public: QnxQtVersionFactory(); - QtSupport::BaseQtVersion *create(const Utils::FileName &qmakePath, - ProFileEvaluator *evaluator) override; + QtSupport::BaseQtVersion *create(ProFileEvaluator *evaluator) override; }; } // namespace Internal diff --git a/src/plugins/qtsupport/baseqtversion.cpp b/src/plugins/qtsupport/baseqtversion.cpp index cb24af7b9b..4a6ed3b854 100644 --- a/src/plugins/qtsupport/baseqtversion.cpp +++ b/src/plugins/qtsupport/baseqtversion.cpp @@ -193,15 +193,19 @@ bool QtVersionNumber::operator >=(const QtVersionNumber &b) const // BaseQtVersion /////////////// -BaseQtVersion::BaseQtVersion(const FileName &qmakeCommand) - : m_id(QtVersionManager::getUniqueId()), - m_qmakeCommand(qmakeCommand) -{ } BaseQtVersion::BaseQtVersion(const BaseQtVersion &other) = default; BaseQtVersion::BaseQtVersion() = default; BaseQtVersion::~BaseQtVersion() = default; +void BaseQtVersion::setupQmakePathAndId(const FileName &qmakeCommand) +{ + m_id = QtVersionManager::getUniqueId(); + QTC_CHECK(m_qmakeCommand.isEmpty()); // Should only be used once. + m_qmakeCommand = qmakeCommand; + setUnexpandedDisplayName(defaultUnexpandedDisplayName(m_qmakeCommand, false)); +} + QString BaseQtVersion::defaultUnexpandedDisplayName(const FileName &qmakePath, bool fromPath) { QString location; diff --git a/src/plugins/qtsupport/baseqtversion.h b/src/plugins/qtsupport/baseqtversion.h index 489374899d..3767952987 100644 --- a/src/plugins/qtsupport/baseqtversion.h +++ b/src/plugins/qtsupport/baseqtversion.h @@ -257,8 +257,8 @@ public: protected: virtual QSet<Core::Id> availableFeatures() const; + BaseQtVersion(); - explicit BaseQtVersion(const Utils::FileName &path); BaseQtVersion(const BaseQtVersion &other); virtual QList<ProjectExplorer::Task> reportIssuesImpl(const QString &proFile, const QString &buildDir) const; @@ -271,6 +271,7 @@ protected: virtual void parseMkSpec(ProFileEvaluator *) const; private: + void setupQmakePathAndId(const Utils::FileName &path); void setAutoDetectionSource(const QString &autodetectionSource); void updateVersionInfo() const; enum HostBinaries { Designer, Linguist, Uic, QScxmlc }; diff --git a/src/plugins/qtsupport/desktopqtversion.cpp b/src/plugins/qtsupport/desktopqtversion.cpp index 34215812fe..f6db881248 100644 --- a/src/plugins/qtsupport/desktopqtversion.cpp +++ b/src/plugins/qtsupport/desktopqtversion.cpp @@ -46,12 +46,6 @@ DesktopQtVersion::DesktopQtVersion() } -DesktopQtVersion::DesktopQtVersion(const Utils::FileName &path) - : BaseQtVersion(path) -{ - setUnexpandedDisplayName(defaultUnexpandedDisplayName(path, false)); -} - DesktopQtVersion *DesktopQtVersion::clone() const { return new DesktopQtVersion(*this); diff --git a/src/plugins/qtsupport/desktopqtversion.h b/src/plugins/qtsupport/desktopqtversion.h index 8801333004..4b74d95648 100644 --- a/src/plugins/qtsupport/desktopqtversion.h +++ b/src/plugins/qtsupport/desktopqtversion.h @@ -33,7 +33,7 @@ class QTSUPPORT_EXPORT DesktopQtVersion : public BaseQtVersion { public: DesktopQtVersion(); - explicit DesktopQtVersion(const Utils::FileName &path); + DesktopQtVersion *clone() const override; QString type() const override; diff --git a/src/plugins/qtsupport/desktopqtversionfactory.cpp b/src/plugins/qtsupport/desktopqtversionfactory.cpp index f8f51da0da..368fef9026 100644 --- a/src/plugins/qtsupport/desktopqtversionfactory.cpp +++ b/src/plugins/qtsupport/desktopqtversionfactory.cpp @@ -37,9 +37,9 @@ DesktopQtVersionFactory::DesktopQtVersionFactory() setPriority(0); // Lowest of all, we want to be the fallback } -BaseQtVersion *DesktopQtVersionFactory::create(const Utils::FileName &qmakePath, ProFileEvaluator *evaluator) +BaseQtVersion *DesktopQtVersionFactory::create(ProFileEvaluator *evaluator) { Q_UNUSED(evaluator); // we are the fallback :) so we don't care what kind of qt it is - return new DesktopQtVersion(qmakePath); + return new DesktopQtVersion; } diff --git a/src/plugins/qtsupport/desktopqtversionfactory.h b/src/plugins/qtsupport/desktopqtversionfactory.h index 1ef146b912..d2d12e2f95 100644 --- a/src/plugins/qtsupport/desktopqtversionfactory.h +++ b/src/plugins/qtsupport/desktopqtversionfactory.h @@ -35,7 +35,7 @@ class DesktopQtVersionFactory : public QtVersionFactory public: DesktopQtVersionFactory(); - BaseQtVersion *create(const Utils::FileName &qmakePath, ProFileEvaluator *evaluator) override; + BaseQtVersion *create(ProFileEvaluator *evaluator) override; }; } // Internal diff --git a/src/plugins/qtsupport/qtversionfactory.cpp b/src/plugins/qtsupport/qtversionfactory.cpp index 05c1069cb4..4a00a199be 100644 --- a/src/plugins/qtsupport/qtversionfactory.cpp +++ b/src/plugins/qtsupport/qtversionfactory.cpp @@ -98,7 +98,8 @@ BaseQtVersion *QtVersionFactory::createQtVersionFromQMakePath(const Utils::FileN return nullptr; foreach (QtVersionFactory *factory, factories) { - if (BaseQtVersion *ver = factory->create(qmakePath, &evaluator)) { + if (BaseQtVersion *ver = factory->create(&evaluator)) { + ver->setupQmakePathAndId(qmakePath); ver->setAutoDetectionSource(autoDetectionSource); ver->setIsAutodetected(isAutoDetected); ProFileCacheManager::instance()->decRefCount(); diff --git a/src/plugins/qtsupport/qtversionfactory.h b/src/plugins/qtsupport/qtversionfactory.h index c894689b3e..c66a87a740 100644 --- a/src/plugins/qtsupport/qtversionfactory.h +++ b/src/plugins/qtsupport/qtversionfactory.h @@ -54,8 +54,7 @@ public: /// a qtversion, the priority of the desktop factory is 0 and /// the desktop factory claims to handle all paths int priority() const { return m_priority; } - virtual BaseQtVersion *create(const Utils::FileName &qmakePath, - ProFileEvaluator *evaluator) = 0; + virtual BaseQtVersion *create(ProFileEvaluator *evaluator) = 0; static BaseQtVersion *createQtVersionFromQMakePath( const Utils::FileName &qmakePath, bool isAutoDetected = false, diff --git a/src/plugins/remotelinux/embeddedlinuxqtversion.cpp b/src/plugins/remotelinux/embeddedlinuxqtversion.cpp index 9f0e6e685d..9f99db46d6 100644 --- a/src/plugins/remotelinux/embeddedlinuxqtversion.cpp +++ b/src/plugins/remotelinux/embeddedlinuxqtversion.cpp @@ -35,12 +35,6 @@ namespace RemoteLinux { namespace Internal { -EmbeddedLinuxQtVersion::EmbeddedLinuxQtVersion(const Utils::FileName &path) - : BaseQtVersion(path) -{ - setUnexpandedDisplayName(defaultUnexpandedDisplayName(path, false)); -} - EmbeddedLinuxQtVersion *EmbeddedLinuxQtVersion::clone() const { return new EmbeddedLinuxQtVersion(*this); diff --git a/src/plugins/remotelinux/embeddedlinuxqtversion.h b/src/plugins/remotelinux/embeddedlinuxqtversion.h index c1ef9ac3ab..f4eb9c0f26 100644 --- a/src/plugins/remotelinux/embeddedlinuxqtversion.h +++ b/src/plugins/remotelinux/embeddedlinuxqtversion.h @@ -34,7 +34,6 @@ class EmbeddedLinuxQtVersion : public QtSupport::BaseQtVersion { public: EmbeddedLinuxQtVersion() = default; - explicit EmbeddedLinuxQtVersion(const Utils::FileName &path); EmbeddedLinuxQtVersion *clone() const override; diff --git a/src/plugins/remotelinux/embeddedlinuxqtversionfactory.cpp b/src/plugins/remotelinux/embeddedlinuxqtversionfactory.cpp index a768338fb1..74b7bd106a 100644 --- a/src/plugins/remotelinux/embeddedlinuxqtversionfactory.cpp +++ b/src/plugins/remotelinux/embeddedlinuxqtversionfactory.cpp @@ -40,12 +40,11 @@ EmbeddedLinuxQtVersionFactory::EmbeddedLinuxQtVersionFactory() setPriority(10); } -QtSupport::BaseQtVersion *EmbeddedLinuxQtVersionFactory::create(const Utils::FileName &qmakePath, - ProFileEvaluator *evaluator) +QtSupport::BaseQtVersion *EmbeddedLinuxQtVersionFactory::create(ProFileEvaluator *evaluator) { Q_UNUSED(evaluator); - auto version = new EmbeddedLinuxQtVersion(qmakePath); + auto version = new EmbeddedLinuxQtVersion; QList<ProjectExplorer::Abi> abis = version->qtAbis(); // Note: This fails for e.g. intel/meego cross builds on x86 linux machines. diff --git a/src/plugins/remotelinux/embeddedlinuxqtversionfactory.h b/src/plugins/remotelinux/embeddedlinuxqtversionfactory.h index 0bfac1d7b7..7e341acb2f 100644 --- a/src/plugins/remotelinux/embeddedlinuxqtversionfactory.h +++ b/src/plugins/remotelinux/embeddedlinuxqtversionfactory.h @@ -35,8 +35,7 @@ class EmbeddedLinuxQtVersionFactory : public QtSupport::QtVersionFactory public: EmbeddedLinuxQtVersionFactory(); - QtSupport::BaseQtVersion *create(const Utils::FileName &qmakePath, - ProFileEvaluator *evaluator) override; + QtSupport::BaseQtVersion *create(ProFileEvaluator *evaluator) override; }; } // Internal diff --git a/src/plugins/winrt/winrtphoneqtversion.cpp b/src/plugins/winrt/winrtphoneqtversion.cpp index c7dd1658c6..99045d3f3f 100644 --- a/src/plugins/winrt/winrtphoneqtversion.cpp +++ b/src/plugins/winrt/winrtphoneqtversion.cpp @@ -35,11 +35,6 @@ namespace WinRt { namespace Internal { -WinRtPhoneQtVersion::WinRtPhoneQtVersion(const Utils::FileName &path) - : WinRtQtVersion(path) -{ -} - QString WinRtPhoneQtVersion::description() const { return tr("Windows Phone"); diff --git a/src/plugins/winrt/winrtphoneqtversion.h b/src/plugins/winrt/winrtphoneqtversion.h index 7c2626f061..1e298885e9 100644 --- a/src/plugins/winrt/winrtphoneqtversion.h +++ b/src/plugins/winrt/winrtphoneqtversion.h @@ -35,7 +35,6 @@ class WinRtPhoneQtVersion : public WinRtQtVersion Q_DECLARE_TR_FUNCTIONS(WinRt::Internal::WinRtQtVersion) public: WinRtPhoneQtVersion() = default; - explicit WinRtPhoneQtVersion(const Utils::FileName &path); QString description() const override; BaseQtVersion *clone() const override; diff --git a/src/plugins/winrt/winrtqtversion.cpp b/src/plugins/winrt/winrtqtversion.cpp index cff8c9b7c7..d9106322f4 100644 --- a/src/plugins/winrt/winrtqtversion.cpp +++ b/src/plugins/winrt/winrtqtversion.cpp @@ -33,12 +33,6 @@ namespace WinRt { namespace Internal { -WinRtQtVersion::WinRtQtVersion(const Utils::FileName &path) - : BaseQtVersion(path) -{ - setUnexpandedDisplayName(defaultUnexpandedDisplayName(path, false)); -} - QtSupport::BaseQtVersion *WinRtQtVersion::clone() const { return new WinRtQtVersion(*this); diff --git a/src/plugins/winrt/winrtqtversion.h b/src/plugins/winrt/winrtqtversion.h index d45b1b7504..6d272d097a 100644 --- a/src/plugins/winrt/winrtqtversion.h +++ b/src/plugins/winrt/winrtqtversion.h @@ -35,7 +35,6 @@ class WinRtQtVersion : public QtSupport::BaseQtVersion Q_DECLARE_TR_FUNCTIONS(WinRt::Internal::WinRtQtVersion) public: WinRtQtVersion() = default; - explicit WinRtQtVersion(const Utils::FileName &path); BaseQtVersion *clone() const override; QString type() const override; diff --git a/src/plugins/winrt/winrtqtversionfactory.cpp b/src/plugins/winrt/winrtqtversionfactory.cpp index f25a73c102..38ebe45ba8 100644 --- a/src/plugins/winrt/winrtqtversionfactory.cpp +++ b/src/plugins/winrt/winrtqtversionfactory.cpp @@ -40,12 +40,11 @@ WinRtQtVersionFactory::WinRtQtVersionFactory() setPriority(10); } -QtSupport::BaseQtVersion *WinRtQtVersionFactory::create(const Utils::FileName &qmakePath, - ProFileEvaluator *evaluator) +QtSupport::BaseQtVersion *WinRtQtVersionFactory::create(ProFileEvaluator *evaluator) { foreach (const QString &value, evaluator->values(QLatin1String("QMAKE_PLATFORM"))) { if (value == QStringLiteral("winrt")) - return new WinRtQtVersion(qmakePath); + return new WinRtQtVersion; } return nullptr; @@ -60,12 +59,11 @@ WinRtPhoneQtVersionFactory::WinRtPhoneQtVersionFactory() setPriority(10); } -QtSupport::BaseQtVersion *WinRtPhoneQtVersionFactory::create(const Utils::FileName &qmakePath, - ProFileEvaluator *evaluator) +QtSupport::BaseQtVersion *WinRtPhoneQtVersionFactory::create(ProFileEvaluator *evaluator) { foreach (const QString &value, evaluator->values(QLatin1String("QMAKE_PLATFORM"))) { if (value == QStringLiteral("winphone")) - return new WinRtPhoneQtVersion(qmakePath); + return new WinRtPhoneQtVersion; } return nullptr; diff --git a/src/plugins/winrt/winrtqtversionfactory.h b/src/plugins/winrt/winrtqtversionfactory.h index 249b3ee8c1..1b778ff003 100644 --- a/src/plugins/winrt/winrtqtversionfactory.h +++ b/src/plugins/winrt/winrtqtversionfactory.h @@ -35,8 +35,7 @@ class WinRtQtVersionFactory : public QtSupport::QtVersionFactory public: WinRtQtVersionFactory(); - QtSupport::BaseQtVersion *create(const Utils::FileName &qmakePath, - ProFileEvaluator *evaluator) override; + QtSupport::BaseQtVersion *create(ProFileEvaluator *evaluator) override; }; class WinRtPhoneQtVersionFactory : public QtSupport::QtVersionFactory @@ -44,8 +43,7 @@ class WinRtPhoneQtVersionFactory : public QtSupport::QtVersionFactory public: WinRtPhoneQtVersionFactory(); - QtSupport::BaseQtVersion *create(const Utils::FileName &qmakePath, - ProFileEvaluator *evaluator) override; + QtSupport::BaseQtVersion *create(ProFileEvaluator *evaluator) override; }; } // Internal |