summaryrefslogtreecommitdiffstats
path: root/clang/lib/Edit/RewriteObjCFoundationAPI.cpp
diff options
context:
space:
mode:
authorFariborz Jahanian <fjahanian@apple.com>2013-07-16 18:58:41 +0000
committerFariborz Jahanian <fjahanian@apple.com>2013-07-16 18:58:41 +0000
commit3eb3159816760e272caba4cd168f3d3abcf00e60 (patch)
tree974e42699d7cdb38aba8ed74fa6c381ab7c6b223 /clang/lib/Edit/RewriteObjCFoundationAPI.cpp
parent0edeabfe43bab3c5f85a36d04f66a51b0cbec188 (diff)
downloadbcm5719-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.cpp44
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;
}
OpenPOWER on IntegriCloud