diff options
author | Fariborz Jahanian <fjahanian@apple.com> | 2013-07-16 18:58:41 +0000 |
---|---|---|
committer | Fariborz Jahanian <fjahanian@apple.com> | 2013-07-16 18:58:41 +0000 |
commit | 3eb3159816760e272caba4cd168f3d3abcf00e60 (patch) | |
tree | 974e42699d7cdb38aba8ed74fa6c381ab7c6b223 /clang/lib/Edit/RewriteObjCFoundationAPI.cpp | |
parent | 0edeabfe43bab3c5f85a36d04f66a51b0cbec188 (diff) | |
download | bcm5719-llvm-3eb3159816760e272caba4cd168f3d3abcf00e60.tar.gz bcm5719-llvm-3eb3159816760e272caba4cd168f3d3abcf00e60.zip |
ObjectiveC migration: complete migrating class
declaration to include list of protocols class
conforms to.
llvm-svn: 186443
Diffstat (limited to 'clang/lib/Edit/RewriteObjCFoundationAPI.cpp')
-rw-r--r-- | clang/lib/Edit/RewriteObjCFoundationAPI.cpp | 44 |
1 files changed, 22 insertions, 22 deletions
diff --git a/clang/lib/Edit/RewriteObjCFoundationAPI.cpp b/clang/lib/Edit/RewriteObjCFoundationAPI.cpp index fd9c16ee6a0..30a9f522b2f 100644 --- a/clang/lib/Edit/RewriteObjCFoundationAPI.cpp +++ b/clang/lib/Edit/RewriteObjCFoundationAPI.cpp @@ -406,31 +406,31 @@ bool edit::rewriteToObjCInterfaceDecl(const ObjCInterfaceDecl *IDecl, llvm::SmallVectorImpl<ObjCProtocolDecl*> &ConformingProtocols, const NSAPI &NS, Commit &commit) { const ObjCList<ObjCProtocolDecl> &Protocols = IDecl->getReferencedProtocols(); - - // ASTContext &Context = NS.getASTContext(); - std::string ClassString = "@interface "; - ClassString += IDecl->getNameAsString(); - - if (IDecl->getSuperClass()) { - ClassString += " : "; - ClassString += IDecl->getSuperClass()->getNameAsString(); - } - if (Protocols.empty()) - ClassString += '<'; + std::string ClassString; + SourceLocation EndLoc = + IDecl->getSuperClass() ? IDecl->getSuperClassLoc() : IDecl->getLocation(); - for (ObjCList<ObjCProtocolDecl>::iterator I = Protocols.begin(), - E = Protocols.end(); I != E; ++I) { - ClassString += (I == Protocols.begin() ? '<' : ','); - ClassString += (*I)->getNameAsString(); + if (Protocols.empty()) { + ClassString = '<'; + for (unsigned i = 0, e = ConformingProtocols.size(); i != e; i++) { + ClassString += ConformingProtocols[i]->getNameAsString(); + if (i != (e-1)) + ClassString += ", "; + } + ClassString += "> "; } - if (!Protocols.empty()) - ClassString += ','; - for (unsigned i = 0, e = ConformingProtocols.size(); i != e; i++) { - ClassString += ConformingProtocols[i]->getNameAsString(); - if (i != (e-1)) - ClassString += ','; + else { + ClassString = ", "; + for (unsigned i = 0, e = ConformingProtocols.size(); i != e; i++) { + ClassString += ConformingProtocols[i]->getNameAsString(); + if (i != (e-1)) + ClassString += ", "; + } + ObjCInterfaceDecl::protocol_loc_iterator PL = IDecl->protocol_loc_end() - 1; + EndLoc = *PL; } - ClassString += "> "; + + commit.insertAfterToken(EndLoc, ClassString); return true; } |