| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
| |
we expect a related result type.
rdar://12493140
llvm-svn: 177378
|
| |
|
|
|
|
|
| |
Thanks to Richard S. for pointing out that the warning would show up
with -Weverything.
llvm-svn: 177218
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This created 2 issues:
1) Performance issue, since typo-correction with PCH/modules is rather expensive.
2) Correctness issue, since if it managed to "correct" 'super' then bogus compiler errors would
be emitted, like this:
3.m:8:3: error: unknown type name 'super'; did you mean 'super1'?
super.x = 0;
^~~~~
super1
t3.m:5:13: note: 'super1' declared here
typedef int super1;
^
t3.m:8:8: error: expected identifier or '('
super.x = 0;
^
llvm-svn: 177126
|
| |
|
|
|
|
|
|
| |
for existence of user setter before
issuing the warning about non-synthesizable
property. // rdar://13388503
llvm-svn: 176906
|
| |
|
|
|
|
|
|
|
|
| |
when property autosynthesis does not synthesize a property.
When property is declared 'readonly' in a super class and
is redeclared 'readwrite' in a subclass. When a property
autosynthesis causes it to share 'ivar' with another property.
// rdar://13388503
llvm-svn: 176889
|
| |
|
|
| |
llvm-svn: 176870
|
| |
|
|
|
|
|
| |
looked up the current class's super class.
// rdar://13349296
llvm-svn: 176832
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
so that it looks through certain syntactic forms and applies
even if normal inference would have succeeded.
There is potential for source incompatibility from this
change, but overall we feel that it produces a much
cleaner and more defensible result, and the block
compatibility rules should curb a lot of the potential
for annoyance.
rdar://13200889
llvm-svn: 176743
|
| |
|
|
|
|
| |
Objective-C object type <rdar://problem/13338107>.
llvm-svn: 176665
|
| |
|
|
|
|
|
| |
using object subscripting without declaring objectForKeyedSubscript:
// rdar://13333205
llvm-svn: 176539
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
whether we already have a method. Fixes a bug where we were
failing to properly contextually convert a message receiver
during template instantiation.
As a side-effect, we now actually perform correct method lookup
after adjusting a message-send to integral or non-ObjC pointer
types (legal outside of ARC).
rdar://13305374
llvm-svn: 176339
|
| |
|
|
|
|
|
|
|
|
|
| |
of block declarators. Document the rule we use.
Also document the rule that Doug implemented a few weeks ago
which drops ownership qualifiers on function result types.
rdar://10127067
llvm-svn: 176336
|
| |
|
|
|
|
| |
// rdar://13158394
llvm-svn: 176308
|
| |
|
|
|
|
|
|
| |
use of stand-alone protocol as type and uses
id<proto>. Modify warning to say what compiler
is doing. // rdar//13158394
llvm-svn: 176303
|
| |
|
|
|
|
|
|
|
| |
ignore invalid declarations.
This reduces the "ambiguous reference" errors (which are rather strange in C/ObjC) and fixes an assertion hit
with an invalid code test case.
llvm-svn: 175869
|
| |
|
|
| |
llvm-svn: 175453
|
| |
|
|
|
|
|
|
| |
while trying to do error recovery.
rdar://13207886
llvm-svn: 175282
|
| |
|
|
|
|
|
| |
cast<ObjCObjectPointerType> doesn't look through sugar, getAs does.
Fixes PR15257.
llvm-svn: 175272
|
| |
|
|
|
|
|
|
| |
a property, the -Wdirect-ivar-access should not warn when
accessing the property's synthesized instance variable.
// rdar://13142820
llvm-svn: 175195
|
| |
|
|
|
|
| |
expression.
llvm-svn: 174930
|
| |
|
|
|
|
|
|
| |
the "nonatomic" attribute in property redeclaration
in class extension. Also, improved on diagnostics in
this area while at it. // rdar://13156292
llvm-svn: 174821
|
| |
|
|
|
|
|
|
|
|
| |
property.
There's no need to refer to the @implementation at all.
Fixes <rdar://problem/13186515>
llvm-svn: 174802
|
| |
|
|
|
|
|
|
| |
"auto-synthesized may not work correctly with 'nib' loader"
when 'readonly' property is redeclared 'readwrite' in class
extension. // rdar://13123861
llvm-svn: 174775
|
| |
|
|
|
|
| |
error. Jordan is right.
llvm-svn: 173713
|
| |
|
|
|
|
| |
<rdar://problem/13098104>.
llvm-svn: 173708
|
| |
|
|
|
|
|
| |
an unimplemented selector is consumed by
"respondsToSelector:". // rdar://12938616
llvm-svn: 173179
|
| |
|
|
|
|
|
| |
an unimplemented selector is consumed by
"respondsToSelector:". // rdar://12938616
llvm-svn: 173097
|
| |
|
|
|
|
|
| |
decay the parameter type immediately; let CheckParameter() do its
job. Fixes <rdar://problem/12071218>.
llvm-svn: 172780
|
| |
|
|
|
|
|
|
| |
return type of a function by canonicalizing them away. They are
useless anyway, and conflict with our rules for template argument
deduction and __strong. Fixes <rdar://problem/12367446>.
llvm-svn: 172768
|
| |
|
|
|
|
|
| |
but not vice-versa. Fix bug introduced in r172567 and noticed by
Jordan, thanks!
llvm-svn: 172586
|
| |
|
|
|
|
|
|
| |
overriding and overridden method, allow the overridden method to have
a narrower contract (introduced earlier, deprecated/obsoleted later)
than the overriding method. Fixes <rdar://problem/12992023>.
llvm-svn: 172567
|
| |
|
|
|
|
|
| |
attribute when determining whether we need to see an implementation of
a property. Fixes <rdar://problem/12958191>.
llvm-svn: 171877
|
| |
|
|
|
|
|
| |
list of classes, etc., make sure to look into protocol
definitions. // rdar://12958878
llvm-svn: 171777
|
| |
|
|
|
|
|
| |
to match those foung in objc.h an avoid spurious warnings.
// rdar://12489098
llvm-svn: 171492
|
| |
|
|
| |
llvm-svn: 171440
|
| |
|
|
| |
llvm-svn: 171045
|
| |
|
|
|
|
|
|
|
|
| |
Along the way, fix a bug in CheckLiteralKind(), previously in diagnoseObjCLiteralComparison, where we didn't ignore parentheses
in boxed expressions for purpose of classification.
In other words, both @42 and @(42) should be classified as numeric
literals.
llvm-svn: 170931
|
| |
|
|
|
|
|
|
|
|
| |
weak reference.
Thanks to Jordan Rose and John McCall for their sage code review.
Fixes <rdar://problem/12569201>.
llvm-svn: 170864
|
| |
|
|
|
|
|
|
| |
literal."
Per code feedback, I want to see if there is a more general way to do this.
llvm-svn: 170777
|
| |
|
|
|
|
|
|
|
| |
Such variables may immediately become nil or may have unpredictable
behavior.
Fixes <rdar://problem/12569201>.
llvm-svn: 170763
|
| |
|
|
|
|
|
| |
category, when those properties will be implemented in category's
primary class or one of its super classes. // rdar://12568064
llvm-svn: 170573
|
| |
|
|
|
|
|
|
| |
(This change only affects ObjC.)
<rdar://problem/12857117>.
llvm-svn: 170402
|
| |
|
|
|
|
| |
to (SEL). Fixes // rdar://12859590
llvm-svn: 170058
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
implementation
has inconsistent ownership with the backing ivar, point the error location to the
ivar.
Pointing to the ivar (instead of the @synthesize) is better since this is where a fix is needed.
Also provide the location of @synthesize via a note.
This also fixes the problem where an auto-synthesized property would emit an error without
any location.
llvm-svn: 170039
|
| |
|
|
|
|
| |
unavailable due to availability attributes. <rdar://problem/12798237>
llvm-svn: 169903
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
For most cases where a conversion specifier doesn't match an argument,
we usually guess that the conversion specifier is wrong. However, if
the argument is an integer type and the specifier is %C, it's likely
the user really did mean to print the integer as a character.
(This is more common than %c because there is no way to specify a unichar
literal -- you have to write an integer literal, such as '0x2603',
and then cast it to unichar.)
This does not change the behavior of %S, since there are fewer cases
where printing a literal Unicode *string* is necessary, but this could
easily be changed in the future.
<rdar://problem/11982013>
llvm-svn: 169400
|
| |
|
|
| |
llvm-svn: 168851
|
| |
|
|
|
|
|
| |
of a deprecated method in original class (or category), only
in overrides. // rdar://12717705
llvm-svn: 168270
|
| |
|
|
|
|
|
|
|
| |
This warning was failing to fire under ARC because of the implicit
lifetime casts added around the object literal expression.
<rdar://problem/11300873>, again.
llvm-svn: 167648
|
| |
|
|
| |
llvm-svn: 167301
|