5 cleanups to ObjCObjectPointerType work:

- Remove Sema::CheckPointeeTypesForAssignment(), a temporary API I added to ease migration to ObjCObjectPointerType. Convert Sema::CheckAssignmentConstraints() to no longer depend on the temporary API.
- Sema::ConvertDeclSpecToType(): Replace a couple FIXME's with an important comment/example.
- Sema::GetTypeForDeclarator(): Get the protocol's from the interface, NOT the declspec (to support the following C typedef idiom: "typedef C<P> T; T *obj").
- Sema::ObjCQualifiedIdTypesAreCompatible(): Removed some dead code.
- ASTContext::getObjCEncodingForTypeImpl(): Some minor cleanups.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76443 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/AST/ASTContext.cpp b/lib/AST/ASTContext.cpp
index 680ec24..05627b4 100644
--- a/lib/AST/ASTContext.cpp
+++ b/lib/AST/ASTContext.cpp
@@ -2758,10 +2758,9 @@
       if (FD || EncodingProperty) {
         // Note that we do extended encoding of protocol qualifer list
         // Only when doing ivar or property encoding.
-        const ObjCObjectPointerType *QIDT = T->getAsObjCQualifiedIdType();
         S += '"';
-        for (ObjCObjectPointerType::qual_iterator I = QIDT->qual_begin(),
-             E = QIDT->qual_end(); I != E; ++I) {
+        for (ObjCObjectPointerType::qual_iterator I = OPT->qual_begin(),
+             E = OPT->qual_end(); I != E; ++I) {
           S += '<';
           S += (*I)->getNameAsString();
           S += '>';
@@ -2786,12 +2785,10 @@
 
     S += '@';
     if (FD || EncodingProperty) {
-      const ObjCInterfaceType *OIT = OPT->getInterfaceType();
-      ObjCInterfaceDecl *OI = OIT->getDecl();
       S += '"';
-      S += OI->getNameAsCString();
-      for (ObjCInterfaceType::qual_iterator I = OIT->qual_begin(),
-           E = OIT->qual_end(); I != E; ++I) {
+      S += OPT->getInterfaceDecl()->getNameAsCString();
+      for (ObjCObjectPointerType::qual_iterator I = OPT->qual_begin(),
+           E = OPT->qual_end(); I != E; ++I) {
         S += '<';
         S += (*I)->getNameAsString();
         S += '>';