Revert "C++ doesn't really use "namespaces" for different kinds of names the same", which seems to break most C++ nightly test apps.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102174 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/AST/DeclBase.cpp b/lib/AST/DeclBase.cpp
index b5aec0c..61d22b9 100644
--- a/lib/AST/DeclBase.cpp
+++ b/lib/AST/DeclBase.cpp
@@ -231,28 +231,23 @@
     case CXXConstructor:
     case CXXDestructor:
     case CXXConversion:
+    case Typedef:
     case EnumConstant:
     case Var:
     case ImplicitParam:
     case ParmVar:
     case NonTypeTemplateParm:
     case ObjCMethod:
-    case ObjCProperty:
-      return IDNS_Ordinary;
-
-    case ObjCCompatibleAlias:
     case ObjCInterface:
-      return IDNS_Ordinary | IDNS_Type;
-
-    case Typedef:
-    case UnresolvedUsingTypename:
-    case TemplateTypeParm:
-      return IDNS_Ordinary | IDNS_Type;
+    case ObjCProperty:
+    case ObjCCompatibleAlias:
+      return IDNS_Ordinary;
 
     case UsingShadow:
       return 0; // we'll actually overwrite this later
 
     case UnresolvedUsingValue:
+    case UnresolvedUsingTypename:
       return IDNS_Ordinary | IDNS_Using;
 
     case Using:
@@ -269,18 +264,15 @@
     case Record:
     case CXXRecord:
     case Enum:
-      return IDNS_Tag | IDNS_Type;
+    case TemplateTypeParm:
+      return IDNS_Tag;
 
     case Namespace:
-    case NamespaceAlias:
-      return IDNS_Namespace;
-
     case FunctionTemplate:
-      return IDNS_Ordinary;
-
     case ClassTemplate:
     case TemplateTemplateParm:
-      return IDNS_Ordinary | IDNS_Tag | IDNS_Type;
+    case NamespaceAlias:
+      return IDNS_Tag | IDNS_Ordinary;
 
     // Never have names.
     case Friend: