File indexing completed on 2024-05-12 04:38:43
0001 /* 0002 SPDX-FileCopyrightText: 2012 Olivier de Gaalon <olivier.jg@gmail.com> 0003 0004 SPDX-License-Identifier: LGPL-2.0-only 0005 */ 0006 0007 #ifndef KDEVPLATFORM_DECLARATIONVALIDATOR_H 0008 #define KDEVPLATFORM_DECLARATIONVALIDATOR_H 0009 0010 #include <tests/testsexport.h> 0011 0012 #include "language/duchain/ducontext.h" 0013 0014 #include <QMap> 0015 #include <QVariant> 0016 0017 #include <functional> 0018 0019 namespace KDevelop { 0020 class DeclarationValidatorPrivate; 0021 0022 class KDEVPLATFORMTESTS_EXPORT DeclarationValidator 0023 : public DUChainVisitor 0024 { 0025 public: 0026 using TestDataEditor = std::function<void(QVariantMap& testData)>; 0027 explicit DeclarationValidator(TestDataEditor testDataAdjuster = nullptr); 0028 ~DeclarationValidator() override; 0029 0030 virtual bool testsPassed() const; 0031 void visit(DUContext*) override; 0032 void visit(Declaration* declaration) override; 0033 0034 private: 0035 Q_DISABLE_COPY(DeclarationValidator) 0036 const QScopedPointer<class DeclarationValidatorPrivate> d_ptr; 0037 Q_DECLARE_PRIVATE(DeclarationValidator) 0038 }; 0039 } 0040 #endif //KDEVPLATFORM_DECLARATIONVALIDATOR_H