diff options
author | Gregory Szorc <gregory.szorc@gmail.com> | 2012-06-09 16:21:34 +0000 |
---|---|---|
committer | Gregory Szorc <gregory.szorc@gmail.com> | 2012-06-09 16:21:34 +0000 |
commit | 531880af77b9121e1e39f8bc2bf6958d09c9e2bd (patch) | |
tree | 47e0fafea58b5bc437f809a80fad51630d14f364 /clang | |
parent | df97aa16283ac6e36dc379b8a4dd0a41d7f39841 (diff) | |
download | bcm5719-llvm-531880af77b9121e1e39f8bc2bf6958d09c9e2bd.tar.gz bcm5719-llvm-531880af77b9121e1e39f8bc2bf6958d09c9e2bd.zip |
[clang.py] Implement Cursor.is_static_method
llvm-svn: 158277
Diffstat (limited to 'clang')
-rw-r--r-- | clang/bindings/python/clang/cindex.py | 10 | ||||
-rw-r--r-- | clang/bindings/python/tests/cindex/test_cursor.py | 16 |
2 files changed, 26 insertions, 0 deletions
diff --git a/clang/bindings/python/clang/cindex.py b/clang/bindings/python/clang/cindex.py index 257b7aeb19f..7a637112a25 100644 --- a/clang/bindings/python/clang/cindex.py +++ b/clang/bindings/python/clang/cindex.py @@ -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 diff --git a/clang/bindings/python/tests/cindex/test_cursor.py b/clang/bindings/python/tests/cindex/test_cursor.py index 9a37d2ff1b3..979838b21c7 100644 --- a/clang/bindings/python/tests/cindex/test_cursor.py +++ b/clang/bindings/python/tests/cindex/test_cursor.py @@ -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') |