[PATCH] D45671: [python bindings] Fix Cursor.result_type for ObjC method declarations - Bug 36677
Kyle Teske via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Sun Apr 15 08:43:56 PDT 2018
kjteske created this revision.
Herald added a subscriber: cfe-commits.
In cindex.py, Cursor.result_type called into the wrong libclang
function, causing cursors for ObjC method declarations to return invalid
result types. Fixes Bug 36677.
Repository:
rC Clang
https://reviews.llvm.org/D45671
Files:
bindings/python/clang/cindex.py
bindings/python/tests/cindex/test_cursor.py
Index: bindings/python/tests/cindex/test_cursor.py
===================================================================
--- bindings/python/tests/cindex/test_cursor.py
+++ bindings/python/tests/cindex/test_cursor.py
@@ -429,6 +429,18 @@
t = foo.result_type
self.assertEqual(t.kind, TypeKind.INT)
+ def test_result_type_objc_method_decl(self):
+ code = """\
+ @interface Interface : NSObject
+ -(void)voidMethod;
+ @end
+ """
+ tu = get_tu(code, lang='objc')
+ cursor = get_cursor(tu, 'voidMethod')
+ result_type = cursor.result_type
+ self.assertEqual(cursor.kind, CursorKind.OBJC_INSTANCE_METHOD_DECL)
+ self.assertEqual(result_type.kind, TypeKind.VOID)
+
def test_availability(self):
tu = get_tu('class A { A(A const&) = delete; };', lang='cpp')
Index: bindings/python/clang/cindex.py
===================================================================
--- bindings/python/clang/cindex.py
+++ bindings/python/clang/cindex.py
@@ -1644,7 +1644,7 @@
def result_type(self):
"""Retrieve the Type of the result for this Cursor."""
if not hasattr(self, '_result_type'):
- self._result_type = conf.lib.clang_getResultType(self.type)
+ self._result_type = conf.lib.clang_getCursorResultType(self)
return self._result_type
@@ -3568,6 +3568,11 @@
[Cursor, c_uint, c_uint],
SourceRange),
+ ("clang_getCursorResultType",
+ [Cursor],
+ Type,
+ Type.from_result),
+
("clang_getCursorSemanticParent",
[Cursor],
Cursor,
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D45671.142570.patch
Type: text/x-patch
Size: 1599 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20180415/2f2e1128/attachment.bin>
More information about the cfe-commits
mailing list