mirror of
https://github.com/Kitware/CMake.git
synced 2026-05-06 22:30:07 -05:00
clang-tidy module: add check for string concatenation
Co-Authored-by: Kyle Edwards <kyle.edwards@kitware.com>
This commit is contained in:
committed by
Kyle Edwards
parent
2d373b64ea
commit
e1ec052d53
@@ -0,0 +1,34 @@
|
||||
/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
||||
file Copyright.txt or https://cmake.org/licensing for details. */
|
||||
#pragma once
|
||||
|
||||
#include <clang-tidy/ClangTidyCheck.h>
|
||||
#include <clang/ASTMatchers/ASTMatchFinder.h>
|
||||
|
||||
namespace clang {
|
||||
namespace tidy {
|
||||
namespace cmake {
|
||||
class StringConcatenationUseCmstrcatCheck : public ClangTidyCheck
|
||||
{
|
||||
public:
|
||||
StringConcatenationUseCmstrcatCheck(StringRef Name,
|
||||
ClangTidyContext* Context);
|
||||
void registerMatchers(ast_matchers::MatchFinder* Finder) override;
|
||||
void check(const ast_matchers::MatchFinder::MatchResult& Result) override;
|
||||
|
||||
private:
|
||||
enum class OperatorType
|
||||
{
|
||||
Plus,
|
||||
PlusEquals
|
||||
};
|
||||
typedef std::pair<OperatorType, std::vector<const CXXOperatorCallExpr*>>
|
||||
ExprChain;
|
||||
std::map<const CXXOperatorCallExpr*, ExprChain> InProgressExprChains;
|
||||
|
||||
void issueCorrection(const ExprChain& ExprChain,
|
||||
const ast_matchers::MatchFinder::MatchResult& Result);
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user