Make sure the source location for @property points the the @-sign (not the decl spec).

Also added a FIXME related to how we represent @properties in the ObjCInterfaceDecl AST.

llvm-svn: 51450
This commit is contained in:
Steve Naroff 2008-05-22 23:24:08 +00:00
parent 5477a1583a
commit 4c290c7c0b
2 changed files with 5 additions and 1 deletions

View File

@ -280,7 +280,7 @@ void Parser::ParseObjCInterfaceDeclList(DeclTy *interfaceDecl,
// FIXME. This is not right!
: FD.D.getIdentifier());
DeclTy *Property = Actions.ActOnProperty(CurScope,
DS.getSourceRange().getBegin(), FD, OCDS,
AtLoc, FD, OCDS,
GetterSel, SetterSel,
MethodImplKind);
allProperties.push_back(Property);

View File

@ -878,6 +878,10 @@ void Sema::ActOnAtEnd(SourceLocation AtEndLoc, DeclTy *classDecl,
MergeProtocolPropertiesIntoClass(I, I);
for (ObjCInterfaceDecl::classprop_iterator P = I->classprop_begin(),
E = I->classprop_end(); P != E; ++P) {
// FIXME: It would be really nice if we could avoid this. Injecting
// methods into the interface makes it hard to distinguish "real" methods
// from synthesized "property" methods (that aren't in the source).
// This complicicates the rewriter's life.
I->addPropertyMethods(Context, *P, insMethods);
}
I->addMethods(&insMethods[0], insMethods.size(),