From 08e335a6480652848ff006cdd0534f26307803b7 Mon Sep 17 00:00:00 2001 From: Saleem Abdulrasool Date: Tue, 27 Oct 2015 15:50:22 +0000 Subject: Index: expose is_mutable_field Expose isMutable via libClang and python bindings. Patch by Jonathan B Coe! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@251410 91177308-0d34-0410-b5e6-96231b3b80d8 --- bindings/python/clang/cindex.py | 10 ++++++++++ bindings/python/tests/cindex/test_cursor.py | 15 +++++++++++++++ 2 files changed, 25 insertions(+) (limited to 'bindings') diff --git a/bindings/python/clang/cindex.py b/bindings/python/clang/cindex.py index 62b8596dea..49b2fd873f 100644 --- a/bindings/python/clang/cindex.py +++ b/bindings/python/clang/cindex.py @@ -1170,6 +1170,12 @@ class Cursor(Structure): """ return conf.lib.clang_CXXMethod_isConst(self) + def is_mutable_field(self): + """Returns True if the cursor refers to a C++ field that is declared + 'mutable'. + """ + return conf.lib.clang_CXXField_isMutable(self) + def is_pure_virtual_method(self): """Returns True if the cursor refers to a C++ member function or member function template that is declared pure virtual. @@ -2897,6 +2903,10 @@ functionList = [ [Index, c_char_p], c_object_p), + ("clang_CXXField_isMutable", + [Cursor], + bool), + ("clang_CXXMethod_isConst", [Cursor], bool), diff --git a/bindings/python/tests/cindex/test_cursor.py b/bindings/python/tests/cindex/test_cursor.py index 68fc8fa4ac..c5ea50516a 100644 --- a/bindings/python/tests/cindex/test_cursor.py +++ b/bindings/python/tests/cindex/test_cursor.py @@ -112,6 +112,21 @@ def test_is_const_method(): assert foo.is_const_method() assert not bar.is_const_method() +def test_is_mutable_field(): + """Ensure Cursor.is_mutable_field works.""" + source = 'class X { int x_; mutable int y_; };' + tu = get_tu(source, lang='cpp') + + cls = get_cursor(tu, 'X') + x_ = get_cursor(tu, 'x_') + y_ = get_cursor(tu, 'y_') + assert cls is not None + assert x_ is not None + assert y_ is not None + + assert not x_.is_mutable_field() + assert y_.is_mutable_field() + def test_is_static_method(): """Ensure Cursor.is_static_method works.""" -- cgit v1.2.3