|  | //===--- ObjCTidyModule.cpp - clang-tidy --------------------------------===// | 
|  | // | 
|  | // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. | 
|  | // See https://llvm.org/LICENSE.txt for license information. | 
|  | // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception | 
|  | // | 
|  | //===----------------------------------------------------------------------===// | 
|  |  | 
|  | #include "../ClangTidy.h" | 
|  | #include "../ClangTidyModule.h" | 
|  | #include "../ClangTidyModuleRegistry.h" | 
|  | #include "AssertEquals.h" | 
|  | #include "AvoidNSErrorInitCheck.h" | 
|  | #include "DeallocInCategoryCheck.h" | 
|  | #include "ForbiddenSubclassingCheck.h" | 
|  | #include "MissingHashCheck.h" | 
|  | #include "NSDateFormatterCheck.h" | 
|  | #include "NSInvocationArgumentLifetimeCheck.h" | 
|  | #include "PropertyDeclarationCheck.h" | 
|  | #include "SuperSelfCheck.h" | 
|  |  | 
|  | using namespace clang::ast_matchers; | 
|  |  | 
|  | namespace clang::tidy { | 
|  | namespace objc { | 
|  |  | 
|  | class ObjCModule : public ClangTidyModule { | 
|  | public: | 
|  | void addCheckFactories(ClangTidyCheckFactories &CheckFactories) override { | 
|  | CheckFactories.registerCheck<AvoidNSErrorInitCheck>( | 
|  | "objc-avoid-nserror-init"); | 
|  | CheckFactories.registerCheck<AssertEquals>("objc-assert-equals"); | 
|  |  | 
|  | CheckFactories.registerCheck<DeallocInCategoryCheck>( | 
|  | "objc-dealloc-in-category"); | 
|  | CheckFactories.registerCheck<ForbiddenSubclassingCheck>( | 
|  | "objc-forbidden-subclassing"); | 
|  | CheckFactories.registerCheck<MissingHashCheck>( | 
|  | "objc-missing-hash"); | 
|  | CheckFactories.registerCheck<NSDateFormatterCheck>("objc-nsdate-formatter"); | 
|  | CheckFactories.registerCheck<NSInvocationArgumentLifetimeCheck>( | 
|  | "objc-nsinvocation-argument-lifetime"); | 
|  | CheckFactories.registerCheck<PropertyDeclarationCheck>( | 
|  | "objc-property-declaration"); | 
|  | CheckFactories.registerCheck<SuperSelfCheck>( | 
|  | "objc-super-self"); | 
|  | } | 
|  | }; | 
|  |  | 
|  | // Register the ObjCTidyModule using this statically initialized variable. | 
|  | static ClangTidyModuleRegistry::Add<ObjCModule> X( | 
|  | "objc-module", | 
|  | "Adds Objective-C lint checks."); | 
|  |  | 
|  | } // namespace objc | 
|  |  | 
|  | // This anchor is used to force the linker to link in the generated object file | 
|  | // and thus register the ObjCModule. | 
|  | volatile int ObjCModuleAnchorSource = 0; | 
|  |  | 
|  | } // namespace clang::tidy |