[clang.py] Implement Cursor.objc_type_encoding

llvm-svn: 152513
This commit is contained in:
Gregory Szorc 2012-03-10 22:23:27 +00:00
parent b4489162b6
commit a8b30c5b61
2 changed files with 20 additions and 0 deletions

View 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]

View 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'