Path: blob/master/Utilities/ClangTidyModule/StringConcatenationUseCmstrcatCheck.h
3148 views
/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying1file LICENSE.rst or https://cmake.org/licensing for details. */2#pragma once34#include <clang-tidy/ClangTidyCheck.h>5#include <clang/ASTMatchers/ASTMatchFinder.h>67namespace clang {8namespace tidy {9namespace cmake {10class StringConcatenationUseCmstrcatCheck : public ClangTidyCheck11{12public:13StringConcatenationUseCmstrcatCheck(StringRef Name,14ClangTidyContext* Context);15void registerMatchers(ast_matchers::MatchFinder* Finder) override;16void check(ast_matchers::MatchFinder::MatchResult const& Result) override;1718private:19enum class OperatorType20{21Plus,22PlusEquals23};24typedef std::pair<OperatorType, std::vector<CXXOperatorCallExpr const*>>25ExprChain;26std::map<CXXOperatorCallExpr const*, ExprChain> InProgressExprChains;2728void issueCorrection(ExprChain const& ExprChain,29ast_matchers::MatchFinder::MatchResult const& Result);30};31}32}33}343536