1 //===--- ObjCTidyModule.cpp - clang-tidy --------------------------------===//
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
9 #include "../ClangTidy.h"
10 #include "../ClangTidyModule.h"
11 #include "../ClangTidyModuleRegistry.h"
12 #include "AssertEquals.h"
13 #include "AvoidNSErrorInitCheck.h"
14 #include "DeallocInCategoryCheck.h"
15 #include "ForbiddenSubclassingCheck.h"
16 #include "MissingHashCheck.h"
17 #include "NSDateFormatterCheck.h"
18 #include "NSInvocationArgumentLifetimeCheck.h"
19 #include "PropertyDeclarationCheck.h"
20 #include "SuperSelfCheck.h"
22 using namespace clang::ast_matchers
;
24 namespace clang::tidy
{
27 class ObjCModule
: public ClangTidyModule
{
29 void addCheckFactories(ClangTidyCheckFactories
&CheckFactories
) override
{
30 CheckFactories
.registerCheck
<AvoidNSErrorInitCheck
>(
31 "objc-avoid-nserror-init");
32 CheckFactories
.registerCheck
<AssertEquals
>("objc-assert-equals");
34 CheckFactories
.registerCheck
<DeallocInCategoryCheck
>(
35 "objc-dealloc-in-category");
36 CheckFactories
.registerCheck
<ForbiddenSubclassingCheck
>(
37 "objc-forbidden-subclassing");
38 CheckFactories
.registerCheck
<MissingHashCheck
>(
40 CheckFactories
.registerCheck
<NSDateFormatterCheck
>("objc-nsdate-formatter");
41 CheckFactories
.registerCheck
<NSInvocationArgumentLifetimeCheck
>(
42 "objc-nsinvocation-argument-lifetime");
43 CheckFactories
.registerCheck
<PropertyDeclarationCheck
>(
44 "objc-property-declaration");
45 CheckFactories
.registerCheck
<SuperSelfCheck
>(
50 // Register the ObjCTidyModule using this statically initialized variable.
51 static ClangTidyModuleRegistry::Add
<ObjCModule
> X(
53 "Adds Objective-C lint checks.");
57 // This anchor is used to force the linker to link in the generated object file
58 // and thus register the ObjCModule.
59 volatile int ObjCModuleAnchorSource
= 0;
61 } // namespace clang::tidy