[clang] [libclang] Add API to query more information about base classes. (PR #120300)

Jannick Kremer via cfe-commits cfe-commits at lists.llvm.org
Fri Dec 20 12:37:20 PST 2024


================
@@ -2663,6 +2671,21 @@ def visitor(field, children):
         conf.lib.clang_Type_visitFields(self, fields_visit_callback(visitor), fields)
         return iter(fields)
 
+    def get_bases(self):
+        """Return an iterator for accessing the base classes of this type."""
+
+        def visitor(field, children):
+            assert field != conf.lib.clang_getNullCursor()
+
+            # Create reference to TU so it isn't GC'd before Cursor.
+            field._tu = self._tu
+            fields.append(field)
+            return 1  # continue
+
+        fields: list[Cursor] = []
+        conf.lib.clang_visitCXXBaseClasses(self, fields_visit_callback(visitor), fields)
----------------
DeinAlptraum wrote:

Hm something like `base_visit_callback`?
But I also just noticed that the paramter in `clang_visitCXXBaseClasses` is of type `CXFieldVisitor`, so I guess the current name is fair after all... up to you I would say!

https://github.com/llvm/llvm-project/pull/120300


More information about the cfe-commits mailing list