diff options
author | Steve Naroff <snaroff@apple.com> | 2009-02-23 18:36:16 +0000 |
---|---|---|
committer | Steve Naroff <snaroff@apple.com> | 2009-02-23 18:36:16 +0000 |
commit | d461777e23204fe8c480302d8ff76f5847605da6 (patch) | |
tree | 6d351b295cbd0575aec6ba3148e0bbdc38f8ccc9 /lib/AST | |
parent | 01011d4e4d6d5146f58233a508509757382d62c3 (diff) |
Revert http://llvm.org/viewvc/llvm-project?view=rev&revision=65244.
Remove support for "Class<P>". Will be making this an error.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65332 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/AST')
-rw-r--r-- | lib/AST/ASTContext.cpp | 25 | ||||
-rw-r--r-- | lib/AST/ExprConstant.cpp | 3 | ||||
-rw-r--r-- | lib/AST/Type.cpp | 27 |
3 files changed, 2 insertions, 53 deletions
diff --git a/lib/AST/ASTContext.cpp b/lib/AST/ASTContext.cpp index 78f2a8a9ab..60d8b8be80 100644 --- a/lib/AST/ASTContext.cpp +++ b/lib/AST/ASTContext.cpp @@ -1397,29 +1397,6 @@ QualType ASTContext::getObjCQualifiedIdType(ObjCProtocolDecl **Protocols, return QualType(QType, 0); } -/// getObjCQualifiedClassType - Return an ObjCQualifiedIdType for the 'Class' -/// decl and the conforming protocol list. -QualType ASTContext::getObjCQualifiedClassType(ObjCProtocolDecl **Protocols, - unsigned NumProtocols) { - // Sort the protocol list alphabetically to canonicalize it. - SortAndUniqueProtocols(Protocols, NumProtocols); - - llvm::FoldingSetNodeID ID; - ObjCQualifiedIdType::Profile(ID, Protocols, NumProtocols); - - void *InsertPos = 0; - if (ObjCQualifiedClassType *QT = - ObjCQualifiedClassTypes.FindNodeOrInsertPos(ID, InsertPos)) - return QualType(QT, 0); - - // No Match; - ObjCQualifiedClassType *QType = - new (*this,8) ObjCQualifiedClassType(Protocols, NumProtocols); - Types.push_back(QType); - ObjCQualifiedClassTypes.InsertNode(QType, InsertPos); - return QualType(QType, 0); -} - /// getTypeOfExpr - Unlike many "get<Type>" functions, we can't unique /// TypeOfExpr AST's (since expression's are never shared). For example, /// multiple declarations that refer to "typeof(x)" all contain different @@ -2422,7 +2399,7 @@ bool ASTContext::isObjCNSObjectType(QualType Ty) const { /// to struct), Interface* (pointer to ObjCInterfaceType) and id<P> (qualified /// ID type). bool ASTContext::isObjCObjectPointerType(QualType Ty) const { - if (Ty->isObjCQualifiedIdType() || Ty->isObjCQualifiedClassType()) + if (Ty->isObjCQualifiedIdType()) return true; // Blocks are objects. diff --git a/lib/AST/ExprConstant.cpp b/lib/AST/ExprConstant.cpp index d868cba9eb..bfba5984b0 100644 --- a/lib/AST/ExprConstant.cpp +++ b/lib/AST/ExprConstant.cpp @@ -285,8 +285,7 @@ public: static bool HasPointerEvalType(const Expr* E) { return E->getType()->isPointerType() || E->getType()->isBlockPointerType() - || E->getType()->isObjCQualifiedIdType() - || E->getType()->isObjCQualifiedClassType(); + || E->getType()->isObjCQualifiedIdType(); } static bool EvaluatePointer(const Expr* E, APValue& Result, EvalInfo &Info) { diff --git a/lib/AST/Type.cpp b/lib/AST/Type.cpp index 065b626930..7b07b9cbe4 100644 --- a/lib/AST/Type.cpp +++ b/lib/AST/Type.cpp @@ -870,17 +870,6 @@ void ObjCQualifiedIdType::Profile(llvm::FoldingSetNodeID &ID) { Profile(ID, &Protocols[0], getNumProtocols()); } -void ObjCQualifiedClassType::Profile(llvm::FoldingSetNodeID &ID, - ObjCProtocolDecl **protocols, - unsigned NumProtocols) { - for (unsigned i = 0; i != NumProtocols; i++) - ID.AddPointer(protocols[i]); -} - -void ObjCQualifiedClassType::Profile(llvm::FoldingSetNodeID &ID) { - Profile(ID, &Protocols[0], getNumProtocols()); -} - /// LookThroughTypedefs - Return the ultimate type this typedef corresponds to /// potentially looking through *all* consequtive typedefs. This returns the /// sum of the type qualifiers, so if you have: @@ -1357,22 +1346,6 @@ void ObjCQualifiedIdType::getAsStringInternal(std::string &InnerString) const { InnerString = ObjCQIString + InnerString; } -void ObjCQualifiedClassType::getAsStringInternal(std::string &InnerString) const -{ - if (!InnerString.empty()) // Prefix the basic type, e.g. 'typedefname X'. - InnerString = ' ' + InnerString; - std::string ObjCQIString = "Class"; - ObjCQIString += '<'; - int num = getNumProtocols(); - for (int i = 0; i < num; i++) { - ObjCQIString += getProtocols(i)->getNameAsString(); - if (i < num-1) - ObjCQIString += ','; - } - ObjCQIString += '>'; - InnerString = ObjCQIString + InnerString; -} - void TagType::getAsStringInternal(std::string &InnerString) const { if (!InnerString.empty()) // Prefix the basic type, e.g. 'typedefname X'. InnerString = ' ' + InnerString; |