Fixed a problem using property syntax on a 'super'

used as receiver.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68631 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Fariborz Jahanian 2009-04-08 19:50:10 +00:00
Родитель 0f78feaecf
Коммит d2869925b5
2 изменённых файлов: 26 добавлений и 3 удалений

Просмотреть файл

@ -1449,9 +1449,11 @@ Parser::OwningExprResult Parser::ParseObjCMessageExpression() {
// Parse receiver
if (isTokObjCMessageIdentifierReceiver()) {
IdentifierInfo *ReceiverName = Tok.getIdentifierInfo();
SourceLocation NameLoc = ConsumeToken();
return ParseObjCMessageExpressionBody(LBracLoc, NameLoc, ReceiverName,
ExprArg(Actions));
if (ReceiverName != Ident_super || GetLookAheadToken(1).isNot(tok::period)) {
SourceLocation NameLoc = ConsumeToken();
return ParseObjCMessageExpressionBody(LBracLoc, NameLoc, ReceiverName,
ExprArg(Actions));
}
}
OwningExprResult Res(ParseExpression());

Просмотреть файл

@ -0,0 +1,21 @@
// RUN: clang-cc -fsyntax-only -verify %s
@interface SStoreNodeInfo
@property(nonatomic,readonly,retain) id descriptionShort;
- (id)stringByAppendingFormat:(int)format, ... ;
@end
@interface SStoreNodeInfo_iDisk : SStoreNodeInfo
{
@private
id _etag;
}
@end
@implementation SStoreNodeInfo_iDisk
- (id) X { return [super.descriptionShort stringByAppendingFormat:1, _etag]; }
@end