diff options
author | Ted Kremenek <kremenek@apple.com> | 2013-11-23 01:01:34 +0000 |
---|---|---|
committer | Ted Kremenek <kremenek@apple.com> | 2013-11-23 01:01:34 +0000 |
commit | 28eace65c09a51e24fb5651ee035e2c6c102da69 (patch) | |
tree | ab5a24003861c9eae641764eb089cff1647059d6 /lldb/scripts/Python | |
parent | 0078150c43f91c82cf43c8e65f6715b984e1a80f (diff) | |
download | llvm-28eace65c09a51e24fb5651ee035e2c6c102da69.zip llvm-28eace65c09a51e24fb5651ee035e2c6c102da69.tar.gz llvm-28eace65c09a51e24fb5651ee035e2c6c102da69.tar.bz2 |
Add back experimental attribute objc_suppress_protocol_methods (slightly renamed).
This is still an experimental attribute, but I wanted it in tree
for review. It may still get yanked.
This attribute can only be applied to a class @interface, not
a class extension or category. It does not change the type
system rules for Objective-C, but rather the implementation checking
for Objective-C classes that explicitly conform to a protocol.
During protocol conformance checking, clang recursively searches
up the class hierarchy for the set of methods that compose
a protocol. This attribute will cause the compiler to not consider
the methods contributed by a super class, its categories, and those
from its ancestor classes. Thus this attribute is used to force
subclasses to redeclare (and hopefully re-implement) methods if
they decide to explicitly conform to a protocol where some of those
methods may be provided by a super class.
This attribute intentionally leaves out properties, which are associated
with state. This attribute only considers methods (at least right now)
that are non-property accessors. These represent methods that "do something"
as dictated by the protocol. This may be further refined, and this
should be considered a WIP until documentation gets written or this
gets removed.
llvm-svn: 195533
Diffstat (limited to 'lldb/scripts/Python')
0 files changed, 0 insertions, 0 deletions