]> granicus.if.org Git - clang/commitdiff
[clang.py] Implement Cursor.objc_type_encoding
authorGregory Szorc <gregory.szorc@gmail.com>
Sat, 10 Mar 2012 22:23:27 +0000 (22:23 +0000)
committerGregory Szorc <gregory.szorc@gmail.com>
Sat, 10 Mar 2012 22:23:27 +0000 (22:23 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152513 91177308-0d34-0410-b5e6-96231b3b80d8

bindings/python/clang/cindex.py
bindings/python/tests/cindex/test_cursor.py

index 3b1e751ec0d0f8c26bb565a6d105a8345d40c259..b4563eb0c62407a4f14a80c73a167d627daad007 100644 (file)
@@ -1007,6 +1007,14 @@ class Cursor(Structure):
 
         return self._enum_type
 
+    @property
+    def objc_type_encoding(self):
+        """Return the Objective-C type encoding as a str."""
+        if not hasattr(self, '_objc_type_encoding'):
+            self._objc_type_encoding = Cursor_objc_type_encoding(self)
+
+        return self._objc_type_encoding
+
     @property
     def hash(self):
         """Returns a hash of the cursor as an int."""
@@ -1920,6 +1928,11 @@ Cursor_enum_type.argtypes = [Cursor]
 Cursor_enum_type.restype = Type
 Cursor_enum_type.errcheck = Type.from_result
 
+Cursor_objc_type_encoding = lib.clang_getDeclObjCTypeEncoding
+Cursor_objc_type_encoding.argtypes = [Cursor]
+Cursor_objc_type_encoding.restype = _CXString
+Cursor_objc_type_encoding.errcheck = _CXString.from_result
+
 Cursor_visit_callback = CFUNCTYPE(c_int, Cursor, Cursor, py_object)
 Cursor_visit = lib.clang_visitChildren
 Cursor_visit.argtypes = [Cursor, Cursor_visit_callback, py_object]
index bbe2c1d7e5e67680ed68db9554ac6dd577473366..9f02bb2a7686358830e52e54d180fe96765d5b21 100644 (file)
@@ -83,3 +83,10 @@ def test_enum_type():
     assert enum.kind == CursorKind.ENUM_DECL
     enum_type = enum.enum_type
     assert enum_type.kind == TypeKind.UINT
+
+def test_objc_type_encoding():
+    tu = get_tu('int i;', lang='objc')
+    i = get_cursor(tu, 'i')
+
+    assert i is not None
+    assert i.objc_type_encoding == 'i'