llvm-project/clang-tools-extra/docs
Haojian Wu e010406e28 [clang-tidy ObjC] [3/3] New check objc-forbidden-subclassing
Summary:
This is part 3 of 3 of a series of changes to improve Objective-C
linting in clang-tidy.

This adds a new clang-tidy check `objc-forbidden-subclassing` which
ensures clients do not create subclasses of Objective-C classes which
are not designed to be subclassed.

(Note that for code under your control, you should use
__attribute__((objc_subclassing_restricted)) instead -- this
is intended for third-party APIs which cannot be modified.)

By default, the following classes (which are publicly documented
as not supporting subclassing) are forbidden from subclassing:

ABNewPersonViewController
ABPeoplePickerNavigationController
ABPersonViewController
ABUnknownPersonViewController
NSHashTable
NSMapTable
NSPointerArray
NSPointerFunctions
NSTimer
UIActionSheet
UIAlertView
UIImagePickerController
UITextInputMode
UIWebView

Clients can set a CheckOption
`objc-forbidden-subclassing.ClassNames` to a semicolon-separated
list of class names, which overrides this list.

Test Plan: `ninja check-clang-tools`

Patch by Ben Hamilton!

Reviewers: hokein, alexfh

Reviewed By: hokein

Subscribers: saidinwot, Wizard, srhines, mgorny, xazax.hun

Differential Revision: https://reviews.llvm.org/D39142

llvm-svn: 316744
2017-10-27 07:41:36 +00:00
..
clang-tidy [clang-tidy ObjC] [3/3] New check objc-forbidden-subclassing 2017-10-27 07:41:36 +00:00
CMakeLists.txt
Doxyfile
ModularizeUsage.rst
README.txt
ReleaseNotes.rst [clang-tidy ObjC] [3/3] New check objc-forbidden-subclassing 2017-10-27 07:41:36 +00:00
clang-modernize.rst
clang-rename.rst
clang-tidy.rst
clangd.rst [clangd] Cleanup ClangdUnit.cpp, update docs; NFC 2017-06-28 20:57:28 +00:00
conf.py Bump docs version to 6.0 2017-07-19 13:51:07 +00:00
cpp11-migrate.rst
doxygen-mainpage.dox
doxygen.cfg.in
include-fixer.rst
index.rst
make.bat
modularize.rst
pp-trace.rst

README.txt

-------------------------------------------------------------
Documentation for the tools of clang-tools-extra repo project
-------------------------------------------------------------

Sphinx and doxygen documentation is generated by executing make.

Sphinx html files can be generated separately using make html.

Doxygen html files can also be generated using make doxygen.

The generated documentation will be placed in _build/html.