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)
|
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):
|
def get_definition(self):
|
||||||
"""
|
"""
|
||||||
If the cursor is a reference to a declaration or a declaration of
|
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.argtypes = [Cursor]
|
||||||
Cursor_is_def.restype = bool
|
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 = lib.clang_getCursorDefinition
|
||||||
Cursor_def.argtypes = [Cursor]
|
Cursor_def.argtypes = [Cursor]
|
||||||
Cursor_def.restype = Cursor
|
Cursor_def.restype = Cursor
|
||||||
|
|
|
@ -102,6 +102,22 @@ def test_canonical():
|
||||||
assert len(cursors) == 3
|
assert len(cursors) == 3
|
||||||
assert cursors[1].canonical == cursors[2].canonical
|
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():
|
def test_underlying_type():
|
||||||
tu = get_tu('typedef int foo;')
|
tu = get_tu('typedef int foo;')
|
||||||
typedef = get_cursor(tu, 'foo')
|
typedef = get_cursor(tu, 'foo')
|
||||||
|
|
Loading…
Reference in New Issue