blob: 54860312e3b5b182c7ceaefb8453b1014793387a [file] [log] [blame]
Alexander Kornienko11d4d642015-09-10 10:07:11 +00001//===- InconsistentDeclarationParameterNameCheck.h - clang-tidy-*- C++ -*-===//
2//
3// The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
10#ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_READABILITY_INCONSISTENT_DECLARATION_PARAMETER_NAME_H
11#define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_READABILITY_INCONSISTENT_DECLARATION_PARAMETER_NAME_H
12
13#include "../ClangTidy.h"
14
15#include "llvm/ADT/DenseSet.h"
16
17namespace clang {
18namespace tidy {
19namespace readability {
20
21/// \brief Checks for declarations of functions which differ in parameter names.
22///
23/// For detailed documentation see:
24/// http://clang.llvm.org/extra/clang-tidy/checks/readability-inconsistent-declaration-parameter-name.html
25///
26class InconsistentDeclarationParameterNameCheck : public ClangTidyCheck {
27public:
28 InconsistentDeclarationParameterNameCheck(StringRef Name,
29 ClangTidyContext *Context)
30 : ClangTidyCheck(Name, Context) {}
31
32 void registerMatchers(ast_matchers::MatchFinder *Finder) override;
33 void check(const ast_matchers::MatchFinder::MatchResult &Result) override;
34
35private:
36 void markRedeclarationsAsVisited(const FunctionDecl *FunctionDeclaration);
37
38 llvm::DenseSet<const FunctionDecl *> VisitedDeclarations;
39};
40
41} // namespace readability
42} // namespace tidy
43} // namespace clang
44
45#endif // LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_READABILITY_INCONSISTENT_DECLARATION_PARAMETER_NAME_H