Move property API's up to ObjCContainerDecl (removing a lot of duplicate code).
Add isa/cast/dyncast support for ObjCContainerDecl.
Renamed classprop_iterator/begin/end to prop_iterator/begin/end (the class prefix was confusing).
More simplifications to Sema::ActOnAtEnd()...
Added/changed some FIXME's as a result of the above work.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61988 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/AST/TranslationUnit.cpp b/lib/AST/TranslationUnit.cpp
index adf6876..c02db82 100644
--- a/lib/AST/TranslationUnit.cpp
+++ b/lib/AST/TranslationUnit.cpp
@@ -46,8 +46,8 @@
       //  eventually be fixed when the ownership of ObjCPropertyDecls gets
       //  cleaned up.
       if (ObjCInterfaceDecl* IDecl = dyn_cast<ObjCInterfaceDecl>(*I))
-        for (ObjCInterfaceDecl::classprop_iterator ID=IDecl->classprop_begin(),
-             ED=IDecl->classprop_end(); ID!=ED; ++ID) {
+        for (ObjCInterfaceDecl::prop_iterator ID=IDecl->prop_begin(),
+             ED=IDecl->prop_end(); ID!=ED; ++ID) {
           if (!*ID || Killed.count(*ID)) continue;
           Killed.insert(*ID);
           (*ID)->Destroy(*Context);
@@ -59,8 +59,8 @@
       //  eventually be fixed when the ownership of ObjCPropertyDecls gets
       //  cleaned up.
       if (ObjCProtocolDecl* PDecl = dyn_cast<ObjCProtocolDecl>(*I))
-        for (ObjCProtocolDecl::classprop_iterator ID=PDecl->classprop_begin(),
-             ED=PDecl->classprop_end(); ID!=ED; ++ID) {
+        for (ObjCProtocolDecl::prop_iterator ID=PDecl->prop_begin(),
+             ED=PDecl->prop_end(); ID!=ED; ++ID) {
           if (!*ID || Killed.count(*ID)) continue;
           Killed.insert(*ID);
           (*ID)->Destroy(*Context);