The new method is a wrapper of CXXMethodDecl::isMoveAssignmentOperator and
can be used to recognized move-assignment operators in libclang.
An export for the function, together with its documentation, was added to
"clang/include/clang-c/Index.h" with an implementation provided in
"clang/tools/libclang/CIndex.cpp". The implementation was based on
similar clang_CXXMethod.* implementations, following the same
structure but calling CXXMethodDecl::isMoveAssignmentOperator for its
main logic.
The new symbol was further added to "clang/tools/libclang/libclang.map"
to be exported, under the LLVM16 tag.
"clang/tools/c-index-test/c-index-test.c" was modified to print a
specific tag, "(move-assignment operator)", for cursors that are
recognized by clang_CXXMethod_isMoveAssignmentOperator.
A new regression test file,
"clang/test/Index/move-assignment-operator.cpp", was added to ensure
whether the correct constructs were recognized or not by the new function.
The "clang/test/Index/get-cursor.cpp" regression test file was updated
as it was affected by the new "(move-assignment operator)" tag.
A binding for the new function was added to libclang's python's
bindings, in "clang/bindings/python/clang/cindex.py", adding a new
method for Cursor, is_move_assignment_operator_method.
An accompanying test was added to
clang/bindings/python/tests/cindex/test_cursor.py, testing the new
function with the same methodology as the corresponding libclang test.
The current release note, clang/docs/ReleaseNotes.rst, was modified to
report the new addition under the "libclang" section.