aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2010-06-21 19:41:40 +0000
committerTed Kremenek <kremenek@apple.com>2010-06-21 19:41:40 +0000
commit0d32a68cbc508f81ae6979f3e8aa6e3007d02752 (patch)
treea757063841feb4afcc45d0dc9c12f9a1075a2854
parent9f967c5e4bbeb48caf6d0e62056b3d3fee20bf7c (diff)
Add clang_getCursorType() support for @property declarations.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106451 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--test/Index/print-typekind.m7
-rw-r--r--tools/libclang/CXTypes.cpp2
2 files changed, 9 insertions, 0 deletions
diff --git a/test/Index/print-typekind.m b/test/Index/print-typekind.m
new file mode 100644
index 0000000000..62cbb70c8e
--- /dev/null
+++ b/test/Index/print-typekind.m
@@ -0,0 +1,7 @@
+@interface Foo
+@property (readonly) id x;
+@end
+
+// RUN: c-index-test -test-print-typekind %s | FileCheck %s
+// CHECK: ObjCPropertyDecl=x:2:25 typekind=Typedef [canonical=ObjCObjectPointer]
+
diff --git a/tools/libclang/CXTypes.cpp b/tools/libclang/CXTypes.cpp
index 777afb9bb7..ae756c7a1e 100644
--- a/tools/libclang/CXTypes.cpp
+++ b/tools/libclang/CXTypes.cpp
@@ -116,6 +116,8 @@ CXType clang_getCursorType(CXCursor C) {
return MakeCXType(QualType(ID->getTypeForDecl(), 0), AU);
if (ValueDecl *VD = dyn_cast<ValueDecl>(D))
return MakeCXType(VD->getType(), AU);
+ if (ObjCPropertyDecl *PD = dyn_cast<ObjCPropertyDecl>(D))
+ return MakeCXType(PD->getType(), AU);
return MakeCXType(QualType(), AU);
}