Improved MSVC __interface support by adding first class support for it, instead of aliasing to "struct" which had some incorrect behaviour. Patch by David Robins.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163013 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/tools/libclang/IndexingContext.cpp b/tools/libclang/IndexingContext.cpp
index ace5c75..54f8d34 100644
--- a/tools/libclang/IndexingContext.cpp
+++ b/tools/libclang/IndexingContext.cpp
@@ -852,12 +852,16 @@
     case TTK_Union:
       EntityInfo.kind = CXIdxEntity_Union; break;
     case TTK_Class:
-      EntityInfo.kind = CXIdxEntity_CXXClass;
-      EntityInfo.lang = CXIdxEntityLang_CXX;
-      break;
-    case TTK_Enum:
-      EntityInfo.kind = CXIdxEntity_Enum; break;
-    }
+      EntityInfo.kind = CXIdxEntity_CXXClass;

+      EntityInfo.lang = CXIdxEntityLang_CXX;

+      break;

+    case TTK_Interface:

+      EntityInfo.kind = CXIdxEntity_CXXInterface;

+      EntityInfo.lang = CXIdxEntityLang_CXX;

+      break;

+    case TTK_Enum:

+      EntityInfo.kind = CXIdxEntity_Enum; break;

+    }

 
     if (const CXXRecordDecl *CXXRec = dyn_cast<CXXRecordDecl>(D))
       if (!CXXRec->isCLike())