| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
| |
, such as list of forward @class decls, in a DeclGroup
node. Deal with its consequence throught clang. This
is in preparation for more Sema work ahead. // rdar://8843851.
Feel free to reverse if it breaks something important
and I am unavailable.
llvm-svn: 138709
|
|
|
|
|
|
|
| |
declated method in the class belongs to a synthesized
property getter/setter. // rdar://10014946
llvm-svn: 138598
|
|
|
|
|
|
| |
changes. // rdar://10015110
llvm-svn: 138594
|
|
|
|
| |
llvm-svn: 138584
|
|
|
|
| |
llvm-svn: 138571
|
|
|
|
|
|
| |
as in @class foo, bar. More cleanup to follow.
llvm-svn: 138567
|
|
|
|
|
|
| |
-dealloc is illegal in that mode.
llvm-svn: 138261
|
|
|
|
| |
llvm-svn: 138253
|
|
|
|
|
|
| |
This matches gcc's logic. Half of PR10661.
llvm-svn: 138240
|
|
|
|
|
|
| |
failures are resolved.
llvm-svn: 138234
|
|
|
|
| |
llvm-svn: 138049
|
|
|
|
|
|
|
|
|
|
| |
to modernity. Instead of passing down individual
context objects from parser to sema, establish decl
context in parser and have sema access current context
as needed. I still need to take of Doug's comment for
minor cleanups.
llvm-svn: 138040
|
|
|
|
|
|
|
|
| |
user-declared) as implicit.
This results in libclang ignoring such methods.
llvm-svn: 137852
|
|
|
|
|
|
|
|
|
| |
overridden methods to diagnose their type mismatch.
This is a general solution for previous fixes
for // rdar://6191214 and // rdar://9352731
and removes lots of duplicate code.
llvm-svn: 137222
|
|
|
|
|
|
|
|
|
| |
situation. When a class explicitly or implicitly (through inheritance)
"conformsTo" two protocols which conflict (have methods which conflict).
This patch fixes the previous patch where warnings were coming out in
non-deterministic order. This is 2nd part of // rdar://6191214.
llvm-svn: 137055
|
|
|
|
|
|
|
|
| |
implementations of +load do not replace the class definition in a meaningful
sense, they are run when the category loads, the +load method for class is run
when the class is loaded.
llvm-svn: 137053
|
|
|
|
| |
llvm-svn: 136998
|
|
|
|
|
|
|
|
| |
situation. When a class explicitly or implicitly (through inheritance)
"conformsTo" two protocols which conflict (have methods which conflict).
This is 2nd part of // rdar://6191214.
llvm-svn: 136927
|
|
|
|
| |
llvm-svn: 136841
|
|
|
|
|
|
| |
those declated in its protocols. First half or // rdar://6191214
llvm-svn: 136794
|
|
|
|
|
|
|
|
|
|
| |
masks an existing method in its primary class, class extensions,
and primary class's non-optional protocol methods; as primary
class, or one of its subclass's will implement this method.
This warning has potential of being noisy so it has its own
group. // rdar://7020493
llvm-svn: 136426
|
|
|
|
| |
llvm-svn: 136357
|
|
|
|
|
|
|
|
|
| |
declared in protocol in the class qualified by the
protocol have type conflicts. To reduce amount of
noise, this is done when class is implemented.
// rdar://9352731
llvm-svn: 135890
|
|
|
|
|
|
|
|
| |
LLVM.h imports
them into the clang namespace.
llvm-svn: 135852
|
|
|
|
|
|
| |
where it belongs.
llvm-svn: 135746
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
methods, including indirectly overridden methods like those
declared in protocols and categories. There are mismatches
that we would like to diagnose but aren't yet, but this
is fine for now.
I looked at approaches that avoided doing this lookup
unless we needed it, but the infer-related-result-type
checks were doing it anyway, so I left it with the same
fast-path check for no previous declartions of that
selector.
llvm-svn: 135743
|
|
|
|
|
|
|
|
|
| |
This was previously not-const only because it has to lazily construct a chain
of ivars the first time it is called (and after the chain is invalidated).
In practice, all the clients were just const_casting their const Decls;
all those now-unnecessary const_casts have been removed.
llvm-svn: 135741
|
|
|
|
|
|
| |
// rdar://9615045
llvm-svn: 135685
|
|
|
|
|
|
| |
a warning flag. // rdar://9615045
llvm-svn: 135681
|
|
|
|
| |
llvm-svn: 135328
|
|
|
|
|
|
| |
code so that they only occur in a single place. No functionality change.
llvm-svn: 134961
|
|
|
|
|
|
|
| |
passed to it, and unknown selectors causing potential leak.
// rdar://9659270
llvm-svn: 134449
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
vector<int>
to
std::vector<int>
Patch by Kaelyn Uhrain, with minor tweaks + PCH support from me. Fixes
PR5776/<rdar://problem/8652971>.
Thanks Kaelyn!
llvm-svn: 134007
|
|
|
|
|
|
|
|
| |
inside GetTypeForDeclarator.
No functionality change.
llvm-svn: 133985
|
|
|
|
|
|
| |
is not implemented. // rdar://9651605
llvm-svn: 133819
|
|
|
|
|
|
|
| |
diagnose it properly and don't throw clang into an
infinit loop. // rdar://9653341
llvm-svn: 133773
|
|
|
|
|
|
| |
complaining about mismatches in the global method pool.
llvm-svn: 133123
|
|
|
|
|
|
|
|
|
|
| |
Language-design credit goes to a lot of people, but I particularly want
to single out Blaine Garst and Patrick Beard for their contributions.
Compiler implementation credit goes to Argyrios, Doug, Fariborz, and myself,
in no particular order.
llvm-svn: 133103
|
|
|
|
|
|
| |
inference, to be used (only) by the Objective-C rewriter.
llvm-svn: 133025
|
|
|
|
|
|
| |
reason to allow the user to control these semantics through a flag.
llvm-svn: 132919
|
|
|
|
| |
llvm-svn: 132917
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Related result types apply Cocoa conventions to the type of message
sends and property accesses to Objective-C methods that are known to
always return objects whose type is the same as the type of the
receiving class (or a subclass thereof), such as +alloc and
-init. This tightens up static type safety for Objective-C, so that we
now diagnose mistakes like this:
t.m:4:10: warning: incompatible pointer types initializing 'NSSet *'
with an
expression of type 'NSArray *' [-Wincompatible-pointer-types]
NSSet *array = [[NSArray alloc] init];
^ ~~~~~~~~~~~~~~~~~~~~~~
/System/Library/Frameworks/Foundation.framework/Headers/NSObject.h:72:1:
note:
instance method 'init' is assumed to return an instance of its
receiver
type ('NSArray *')
- (id)init;
^
It also means that we get decent type inference when writing code in
Objective-C++0x:
auto array = [[NSMutableArray alloc] initWithObjects:@"one", @"two",nil];
// ^ now infers NSMutableArray* rather than id
llvm-svn: 132868
|
|
|
|
|
|
| |
'true' on detecting protocol cycles. No functionality change.
llvm-svn: 131297
|
|
|
|
|
|
|
|
| |
don't build circular AST in protocol's protocol list
when user code has introduced it. Indexer and other
clients may crash. // rdar://9221614
llvm-svn: 131254
|
|
|
|
|
|
|
| |
scope depth overlaps with the ObjCDeclQualifier, dropping
memory usage back to previous levels.
llvm-svn: 130671
|
|
|
|
|
|
| |
stop considering whether I can compress them. :)
llvm-svn: 130633
|
|
|
|
| |
llvm-svn: 130045
|
|
|
|
|
|
|
|
|
|
|
| |
ObjC NeXt runtime where method pointer registered in
metadata belongs to an unrelated method. Ast part of this fix,
I turned at @end missing warning (for class
implementations) into an error as we can never
be sure that meta-data being generated is correct.
// rdar://9072317
llvm-svn: 130019
|
|
|
|
| |
llvm-svn: 129567
|
|
|
|
|
|
| |
Luis Felipe Strano Moraes!
llvm-svn: 129559
|