mirror of https://github.com/microsoft/clang.git
[python bindings] Fix Cursor.result_type for ObjC method declarations - Bug 36677
Summary: 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. Reviewers: jbcoe, rsmith Reviewed By: jbcoe Subscribers: cfe-commits, llvm-commits Differential Revision: https://reviews.llvm.org/D45671 Patch by kjteske (Kyle Teske). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@330557 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
67f6e8a2d2
commit
33a33e52ed
|
@ -1644,7 +1644,7 @@ class Cursor(Structure):
|
|||
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 @@ functionList = [
|
|||
[Cursor, c_uint, c_uint],
|
||||
SourceRange),
|
||||
|
||||
("clang_getCursorResultType",
|
||||
[Cursor],
|
||||
Type,
|
||||
Type.from_result),
|
||||
|
||||
("clang_getCursorSemanticParent",
|
||||
[Cursor],
|
||||
Cursor,
|
||||
|
|
|
@ -429,6 +429,18 @@ class TestCursor(unittest.TestCase):
|
|||
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')
|
||||
|
||||
|
|
Loading…
Reference in New Issue