| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 60888
|
|
|
|
|
|
| |
explicitly calling EnterScope/ExitScope
llvm-svn: 60830
|
|
|
|
|
|
| |
Hinnant. Makes for much nicer syntax when smart pointers are used consistently. Also, start converting internal argument passing of Parser to smart pointers.
llvm-svn: 60809
|
|
|
|
| |
llvm-svn: 60791
|
|
|
|
|
|
| |
variables.
llvm-svn: 60761
|
|
|
|
| |
llvm-svn: 60718
|
|
|
|
|
|
|
|
| |
Implemented anonymous category (also know as continuation class)
used to override main class's property attribute. This is work in
propgress.
llvm-svn: 60114
|
|
|
|
|
|
| |
AST nodes in the parser in most cases, even on error.
llvm-svn: 60057
|
|
|
|
| |
llvm-svn: 59716
|
|
|
|
|
|
|
| |
from Sebastian to enforce that a literal string is passed in,
and use this to avoid having to call strlen on it.
llvm-svn: 59706
|
|
|
|
|
|
| |
The core fix in Sema::ActOnClassMessage(). All the other changes have to do with passing down the SourceLocation for the receiver (to properly position the cursor when producing an error diagnostic).
llvm-svn: 59639
|
|
|
|
| |
llvm-svn: 59606
|
|
|
|
|
|
| |
the code and speeds it up.
llvm-svn: 59604
|
|
|
|
| |
llvm-svn: 59603
|
|
|
|
| |
llvm-svn: 59510
|
|
|
|
|
|
|
|
|
| |
and let the clients push whatever they want into the DiagnosticInfo
instead of hard coding a few forms. Also switch various clients to
use Diag(Tok, ...) instead of Diag(Tok.getLocation(), ...) as the
canonical form to simplify the code a bit.
llvm-svn: 59509
|
|
|
|
|
|
|
|
|
|
| |
1. Remove a bogus assertion, clients other than sema can return a
null pointer from actions that result in ParseTypeName returning null.
2. Remove dead RParenLoc variable.
3. Simplify control flow handling error conditions.
4. On a major failure, we should skip until ')' not until '}'.
llvm-svn: 57949
|
|
|
|
|
|
| |
Found this while fixing another unrelated radar.
llvm-svn: 57904
|
|
|
|
|
|
| |
strcmp when needed.
llvm-svn: 57817
|
|
|
|
| |
llvm-svn: 57816
|
|
|
|
| |
llvm-svn: 57815
|
|
|
|
| |
llvm-svn: 57813
|
|
|
|
|
|
| |
weird errors about property attributes being unknown.
llvm-svn: 57812
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
crash.m:8:12: error: type name requires a specifier or qualifier
@property (readonlyx, getter=isAwesome) int _awesome;
^
crash.m:8:29: error: expected ';' at end of declaration list
@property (readonlyx, getter=isAwesome) int _awesome;
^
crash.m:8:39: error: expected identifier or '('
@property (readonlyx, getter=isAwesome) int _awesome;
^
we now get:
crash.m:8:12: error: unknown property attribute 'readonlyx'
@property (readonlyx, getter=isAwesome) int _awesome;
^
Also, we can eliminate isObjCPropertyAttribute now.
llvm-svn: 57811
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
ParseObjCPropertyAttribute. Before, on this code (where
a comma was forgotten):
@property (readonly getter=isAwesome) int _awesome;
we emitted:
crash.m:9:11: error: expected ')'
@property (readonly getter=isAwesome) int _awesome;
^
crash.m:9:37: error: type name requires a specifier or qualifier
@property (readonly getter=isAwesome) int _awesome;
^
crash.m:9:37: error: expected identifier or '('
crash.m:9:37: error: expected ';' at end of declaration list
crash.m:9:1: error: @property requires fields to be named
@property (readonly getter=isAwesome) int _awesome;
^
now we emit:
crash.m:9:21: error: expected ')'
@property (readonly getter=isAwesome) int _awesome;
^
crash.m:9:11: error: to match this '('
@property (readonly getter=isAwesome) int _awesome;
^
llvm-svn: 57809
|
|
|
|
|
|
| |
@property (readonly) int : 4;
llvm-svn: 57805
|
|
|
|
|
|
|
| |
occurs, skip to an @ or ; instead of to a } or ;. Properties
don't necessarily live in {}'s.
llvm-svn: 57804
|
|
|
|
|
|
|
|
|
|
| |
Check for @end in ParseObjCInterfaceDeclList instead of in each caller
Handle @required and @optional with the same code
Add some fixmes about some apparently objc2 code that is being accepted
in objc1.
llvm-svn: 57803
|
|
|
|
|
|
|
|
|
|
|
| |
where it would reject @required in non-protocols, but then go
ahead and tag methods with required anyway. Instead, if we see
this in something other than a protocol, just ignore the request.
Also, improve error recovery a bit when we see something bogus
inside an interface.
llvm-svn: 57798
|
|
|
|
|
|
| |
to make it easier to understand. No functionality change.
llvm-svn: 57797
|
|
|
|
| |
llvm-svn: 56992
|
|
|
|
| |
llvm-svn: 56668
|
|
|
|
| |
llvm-svn: 56642
|
|
|
|
|
|
| |
Fixes: <rdar://problem/6248119> @finally doesn't introduce a new scope
llvm-svn: 56629
|
|
|
|
|
|
|
| |
arbitrary expr, not just a assign expr. The grammar comment
was right, the code was just wrong.
llvm-svn: 56353
|
|
|
|
|
|
|
| |
- Also, fix Parser to construct proper SetterName selector (should be
lifted out of parser though).
llvm-svn: 55352
|
|
|
|
| |
llvm-svn: 55253
|
|
|
|
| |
llvm-svn: 55217
|
|
|
|
|
|
|
| |
make diagnostic output in some other malformed cases significantly
more useful. This fixes PR2708
llvm-svn: 55215
|
|
|
|
|
|
| |
ActOnDeclarator.
llvm-svn: 54353
|
|
|
|
| |
llvm-svn: 54340
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- ActOnDeclarator now takes an additional parameter which is the
AsmLabel if used. Its unfortunate that this bubbles up this high,
but we cannot just lump it in as an attribute without mistakenly
*accepting* it as an attribute.
- The actual asm-label itself is, however, encoded as an AsmLabelAttr
on the FunctionDecl.
- Slightly improved parser error recovery on malformed asm-labels.
- CodeGen support still missing...
llvm-svn: 54339
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
for structs.
rdar://6095245.
llvm-svn: 54044
|
|
|
|
| |
llvm-svn: 54032
|
|
|
|
|
|
| |
valid MDecl's.
llvm-svn: 54013
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
have Destroy methods of ObjcMethodDecl and ObjCInterfaceDecl which recursively
destroy their owned Decls and Stmts. There are a few cases where it is not
clear what to do (FIXMEs included in the patch).
llvm-svn: 52050
|