Convert ObjC qualified type clients over to using iterators.
This allows me to remove some API that I don't want to carry over to ObjCObjectPointerType.
No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72475 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/AST/ASTContext.cpp b/lib/AST/ASTContext.cpp
index e850960..c168e98 100644
--- a/lib/AST/ASTContext.cpp
+++ b/lib/AST/ASTContext.cpp
@@ -2350,10 +2350,10 @@
// Only when doing ivar or property encoding.
const ObjCQualifiedIdType *QIDT = T->getAsObjCQualifiedIdType();
S += '"';
- for (unsigned i =0; i < QIDT->getNumProtocols(); i++) {
- ObjCProtocolDecl *Proto = QIDT->getProtocols(i);
+ for (ObjCQualifiedIdType::qual_iterator I = QIDT->qual_begin(),
+ E = QIDT->qual_end(); I != E; ++I) {
S += '<';
- S += Proto->getNameAsString();
+ S += (*I)->getNameAsString();
S += '>';
}
S += '"';
@@ -2416,10 +2416,10 @@
ObjCInterfaceDecl *OI = OIT->getDecl();
S += '"';
S += OI->getNameAsCString();
- for (unsigned i =0; i < OIT->getNumProtocols(); i++) {
- ObjCProtocolDecl *Proto = OIT->getProtocol(i);
+ for (ObjCInterfaceType::qual_iterator I = OIT->qual_begin(),
+ E = OIT->qual_end(); I != E; ++I) {
S += '<';
- S += Proto->getNameAsString();
+ S += (*I)->getNameAsString();
S += '>';
}
S += '"';
diff --git a/lib/AST/Type.cpp b/lib/AST/Type.cpp
index fd498d5..6093352 100644
--- a/lib/AST/Type.cpp
+++ b/lib/AST/Type.cpp
@@ -1531,10 +1531,9 @@
InnerString = ' ' + InnerString;
std::string ObjCQIString = "id";
ObjCQIString += '<';
- int num = getNumProtocols();
- for (int i = 0; i < num; i++) {
- ObjCQIString += getProtocols(i)->getNameAsString();
- if (i < num-1)
+ for (qual_iterator I = qual_begin(), E = qual_end(); I != E; ++I) {
+ ObjCQIString += (*I)->getNameAsString();
+ if (I+1 != E)
ObjCQIString += ',';
}
ObjCQIString += '>';