| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
method is a qualified id which conforms to the matching type
of its method declaration.
llvm-svn: 71817
|
| |
|
|
|
|
|
| |
message dispatches (and function calls later). No change in
functionality.
llvm-svn: 71683
|
| |
|
|
|
|
|
| |
and we also want to tell which message is actually
being sent.
llvm-svn: 71296
|
| |
|
|
| |
llvm-svn: 71278
|
| |
|
|
|
|
|
| |
in a 'Class' receiver which is not a root instance
method.
llvm-svn: 70987
|
| |
|
|
|
|
| |
message send.
llvm-svn: 70373
|
| |
|
|
|
|
|
|
| |
pools, combined). The methods in the global method pool are lazily
loaded from an on-disk hash table when Sema looks into its version of
the hash tables.
llvm-svn: 69989
|
| |
|
|
|
|
|
|
|
|
|
| |
good for uniformity is good for PCH (or is it the other way around?).
As part of this, make ObjCImplDecl inherit from NamedDecl (since
ObjCImplementationDecls now need to have names so that they can be
found). This brings ObjCImplDecl very, very close to
ObjCContainerDecl; we may be able to merge them soon.
llvm-svn: 69941
|
| |
|
|
|
|
|
|
|
|
|
|
| |
their own namespace (IDNS_Protocol) and use the normal name-lookup
routines to find them. Aside from the simplification this provides
(one less DenseMap!), it means that protocols will be lazily
deserialized from PCH files.
Make the code size of the selector table block match the code size of
the type and decl blocks.
llvm-svn: 69939
|
| |
|
|
|
|
|
|
|
|
|
| |
methods, class methods, and property implementations) and instead
place all of these entities into the DeclContext.
This eliminates more linear walks when looking for class or instance
methods and should make PCH (de-)serialization of ObjCDecls trivial
(and lazy).
llvm-svn: 69849
|
| |
|
|
|
|
| |
Class and unqualified id's are.
llvm-svn: 68899
|
| |
|
|
|
|
| |
crashes codegen.
llvm-svn: 68891
|
| |
|
|
|
|
| |
No functionality change (really).
llvm-svn: 68726
|
| |
|
|
|
|
|
|
|
|
|
|
| |
with qualified id's. This change is motivated by our desire to not support the "Class<foo>" idiom. Note that the change makes perfect sense (since all ObjC classes are also id/instances).
This allow us to document a simple migration path...change "Class <foo>" to "id <foo>".
This effects:
- <rdar://problem/6761939> TASK: File source change radars for "qualified Class" errors
- <rdar://problem/6761864> Protocol qualified Class is unsupported
llvm-svn: 68517
|
| |
|
|
|
|
| |
This fixes <rdar://problem/6757102> clang type for @"xxx" is "NSConstantString *" (GCC type is "NSString *").
llvm-svn: 68514
|
| |
|
|
| |
llvm-svn: 67981
|
| |
|
|
| |
llvm-svn: 66551
|
| |
|
|
|
|
|
|
|
| |
a warning and then threw away the AST. While I'm in there, tighten up the
code to actually reject completely bogus cases (sending a message to a
struct). We still allow sending a message to an int, which doesn't make
sense but GCC allows it and is easy to support.
llvm-svn: 66468
|
| |
|
|
|
|
|
|
| |
aren't very pretty:-(
This fixes <rdar://problem/6496506> Implement class setter/getter for properties.
llvm-svn: 66465
|
| |
|
|
| |
llvm-svn: 66385
|
| |
|
|
|
|
| |
Patch by Jean-Daniel Dupas. Thanks!
llvm-svn: 66383
|
| |
|
|
| |
llvm-svn: 66099
|
| |
|
|
| |
llvm-svn: 66041
|
| |
|
|
|
|
|
| |
If all else failed, find the message in class's root's
list of instacne methods!
llvm-svn: 66040
|
| |
|
|
|
|
|
|
|
| |
sometimes different than gcc's.
- Disallow casting 'super'. GCC allows this, however it doesn't make sense (super isn't an expression and the cast won't alter lookup/dispatch).
- Tighten up lookup when messaging 'self'.
llvm-svn: 66033
|
| |
|
|
|
|
|
| |
is searched for in the global pool. It already uncovered
a clang bug in message selection.
llvm-svn: 65974
|
| |
|
|
|
|
|
|
| |
don't work.
Change Sema::DiagnosePropertyMismatch() to check for type compatibility (rather than type equivalence, which is too strict).
llvm-svn: 65949
|
| |
|
|
|
|
| |
Downgrade an error to a warning (for GCC compatibility).
llvm-svn: 65779
|
| |
|
|
|
|
| |
This was a fairly recent regression.
llvm-svn: 65547
|
| |
|
|
|
|
|
| |
The code for looking up local/private method in Sema::ActOnInstanceMessage() was not handling categories properly. Sema::ActOnClassMessage() didn't have this bug.
Created a helper with the correct logic and changed both methods to use it.
llvm-svn: 65532
|
| |
|
|
|
|
|
| |
The big difference here is that (like string literal) @encode has
array type, not pointer type.
llvm-svn: 65391
|
| |
|
|
|
|
|
| |
I don't think casting super makes any sense (since it won't effect method lookup).
Will discuss with other offline and decide what to do.
llvm-svn: 65317
|
| |
|
|
|
|
| |
messages to 'Class'. Also improve "super" handling.
llvm-svn: 65300
|
| |
|
|
| |
llvm-svn: 65293
|
| |
|
|
|
|
|
|
|
|
| |
<rdar://problem/6497631> Message lookup is sometimes different than gcc's).
- Implement instance/class overloading in ObjCContainerDecl (removing a FIXME). This involved hacking NamedDecl::declarationReplaces(), which took awhile to figure out (didn't realize replace was the default).
- Changed Sema::ActOnInstanceMessage() to remove redundant warnings when dealing with protocols. For now, I've omitted the "protocol" term in the diagnostic. It simplifies the code flow and wan't always 100% accurate (e.g. "Foo<Prot>" looks in the class interface, not just the protocol).
- Changed several test cases to jive with the above changes.
llvm-svn: 65292
|
| |
|
|
| |
llvm-svn: 65257
|
| |
|
|
|
|
| |
This is necessary 'plumbing' to fix <rdar://problem/6497631> Message lookup is sometimes different than gcc's.
llvm-svn: 65248
|
| |
|
|
|
|
| |
interfaces more consistently.
llvm-svn: 65138
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(as GCC does), except when we've performed overload resolution and
found an unavailable function: in this case, we actually error.
Merge the checking of unavailable functions with the checking for
deprecated functions. This unifies a bit of code, and makes sure that
we're checking for unavailable functions in the right places. Also,
this check can cause an error. We may, eventually, want an option to
make "unavailable" warnings into errors.
Implement much of the logic needed for C++0x deleted functions, which
are effectively the same as "unavailable" functions (but always cause
an error when referenced). However, we don't have the syntax to
specify deleted functions yet :)
llvm-svn: 64955
|
| |
|
|
|
|
| |
Sema::ParseObjCStringLiteral.
llvm-svn: 64900
|
| |
|
|
|
|
| |
stuff behind a private static function.
llvm-svn: 64898
|
| |
|
|
| |
llvm-svn: 64896
|
| |
|
|
|
|
| |
it faster in the common case when NSConstantString is around.
llvm-svn: 64895
|
| |
|
|
| |
llvm-svn: 64894
|
| |
|
|
|
|
|
|
| |
the various PPTokens that are pasted together to make it. In the course
of working on this, I discovered ParseObjCStringLiteral which needs some
work. I'll tackle it next.
llvm-svn: 64892
|
| |
|
|
|
|
|
|
|
| |
DiagnoseUseOfDeprecatedDecl method. This ensures that they
are treated consistently. This gets us 'unavailable' support
on a few new types of decls, and makes sure we consistently
silence deprecated when the caller is also deprecated.
llvm-svn: 64612
|
| |
|
|
|
|
| |
This implements gcc/testsuite/objc.dg/method-attribute-1.m
llvm-svn: 64581
|
| |
|
|
|
|
| |
gcc has.
llvm-svn: 64562
|
| |
|
|
|
|
| |
ActOnClassMessage/ActOnInstanceMessage.
llvm-svn: 64560
|
| |
|
|
|
|
|
|
| |
- rename isObjCIdType/isObjCClassType -> isObjCIdStructType/isObjCClassStructType. The previous name didn't do what you would expect.
- add back isObjCIdType/isObjCClassType to do what you would expect. Not currently used, however many of the isObjCIdStructType/isObjCClassStructType clients could be converted over time.
- move static Sema function areComparableObjCInterfaces to ASTContext (renamed to areComparableObjCPointerTypes, since it now operates on pointer types).
llvm-svn: 64385
|