summaryrefslogtreecommitdiffstats
path: root/clang/test/SemaObjC/attr-designated-init.m
Commit message (Collapse)AuthorAgeFilesLines
* [sema] Allow to opt-out of overriding the super class's designated ↵Argyrios Kyrtzidis2015-07-301-1/+11
| | | | | | | | initializers by marking the initializer as unavailable in the subclass. rdar://20281322 llvm-svn: 243676
* revert r231700 (designated initializer patch) which brokeFariborz Jahanian2015-03-111-41/+3
| | | | | | several projects. rdar://20120666. llvm-svn: 231939
* [PATCH Sema Objective-C]. Patch to warn on missing designated initializerFariborz Jahanian2015-03-091-3/+41
| | | | | | | override where at least a declaration of a designated initializer is in a super class and not necessarily in the current class. rdar://19653785. llvm-svn: 231700
* Fix crashes on missing @interface for categoryBen Langmuir2015-01-201-0/+8
| | | | | | | In a few places we didn't check that Category->getClassInterface() was not null before using it. llvm-svn: 226605
* Rename "secondary initializer" -> "convenience initializer" in the warnings, ↵Argyrios Kyrtzidis2014-05-061-7/+7
| | | | | | which is a more correct and consistent term. llvm-svn: 208142
* [SemaObjC] Fix ObjCInterfaceDecl::inheritsDesignatedInitializers(), if there ↵Argyrios Kyrtzidis2014-04-261-0/+22
| | | | | | | | | | are no designated initializers in the super class hierarchy then it should return false. rdar://16692535 llvm-svn: 207332
* [objc] -[NSObject init] is documented to not do anything, don't warn if ↵Argyrios Kyrtzidis2014-04-161-1/+21
| | | | | | | | subclasses do not call [super init] on their initializers. Part of rdar://16568441 llvm-svn: 206410
* [objc] Consider new initializers inside @implementation when determining if ↵Argyrios Kyrtzidis2014-04-161-7/+84
| | | | | | | | | | the class introduces new initializers. Part of rdar://16568441 llvm-svn: 206409
* [SemaObjC] For the semantics of the designated-initializer attribute, ↵Argyrios Kyrtzidis2014-03-281-3/+9
| | | | | | | | | | consider that the ObjC interface of the class includes its class extensions. This is follow-up for rdar://16305347 llvm-svn: 205065
* Objective-C. Consider blocks for designated initializerFariborz Jahanian2014-03-171-3/+26
| | | | | | | | warnings (warning or lack there of) as well since blocks are another pattern for envoking other designated initializers. // rdar://16323233 llvm-svn: 204081
* Objective-C. Turn off designated initialization warnings onFariborz Jahanian2014-03-141-1/+15
| | | | | | | | 'init' methods which are unavailable. Subclasses of NSObject have to implement such methods as a common pattern to prevent user's own implementation. // rdar://16305460 llvm-svn: 203966
* Objective-C. Allow objc_designated_initializer for private Fariborz Jahanian2014-03-141-8/+8
| | | | | | | initializers; but only those declared in class extensions (not in implementations). // rdar://16305347 llvm-svn: 203954
* Objective-C. Prevent an assertion crash due to buggy codeFariborz Jahanian2014-03-111-0/+10
| | | | | | as it can commonly happen. // rdar://16261494 llvm-svn: 203598
* [objc] Add a test to make sure that a class can add a secondary initializer ↵Argyrios Kyrtzidis2013-12-141-1/+20
| | | | | | | | via a category and still inherit the designated initializers of its super class. llvm-svn: 197301
* [objc] If we don't know for sure what the designated initializers of the ↵Argyrios Kyrtzidis2013-12-131-0/+16
| | | | | | | | | superclass are, assume that a [super init..] inside a designated initializer also refers to a designated one and do not warn. llvm-svn: 197202
* Add a SubsetSubject in Attr.td to automate checking of where the ↵Argyrios Kyrtzidis2013-12-071-8/+8
| | | | | | | | objc_designated_initializer attribute is acceptable. llvm-svn: 196644
* [objc] If an interface has no initializer marked as designated and ↵Argyrios Kyrtzidis2013-12-051-1/+27
| | | | | | | | | | | introduces at least one new initializer, don't assume that it inherits the designated initializers from the super class. If the assumption was wrong because a new initializer was a designated one that was not marked as such, we will emit misleading warnings for subclasses of the interface. llvm-svn: 196476
* [objc] Add a warning when a class that provides a designated initializer, ↵Argyrios Kyrtzidis2013-12-031-6/+8
| | | | | | | | does not override all of the designated initializers of its superclass. llvm-svn: 196319
* [objc] Emit warning when the implementation of a secondary initializer calls onArgyrios Kyrtzidis2013-12-031-3/+43
| | | | | | | | | | | super another initializer and when the implementation does not delegate to another initializer via a call on 'self'. A secondary initializer is an initializer method not marked as a designated initializer within a class that has at least one initializer marked as a designated initializer. llvm-svn: 196318
* [objc] Emit warnings when the implementation of a designated initializer ↵Argyrios Kyrtzidis2013-12-031-8/+17
| | | | | | | | calls on super an initializer that is not a designated one or any initializer on self. llvm-svn: 196317
* [objc] Emit a warning when the implementation of a designated initializer ↵Argyrios Kyrtzidis2013-12-031-0/+96
| | | | | | | | does not chain to an init method that is a designated initializer for the superclass. llvm-svn: 196316
* [objc] Introduce attribute 'objc_designated_initializer'.Argyrios Kyrtzidis2013-12-031-0/+32
It only applies to methods of init family in an interface declaration. llvm-svn: 196314
OpenPOWER on IntegriCloud