| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
| |
scope) fails to handle overloaded selectors properly.
Long standing bug in Sema::ActOnInstanceMessage(). We now warn when messaging an "id" with multiple method signatures in scope. The diags are a little verbose, however they can be streamlined if necessary.
llvm-svn: 56843
|
| |
|
|
|
|
|
|
| |
mismatched properties.
Needed to make sure the relaxed type checking only applies to "readonly" properties.
llvm-svn: 56838
|
| |
|
|
| |
llvm-svn: 56821
|
| |
|
|
|
|
| |
setter.
llvm-svn: 56785
|
| |
|
|
|
|
| |
effectively declare it for methods below.
llvm-svn: 56771
|
| |
|
|
| |
llvm-svn: 56642
|
| |
|
|
| |
llvm-svn: 56640
|
| |
|
|
|
|
|
|
|
|
| |
- readonly and readwrite are mutually exclusive.
- assign, copy, and retain are mutually exclusive.
- copy and retain are invalid on non-object types.
- Warn about using default 'assign' property on object types
(attempting to follow gcc behavior).
llvm-svn: 56507
|
| |
|
|
|
|
| |
which are inherited from base clases or protocols.
llvm-svn: 55790
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- It is not clear that this is the right approach, but this is at
least consistent with how interfaces are handled.
- This means NeXT now emits the correct metadata for properties in
protocols.
- This currently introduces a spurious warning involving inherited
properties in protocols or categories; however, it also fixes some
situations where we were failing to emit a warning. I will scrub
this code tomorrow and fix this issue as well as number of other
missed warnings / error situations that appear to exist.
llvm-svn: 55407
|
| |
|
|
|
|
|
|
|
|
| |
- Add ObjCMethodDecl::createImplicitParams.
- Remove ObjCMethodDecl::set{Self,Cmd}Decl
- Remove Sema::CreateImplicitParameter
No (intended) functionality change.
llvm-svn: 55356
|
| |
|
|
|
|
|
|
|
| |
- Change enum name to Kind.
- Change enum constants to English strings.
Also, fix getPropertyImplementation (which probably should be renamed)
llvm-svn: 55354
|
| |
|
|
|
|
|
| |
- Drop MethodAttrs parameter to ObjCMethodDecl
- Call ProcessDeclAttributeList for interface & method decls.
llvm-svn: 55068
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
start location.
The following case resulted in an invalid start location:
// start location not being set for ObjCProtocolDecl AST (when a forward reference is in scope).
@protocol Buggy;
@protocol Buggy
@optional
- whatever;
@end
llvm-svn: 54740
|
| |
|
|
|
|
|
|
|
|
|
| |
- Kill unnecessary #includes in .cpp files. This is an automatic
sweep so some things removed are actually used, but happen to be
included by a previous header. I tried to get rid of the obvious
examples and this was the easiest way to trim the #includes in one
fell swoop.
- We now return to regularly scheduled development.
llvm-svn: 54632
|
| |
|
|
|
|
|
| |
- Drop TokenKinds.h from Action.h
- Move DeclSpec.h from Sema.h into individual Sema .cpp files
llvm-svn: 54625
|
| |
|
|
| |
llvm-svn: 54114
|
| |
|
|
|
|
| |
ASTContext::getCanonicalType instead (PR2189)
llvm-svn: 54105
|
| |
|
|
| |
llvm-svn: 54101
|
| |
|
|
|
|
| |
last client of the old ParseObjCProtocolReferences, so it also removes it.
llvm-svn: 54094
|
| |
|
|
| |
llvm-svn: 54093
|
| |
|
|
|
|
|
| |
This temporarily duplicates ParseObjCProtocolReferences, but it
will be removed in the future.
llvm-svn: 54092
|
| |
|
|
| |
llvm-svn: 54091
|
| |
|
|
| |
llvm-svn: 54090
|
| |
|
|
| |
llvm-svn: 54032
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
of a specific smallvector size.
Fix protocol lists to pass down proper location info, so we get diagnostics
like this:
t.m:3:35: error: cannot find protocol definition for 'NSCopying', referenced by 'NSWhatever'
@interface NSWhatever : NSObject <NSCopying>
^
instead of this:
t.m:3:44: error: cannot find protocol definition for 'NSCopying', referenced by 'NSWhatever'
@interface NSWhatever : NSObject <NSCopying>
^
Add a new IdentifierLocPair typedef which is just a pair<IdentifierInfo*, SourceLocation>
llvm-svn: 53883
|
| |
|
|
|
|
| |
simplifying code along the way and fixing a problem and memory leak or two.
llvm-svn: 53876
|
| |
|
|
| |
llvm-svn: 53864
|
| |
|
|
|
|
| |
References to forward definitions should be warnings.
llvm-svn: 53863
|
| |
|
|
|
|
|
| |
various objc lists over to it. First up, the protocol list
on ObjCInterfaceDecl.
llvm-svn: 53856
|
| |
|
|
|
|
| |
be consistent with ObjCInterfaceDecl.
llvm-svn: 53852
|
| |
|
|
| |
llvm-svn: 53849
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the standard "set these as the list of protocols" interface instead of a
strange "set this as the size and then set each one to the value" interface.
The problem with the later is that it a) is completely different from
everything else, b) is awkward, and c) doesn't handle the case when a
referenced protocol is invalid: it set it to null.
This meant that all clients downstream would have to handle null protocols
in the protocol list, and empirically they didn't. Fix this by not setting
invalid protocols in the referenced protocol list, fixing the crash on
test/Sema/objc-interface-1.m
While I'm at it, clean up some locations so that we produce:
t.m:1:25: error: cannot find interface declaration for 'NSObject', superclass of 'NSWhatever'
@interface NSWhatever : NSObject <NSCopying>
~~~~~~~~~~~~~~~~~~~~~ ^
instead of:
t.m:1:1: error: cannot find interface declaration for 'NSObject', superclass of 'NSWhatever'
@interface NSWhatever : NSObject <NSCopying>
^
llvm-svn: 53846
|
| |
|
|
| |
llvm-svn: 53141
|
| |
|
|
|
|
| |
and getCurMethodDecl() that return the appropriate Decl through CurContext.
llvm-svn: 52852
|
| |
|
|
|
|
| |
instead of CurFunctionDecl.
llvm-svn: 52719
|
| |
|
|
|
|
| |
Patch by David Chisnall!
llvm-svn: 52422
|
| |
|
|
|
|
| |
redefinition of 'XCElementToggler' as different kind of symbol
llvm-svn: 52024
|
| |
|
|
| |
llvm-svn: 52006
|
| |
|
|
|
|
|
|
|
| |
'void', expected 'int'.
- Changed Sema::ObjCActOnStartOfMethodDef() to more accurately type "self" in factory methods.
- Changed Sema::ActOnInstanceMessage() to use the new type to restrict the lookup.
llvm-svn: 52005
|
| |
|
|
| |
llvm-svn: 51976
|
| |
|
|
|
|
|
|
| |
decl spec).
Also added a FIXME related to how we represent @properties in the ObjCInterfaceDecl AST.
llvm-svn: 51450
|
| |
|
|
|
|
|
| |
an implementation. This fixes couple of failing prperty tests
caused by my previous patch.
llvm-svn: 50830
|
| |
|
|
|
|
|
| |
properties. Couple of property tests will fail with this patch.
Will fix them next.
llvm-svn: 50818
|
| |
|
|
|
|
|
| |
(was IdentifierInfo * before). This will make method declartations whole
lot easier.
llvm-svn: 50747
|
| |
|
|
|
|
| |
properties declared in the protocol.
llvm-svn: 50662
|
| |
|
|
|
|
|
| |
protocols into class's property list and performing semantics
on them for while doing so.
llvm-svn: 50587
|
| |
|
|
| |
llvm-svn: 50532
|
| |
|
|
| |
llvm-svn: 50508
|
| |
|
|
| |
llvm-svn: 50320
|