File indexing completed on 2024-04-28 05:38:35
0001 /* 0002 SPDX-FileCopyrightText: 2015 Klarälvdalens Datakonsult AB a KDAB Group company info@kdab.com 0003 SPDX-FileContributor: Sérgio Martins <sergio.martins@kdab.com> 0004 0005 SPDX-FileCopyrightText: 2015 Sergio Martins <smartins@kde.org> 0006 0007 SPDX-License-Identifier: LGPL-2.0-or-later 0008 */ 0009 0010 #ifndef DETACHING_BASE_H 0011 #define DETACHING_BASE_H 0012 0013 #include "checkbase.h" 0014 0015 #include <string> 0016 0017 class ClazyContext; 0018 0019 namespace clang 0020 { 0021 class CXXMethodDecl; 0022 } 0023 0024 /** 0025 * Base class for checks that look for detachments. 0026 */ 0027 class DetachingBase : public CheckBase 0028 { 0029 public: 0030 explicit DetachingBase(const std::string &name, ClazyContext *context, Options = Option_None); 0031 0032 protected: 0033 enum DetachingMethodType { DetachingMethod, DetachingMethodWithConstCounterPart }; 0034 0035 bool isDetachingMethod(clang::CXXMethodDecl *, DetachingMethodType = DetachingMethod) const; 0036 }; 0037 0038 #endif