Search through all Decls that are DeclContexts.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76270 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Index/ResolveLocation.cpp b/lib/Index/ResolveLocation.cpp
index 4bff08e..dcf7654 100644
--- a/lib/Index/ResolveLocation.cpp
+++ b/lib/Index/ResolveLocation.cpp
@@ -93,7 +93,6 @@
 
   ASTLocation VisitDeclContext(DeclContext *DC);
   ASTLocation VisitTranslationUnitDecl(TranslationUnitDecl *TU);
-  ASTLocation VisitRecordDecl(RecordDecl *D);
   ASTLocation VisitVarDecl(VarDecl *D);
   ASTLocation VisitFunctionDecl(FunctionDecl *D);
   ASTLocation VisitDecl(Decl *D);
@@ -155,12 +154,6 @@
   return ASTLoc;
 }
 
-ASTLocation DeclLocResolver::VisitRecordDecl(RecordDecl *D) {
-  assert(ContainsLocation(D) &&
-         "Should visit only after verifying that loc is in range");
-  return VisitDeclContext(D);
-}
-
 ASTLocation DeclLocResolver::VisitFunctionDecl(FunctionDecl *D) {
   assert(ContainsLocation(D) &&
          "Should visit only after verifying that loc is in range");
@@ -225,6 +218,8 @@
 ASTLocation DeclLocResolver::VisitDecl(Decl *D) {
   assert(ContainsLocation(D) &&
          "Should visit only after verifying that loc is in range");
+  if (DeclContext *DC = dyn_cast<DeclContext>(D))
+    return VisitDeclContext(DC);
   return ASTLocation(D);
 }