llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-clang Author: Jannick Kremer (DeinAlptraum) <details> <summary>Changes</summary> This covers the `File` interface changes added by #<!-- -->120590 --- Full diff: https://github.com/llvm/llvm-project/pull/130383.diff 3 Files Affected: - (modified) clang/bindings/python/clang/cindex.py (+7) - (modified) clang/bindings/python/tests/cindex/test_file.py (+15) - (modified) clang/docs/ReleaseNotes.rst (+1) ``````````diff diff --git a/clang/bindings/python/clang/cindex.py b/clang/bindings/python/clang/cindex.py index 879a0a3c5c58c..bc8fb7c27fdac 100644 --- a/clang/bindings/python/clang/cindex.py +++ b/clang/bindings/python/clang/cindex.py @@ -3470,6 +3470,12 @@ def __str__(self): def __repr__(self): return "<File: %s>" % (self.name) + def __eq__(self, other) -> bool: + return isinstance(other, File) and bool(conf.lib.clang_File_isEqual(self, other)) + + def __ne__(self, other) -> bool: + return not self.__eq__(other) + @staticmethod def from_result(res, arg): assert isinstance(res, c_object_p) @@ -3956,6 +3962,7 @@ def set_property(self, property, value): ("clang_getFile", [TranslationUnit, c_interop_string], c_object_p), ("clang_getFileName", [File], _CXString), ("clang_getFileTime", [File], c_uint), + ("clang_File_isEqual", [File, File], bool), ("clang_getIBOutletCollectionType", [Cursor], Type), ("clang_getIncludedFile", [Cursor], c_object_p), ( diff --git a/clang/bindings/python/tests/cindex/test_file.py b/clang/bindings/python/tests/cindex/test_file.py index 14a3084ee2b47..0e8431054e951 100644 --- a/clang/bindings/python/tests/cindex/test_file.py +++ b/clang/bindings/python/tests/cindex/test_file.py @@ -16,3 +16,18 @@ def test_file(self): self.assertEqual(str(file), "t.c") self.assertEqual(file.name, "t.c") self.assertEqual(repr(file), "<File: t.c>") + + def test_file_eq(self): + index = Index.create() + tu = index.parse( + "t.c", + unsaved_files=[ + ("t.c", "int a = 729;"), + ("s.c", "int a = 729;"), + ], + ) + file1 = File.from_name(tu, "t.c") + file2 = File.from_name(tu, "s.c") + self.assertEqual(file1, file1) + self.assertNotEqual(file1, file2) + self.assertNotEqual(file1, "t.c") diff --git a/clang/docs/ReleaseNotes.rst b/clang/docs/ReleaseNotes.rst index a25808e36bd51..a2f10f20ce716 100644 --- a/clang/docs/ReleaseNotes.rst +++ b/clang/docs/ReleaseNotes.rst @@ -444,6 +444,7 @@ Python Binding Changes ---------------------- - Added ``Type.get_methods``, a binding for ``clang_visitCXXMethods``, which allows visiting the methods of a class. +- Add equality comparison operators for ``File`` type OpenMP Support -------------- `````````` </details> https://github.com/llvm/llvm-project/pull/130383 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits