diff options
author | Yan Zhang <ynzhang@google.com> | 2017-11-30 19:05:08 +0000 |
---|---|---|
committer | Yan Zhang <ynzhang@google.com> | 2017-11-30 19:05:08 +0000 |
commit | 8c348b33385e5d1c39d2b8e0af956d889bac65a1 (patch) | |
tree | e7b6275529612c69038bb4b1a12e05249254df69 /clang-tools-extra/clang-tidy/objc/ObjCTidyModule.cpp | |
parent | 59e3d198136da55656c67d67aa0d0d3695054373 (diff) | |
download | llvm-8c348b33385e5d1c39d2b8e0af956d889bac65a1.zip llvm-8c348b33385e5d1c39d2b8e0af956d889bac65a1.tar.gz llvm-8c348b33385e5d1c39d2b8e0af956d889bac65a1.tar.bz2 |
add new check to find NSError init invocation
Summary:
This check will find out improper initialization of NSError objects.
According to Apple developer document, we should always use factory method errorWithDomain:code:userInfo: to create new NSError objects instead of [NSError alloc] init]. Otherwise it will lead to a warning message during runtime in Xcode.
The corresponding information about NSError creation: https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/ErrorHandlingCocoa/CreateCustomizeNSError/CreateCustomizeNSError.html
Reviewers: hokein, benhamilton
Reviewed By: benhamilton
Subscribers: klimek, mgorny, cfe-commits
Differential Revision: https://reviews.llvm.org/D40528
llvm-svn: 319459
Diffstat (limited to 'clang-tools-extra/clang-tidy/objc/ObjCTidyModule.cpp')
-rw-r--r-- | clang-tools-extra/clang-tidy/objc/ObjCTidyModule.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/clang-tools-extra/clang-tidy/objc/ObjCTidyModule.cpp b/clang-tools-extra/clang-tidy/objc/ObjCTidyModule.cpp index 674da34..19152c2 100644 --- a/clang-tools-extra/clang-tidy/objc/ObjCTidyModule.cpp +++ b/clang-tools-extra/clang-tidy/objc/ObjCTidyModule.cpp @@ -10,6 +10,7 @@ #include "../ClangTidy.h" #include "../ClangTidyModule.h" #include "../ClangTidyModuleRegistry.h" +#include "AvoidNSErrorInitCheck.h" #include "AvoidSpinlockCheck.h" #include "ForbiddenSubclassingCheck.h" #include "PropertyDeclarationCheck.h" @@ -23,6 +24,8 @@ namespace objc { class ObjCModule : public ClangTidyModule { public: void addCheckFactories(ClangTidyCheckFactories &CheckFactories) override { + CheckFactories.registerCheck<AvoidNSErrorInitCheck>( + "objc-avoid-nserror-init"); CheckFactories.registerCheck<AvoidSpinlockCheck>( "objc-avoid-spinlock"); CheckFactories.registerCheck<ForbiddenSubclassingCheck>( |