Fariborz Jahanian
bdb1b0d6cb
Implement new default property synthesis rules. Essentially, no longer
...
user directive is needed to force a property implementation.
It is decided based on those propeties which are declared in
the class (or in its protocols) but not those which must be
default implemented by one of its super classes. Implements radar 7923851.
llvm-svn: 103787
2010-05-14 18:35:57 +00:00
Fariborz Jahanian
25491a22af
This patch deals with Sema Part of Setter/Getter synthesis
...
of properties which are of C++ objects. Code Gen to follow
(Radar 7468090).
llvm-svn: 103123
2010-05-05 21:52:17 +00:00
Fariborz Jahanian
58f11d6245
Do not issue warning on unimplemented property in the class, if it
...
conforms to a protocol as one of its super classes does. This is because
conforming super class will implement the property. This implements
new warning rules for unimplemented properties (radar 7884086).
llvm-svn: 102919
2010-05-03 15:49:20 +00:00
Fariborz Jahanian
9e1a3af030
Properties cannot be synthesized by-dafult in
...
categories. Issue usual warnings instead of
confusing error message. Radar 7920807
llvm-svn: 102645
2010-04-29 17:52:18 +00:00
Fariborz Jahanian
422cb21862
Improve on source location of diagnostic when default
...
property synthesis is using a super class ivar.
llvm-svn: 102011
2010-04-21 18:57:20 +00:00
Douglas Gregor
c4df407604
Keep track of the actual storage specifier written on a variable or
...
function declaration, since it may end up being changed (e.g.,
"extern" can become "static" if a prior declaration was static). Patch
by Enea Zaffanella and Paolo Bolzoni.
llvm-svn: 101826
2010-04-19 22:54:31 +00:00
Douglas Gregor
b2ccf010fb
Feed proper source-location information into Sema::LookupSingleResult,
...
in case it ends up doing something that might trigger diagnostics
(template instantiation, ambiguity reporting, access
reporting). Noticed while working on PR6831.
llvm-svn: 101412
2010-04-15 22:33:43 +00:00
Fariborz Jahanian
cdabb31d6f
Fixes a regression caused by implementing cstyle methods
...
for objc.
llvm-svn: 100865
2010-04-09 15:40:42 +00:00
Fariborz Jahanian
8409416db7
Minor clean up.
...
llvm-svn: 100583
2010-04-06 23:43:59 +00:00
Fariborz Jahanian
b2c1aac544
default access for synthesize ivar is @protect.
...
Fixes radar 7823675.
llvm-svn: 100582
2010-04-06 23:36:17 +00:00
Ted Kremenek
273c4f53ec
Use cast<> + OpaquePtr.getAs<Decl> to add extra checking of our assumptions.
...
llvm-svn: 100496
2010-04-05 23:45:09 +00:00
Ted Kremenek
b535782fc4
Fix possible null dereference by bailing out of CheckObjCPropertyAttributes() early if the Decl* is null.
...
llvm-svn: 100483
2010-04-05 22:39:42 +00:00
Daniel Dunbar
ab5d7aef72
Sema/Obj-C: Narrow type, and simplify.
...
llvm-svn: 100210
2010-04-02 19:44:54 +00:00
Fariborz Jahanian
df58603c26
Recognize __attribute__((NSObject)) directly applied
...
on retain properties. (radar 7809468).
llvm-svn: 99951
2010-03-30 22:40:11 +00:00
Ted Kremenek
5921b83f54
Improve diagnostic for @property/ivar type mismatch by including the types of the
...
ivar and @property respectively.
llvm-svn: 99312
2010-03-23 19:02:22 +00:00
Fariborz Jahanian
00c291b012
Set the relevent attributes declared in class extension
...
and fix a missing diagnostics on assigning to a read-only
property. Fixes radar 7766184.
llvm-svn: 99230
2010-03-22 23:25:52 +00:00
Ted Kremenek
1bc22f719f
Simplify code (and remove 'dyn_cast') by using ObjCProperyDecl::findPropertyDecl().
...
llvm-svn: 98794
2010-03-18 01:22:36 +00:00
Ted Kremenek
4fb821ec0d
Make 'findPropertyDecl()' a static method of ObjCPropertyDecl.
...
llvm-svn: 98570
2010-03-15 20:11:46 +00:00
Ted Kremenek
679708ee34
Correctly determine if the @property has been previously declared. If
...
a property has the same name as the ivar it wraps then the old logic
wouldn't find the previous property declaration.
llvm-svn: 98559
2010-03-15 18:47:25 +00:00
Ted Kremenek
959e830292
Split Sema::ActOnProperty() into two recursive functions to clearly separate
...
the handling of class extensions from other cases.
llvm-svn: 98326
2010-03-12 02:31:10 +00:00
Ted Kremenek
90e2fc2fb3
Fix 80 col violations.
...
llvm-svn: 98320
2010-03-12 00:49:00 +00:00
Ted Kremenek
ac597f3416
Move 'ActOn' methods to the beginning of the file
...
so we can clearly see the parser entry points.
llvm-svn: 98319
2010-03-12 00:46:40 +00:00
Ted Kremenek
7a7a0808b9
Split Sema logic for ObjC @property and @synthesize into
...
a separate file.
llvm-svn: 98317
2010-03-12 00:38:38 +00:00