Rename Selector::getName() to Selector::getAsString(), and add
a new NamedDecl::getAsString() method.

Change uses of Selector::getName() to just pass in a Selector 
where possible (e.g. to diagnostics) instead of going through
an std::string.

This also adds new formatters for objcinstance and objcclass
as described in the dox.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59933 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/Driver/ASTConsumers.cpp b/Driver/ASTConsumers.cpp
index 3536ee8..55a7d02 100644
--- a/Driver/ASTConsumers.cpp
+++ b/Driver/ASTConsumers.cpp
@@ -198,7 +198,7 @@
   if (!OMD->getResultType().isNull())
     Out << '(' << OMD->getResultType().getAsString() << ")";
   
-  std::string name = OMD->getSelector().getName();
+  std::string name = OMD->getSelector().getAsString();
   std::string::size_type pos, lastPos = 0;
   for (unsigned i = 0, e = OMD->getNumParams(); i != e; ++i) {
     ParmVarDecl *PDecl = OMD->getParamDecl(i);
@@ -363,12 +363,12 @@
       
   if (PDecl->getPropertyAttributes() & ObjCPropertyDecl::OBJC_PR_getter) {
     Out << (first ? ' ' : ',') << "getter = "
-    << PDecl->getGetterName().getName();
+        << PDecl->getGetterName().getAsString();
     first = false;
   }
   if (PDecl->getPropertyAttributes() & ObjCPropertyDecl::OBJC_PR_setter) {
     Out << (first ? ' ' : ',') << "setter = "
-    << PDecl->getSetterName().getName();
+        << PDecl->getSetterName().getAsString();
     first = false;
   }
       
@@ -477,7 +477,7 @@
       } else if (isa<FileScopeAsmDecl>(D)) {
         Out << "Read file scope asm decl\n";
       } else if (ObjCMethodDecl* MD = dyn_cast<ObjCMethodDecl>(D)) {
-        Out << "Read objc method decl: '" << MD->getSelector().getName()
+        Out << "Read objc method decl: '" << MD->getSelector().getAsString()
             << "'\n";
         if (MD->getBody()) {
           // FIXME: convert dumper to use std::ostream?
diff --git a/Driver/AnalysisConsumer.cpp b/Driver/AnalysisConsumer.cpp
index 503ad38..5d9f896 100644
--- a/Driver/AnalysisConsumer.cpp
+++ b/Driver/AnalysisConsumer.cpp
@@ -246,7 +246,7 @@
         llvm::cerr << "ANALYZE (ObjC Method): "
         << getContext().getSourceManager().getSourceName(MD->getLocation())
         << " '"
-        << MD->getSelector().getName() << "'\n";
+        << MD->getSelector().getAsString() << "'\n";
       }
     }
   };
@@ -281,7 +281,7 @@
     case Decl::ObjCMethod: {
       ObjCMethodDecl* MD = cast<ObjCMethodDecl>(D);
       
-      if (FName.size() > 0 && FName != MD->getSelector().getName())
+      if (FName.size() > 0 && FName != MD->getSelector().getAsString())
         return;
       
       Stmt* Body = MD->getBody();
diff --git a/Driver/RewriteBlocks.cpp b/Driver/RewriteBlocks.cpp
index 5359153..11d7e36 100644
--- a/Driver/RewriteBlocks.cpp
+++ b/Driver/RewriteBlocks.cpp
@@ -625,7 +625,7 @@
 
 void RewriteBlocks::InsertBlockLiteralsWithinMethod(ObjCMethodDecl *MD) {
   SourceLocation FunLocStart = MD->getLocStart();
-  std::string FuncName = std::string(MD->getSelector().getName());
+  std::string FuncName = MD->getSelector().getAsString();
   // Convert colons to underscores.
   std::string::size_type loc = 0;
   while ((loc = FuncName.find(":", loc)) != std::string::npos)
@@ -920,7 +920,7 @@
   if (CurFunctionDef)
     FuncName = std::string(CurFunctionDef->getName());
   else if (CurMethodDef) {
-    FuncName = std::string(CurMethodDef->getSelector().getName());
+    FuncName = CurMethodDef->getSelector().getAsString();
     // Convert colons to underscores.
     std::string::size_type loc = 0;
     while ((loc = FuncName.find(":", loc)) != std::string::npos)
diff --git a/Driver/RewriteObjC.cpp b/Driver/RewriteObjC.cpp
index a3ce8a8..3acb6dd 100644
--- a/Driver/RewriteObjC.cpp
+++ b/Driver/RewriteObjC.cpp
@@ -749,10 +749,8 @@
     NameStr += "_";
   }
   // Append selector names, replacing ':' with '_' 
-  if (OMD->getSelector().getName().find(':') == std::string::npos)
-    NameStr +=  OMD->getSelector().getName();
-  else {
-    std::string selString = OMD->getSelector().getName();
+  {
+    std::string selString = OMD->getSelector().getAsString();
     int len = selString.size();
     for (int i = 0; i < len; i++)
       if (selString[i] == ':')
@@ -1498,8 +1496,8 @@
   // Create a call to sel_registerName("selName").
   llvm::SmallVector<Expr*, 8> SelExprs;
   QualType argType = Context->getPointerType(Context->CharTy);
-  SelExprs.push_back(new StringLiteral(Exp->getSelector().getName().c_str(),
-                                       Exp->getSelector().getName().size(),
+  SelExprs.push_back(new StringLiteral(Exp->getSelector().getAsString().c_str(),
+                                       Exp->getSelector().getAsString().size(),
                                        false, argType, SourceLocation(),
                                        SourceLocation()));
   CallExpr *SelExp = SynthesizeCallToFunctionDecl(SelGetUidFunctionDecl,
@@ -2146,8 +2144,8 @@
   // Create a call to sel_registerName("selName"), it will be the 2nd argument.
   llvm::SmallVector<Expr*, 8> SelExprs;
   QualType argType = Context->getPointerType(Context->CharTy);
-  SelExprs.push_back(new StringLiteral(Exp->getSelector().getName().c_str(),
-                                       Exp->getSelector().getName().size(),
+  SelExprs.push_back(new StringLiteral(Exp->getSelector().getAsString().c_str(),
+                                       Exp->getSelector().getAsString().size(),
                                        false, argType, SourceLocation(),
                                        SourceLocation()));
   CallExpr *SelExp = SynthesizeCallToFunctionDecl(SelGetUidFunctionDecl,
@@ -2532,7 +2530,7 @@
   Result += "{\n\t0, " + utostr(MethodEnd-MethodBegin) + "\n";
 
   Result += "\t,{{(SEL)\"";
-  Result += (*MethodBegin)->getSelector().getName().c_str();
+  Result += (*MethodBegin)->getSelector().getAsString().c_str();
   std::string MethodTypeString;
   Context->getObjCEncodingForMethodDecl(*MethodBegin, MethodTypeString);
   Result += "\", \"";
@@ -2542,7 +2540,7 @@
   Result += "}\n";
   for (++MethodBegin; MethodBegin != MethodEnd; ++MethodBegin) {
     Result += "\t  ,{(SEL)\"";
-    Result += (*MethodBegin)->getSelector().getName().c_str();
+    Result += (*MethodBegin)->getSelector().getAsString().c_str();
     std::string MethodTypeString;
     Context->getObjCEncodingForMethodDecl(*MethodBegin, MethodTypeString);
     Result += "\", \"";
@@ -2606,7 +2604,7 @@
           Result += "\t  ,{{(SEL)\"";
         else
           Result += "\t  ,{(SEL)\"";
-        Result += (*I)->getSelector().getName().c_str();
+        Result += (*I)->getSelector().getAsString().c_str();
         std::string MethodTypeString;
         Context->getObjCEncodingForMethodDecl((*I), MethodTypeString);
         Result += "\", \"";
@@ -2642,7 +2640,7 @@
           Result += "\t  ,{{(SEL)\"";
         else
           Result += "\t  ,{(SEL)\"";
-        Result += (*I)->getSelector().getName().c_str();
+        Result += (*I)->getSelector().getAsString().c_str();
         std::string MethodTypeString;
         Context->getObjCEncodingForMethodDecl((*I), MethodTypeString);
         Result += "\", \"";
@@ -3451,7 +3449,7 @@
   //SourceLocation FunLocStart = MD->getLocStart();
   // FIXME: This hack works around a bug in Rewrite.InsertText().
   SourceLocation FunLocStart = MD->getLocStart().getFileLocWithOffset(-1);
-  std::string FuncName = std::string(MD->getSelector().getName());
+  std::string FuncName = MD->getSelector().getAsString();
   // Convert colons to underscores.
   std::string::size_type loc = 0;
   while ((loc = FuncName.find(":", loc)) != std::string::npos)
@@ -3767,9 +3765,9 @@
   std::string FuncName;
   
   if (CurFunctionDef)
-    FuncName = std::string(CurFunctionDef->getName());
+    FuncName = CurFunctionDef->getNameAsString();
   else if (CurMethodDef) {
-    FuncName = std::string(CurMethodDef->getSelector().getName());
+    FuncName = CurMethodDef->getSelector().getAsString();
     // Convert colons to underscores.
     std::string::size_type loc = 0;
     while ((loc = FuncName.find(":", loc)) != std::string::npos)