зеркало из https://github.com/microsoft/clang-1.git
[clang.py] Implement Cursor.objc_type_encoding
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152513 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Родитель
5b31d55ab3
Коммит
5cc6787b1c
|
@ -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]
|
||||
|
|
|
@ -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'
|
||||
|
|
Загрузка…
Ссылка в новой задаче