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:
parent
5477a1583a
commit
4c290c7c0b
|
@ -280,7 +280,7 @@ void Parser::ParseObjCInterfaceDeclList(DeclTy *interfaceDecl,
|
||||||
// FIXME. This is not right!
|
// FIXME. This is not right!
|
||||||
: FD.D.getIdentifier());
|
: FD.D.getIdentifier());
|
||||||
DeclTy *Property = Actions.ActOnProperty(CurScope,
|
DeclTy *Property = Actions.ActOnProperty(CurScope,
|
||||||
DS.getSourceRange().getBegin(), FD, OCDS,
|
AtLoc, FD, OCDS,
|
||||||
GetterSel, SetterSel,
|
GetterSel, SetterSel,
|
||||||
MethodImplKind);
|
MethodImplKind);
|
||||||
allProperties.push_back(Property);
|
allProperties.push_back(Property);
|
||||||
|
|
|
@ -878,6 +878,10 @@ void Sema::ActOnAtEnd(SourceLocation AtEndLoc, DeclTy *classDecl,
|
||||||
MergeProtocolPropertiesIntoClass(I, I);
|
MergeProtocolPropertiesIntoClass(I, I);
|
||||||
for (ObjCInterfaceDecl::classprop_iterator P = I->classprop_begin(),
|
for (ObjCInterfaceDecl::classprop_iterator P = I->classprop_begin(),
|
||||||
E = I->classprop_end(); P != E; ++P) {
|
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->addPropertyMethods(Context, *P, insMethods);
|
||||||
}
|
}
|
||||||
I->addMethods(&insMethods[0], insMethods.size(),
|
I->addMethods(&insMethods[0], insMethods.size(),
|
||||||
|
|
Loading…
Reference in New Issue