forked from OSchip/llvm-project
[clang.py] Implement Cursor.is_static_method
llvm-svn: 158277
This commit is contained in:
parent
df97aa1628
commit
531880af77
|
@ -949,6 +949,12 @@ class Cursor(Structure):
|
|||
"""
|
||||
return Cursor_is_def(self)
|
||||
|
||||
def is_static_method(self):
|
||||
"""Returns True if the cursor refers to a C++ member function or member
|
||||
function template that is declared 'static'.
|
||||
"""
|
||||
return Cursor_is_static_method(self)
|
||||
|
||||
def get_definition(self):
|
||||
"""
|
||||
If the cursor is a reference to a declaration or a declaration of
|
||||
|
@ -2176,6 +2182,10 @@ Cursor_is_def = lib.clang_isCursorDefinition
|
|||
Cursor_is_def.argtypes = [Cursor]
|
||||
Cursor_is_def.restype = bool
|
||||
|
||||
Cursor_is_static_method = lib.clang_CXXMethod_isStatic
|
||||
Cursor_is_static_method.argtypes = [Cursor]
|
||||
Cursor_is_static_method.restype = bool
|
||||
|
||||
Cursor_def = lib.clang_getCursorDefinition
|
||||
Cursor_def.argtypes = [Cursor]
|
||||
Cursor_def.restype = Cursor
|
||||
|
|
|
@ -102,6 +102,22 @@ def test_canonical():
|
|||
assert len(cursors) == 3
|
||||
assert cursors[1].canonical == cursors[2].canonical
|
||||
|
||||
def test_is_static_method():
|
||||
"""Ensure Cursor.is_static_method works."""
|
||||
|
||||
source = 'class X { static void foo(); void bar(); };'
|
||||
tu = get_tu(source, lang='cpp')
|
||||
|
||||
cls = get_cursor(tu, 'X')
|
||||
foo = get_cursor(tu, 'foo')
|
||||
bar = get_cursor(tu, 'bar')
|
||||
assert cls is not None
|
||||
assert foo is not None
|
||||
assert bar is not None
|
||||
|
||||
assert foo.is_static_method()
|
||||
assert not bar.is_static_method()
|
||||
|
||||
def test_underlying_type():
|
||||
tu = get_tu('typedef int foo;')
|
||||
typedef = get_cursor(tu, 'foo')
|
||||
|
|
Loading…
Reference in New Issue