Per offline discussion with Steve Naroff, add back Type::getAsXXXType() methods
until Doug Gregor's Type smart pointer code lands (or more discussion occurs).
These methods just call the new Type::getAs<XXX> methods, so we still have
reduced implementation redundancy. Having explicit getAsXXXType() methods makes
it easier to set breakpoints in the debugger.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76193 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/AST/DeclCXX.cpp b/lib/AST/DeclCXX.cpp
index f420da1..57ac611 100644
--- a/lib/AST/DeclCXX.cpp
+++ b/lib/AST/DeclCXX.cpp
@@ -81,7 +81,7 @@
     if (BaseType->isDependentType())
       continue;
     CXXRecordDecl *BaseClassDecl
-      = cast<CXXRecordDecl>(BaseType->getAs<RecordType>()->getDecl());
+      = cast<CXXRecordDecl>(BaseType->getAsRecordType()->getDecl());
     if (Base->isVirtual())
       hasDirectVirtualBase = true;
     for (CXXRecordDecl::base_class_iterator VBase = 
@@ -125,7 +125,7 @@
     for (int i = 0; i < vbaseCount; i++) {
       QualType QT = UniqueVbases[i]->getType();
       CXXRecordDecl *VBaseClassDecl
-        = cast<CXXRecordDecl>(QT->getAs<RecordType>()->getDecl());
+        = cast<CXXRecordDecl>(QT->getAsRecordType()->getDecl());
       this->VBases[i] = 
         *new CXXBaseSpecifier(
                           VBaseClassDecl->getSourceRange(), true,
@@ -185,7 +185,7 @@
       continue;
     bool AcceptsConst = true;
     QualType ArgType = FnType->getArgType(0);
-    if (const LValueReferenceType *Ref = ArgType->getAs<LValueReferenceType>()) {
+    if (const LValueReferenceType *Ref = ArgType->getAsLValueReferenceType()) {
       ArgType = Ref->getPointeeType();
       // Is it a non-const lvalue reference?
       if (!ArgType.isConstQualified())
@@ -237,7 +237,7 @@
   assert(FnType && "Overloaded operator has no proto function type.");
   assert(FnType->getNumArgs() == 1 && !FnType->isVariadic());
   QualType ArgType = FnType->getArgType(0);
-  if (const LValueReferenceType *Ref = ArgType->getAs<LValueReferenceType>())
+  if (const LValueReferenceType *Ref = ArgType->getAsLValueReferenceType())
     ArgType = Ref->getPointeeType();
 
   ArgType = ArgType.getUnqualifiedType();
@@ -433,7 +433,7 @@
 
   // Do we have a reference type? Rvalue references don't count.
   const LValueReferenceType *ParamRefType =
-    Param->getType()->getAs<LValueReferenceType>();
+    Param->getType()->getAsLValueReferenceType();
   if (!ParamRefType)
     return false;
 
@@ -503,7 +503,7 @@
     while (const ArrayType *AT = C.getAsArrayType(FieldType))
       FieldType = AT->getElementType();
     
-    if (FieldType->getAs<RecordType>()) {
+    if (FieldType->getAsRecordType()) {
       CXXBaseOrMemberInitializer *Member = 
         new CXXBaseOrMemberInitializer((*Field), 0, 0, SourceLocation());
       AllToDestruct.push_back(Member);
@@ -535,12 +535,12 @@
   for (CXXRecordDecl::base_class_iterator VBase =
        ClassDecl->vbases_begin(),
        E = ClassDecl->vbases_end(); VBase != E; ++VBase) {
-    const Type * T = VBase->getType()->getAs<RecordType>();
+    const Type * T = VBase->getType()->getAsRecordType();
     unsigned int i = 0;
     for (i = 0; i < NumInitializers; i++) {
       CXXBaseOrMemberInitializer *Member = Initializers[i];
       if (Member->isBaseInitializer() &&
-          Member->getBaseClass()->getAs<RecordType>() == T) {
+          Member->getBaseClass()->getAsRecordType() == T) {
         AllToInit.push_back(Member);
         break;
       }
@@ -557,12 +557,12 @@
     // Virtuals are in the virtual base list and already constructed.
     if (Base->isVirtual())
       continue;
-    const Type * T = Base->getType()->getAs<RecordType>();
+    const Type * T = Base->getType()->getAsRecordType();
     unsigned int i = 0;
     for (i = 0; i < NumInitializers; i++) {
       CXXBaseOrMemberInitializer *Member = Initializers[i];
       if (Member->isBaseInitializer() && 
-          Member->getBaseClass()->getAs<RecordType>() == T) {
+          Member->getBaseClass()->getAsRecordType() == T) {
         AllToInit.push_back(Member);
         break;
       }
@@ -589,7 +589,7 @@
       while (const ArrayType *AT = C.getAsArrayType(FieldType))
         FieldType = AT->getElementType();
       
-      if (FieldType->getAs<RecordType>()) {
+      if (FieldType->getAsRecordType()) {
         CXXBaseOrMemberInitializer *Member = 
           new CXXBaseOrMemberInitializer((*Field), 0, 0, SourceLocation());
           AllToInit.push_back(Member);