[clang] [libclang/python] Add typing annotations for the Cursor class (PR #138103)
Jannick Kremer via cfe-commits
cfe-commits at lists.llvm.org
Thu May 15 23:08:56 PDT 2025
================
@@ -1763,19 +1799,22 @@ def get_usr(self):
another translation unit."""
return _CXString.from_result(conf.lib.clang_getCursorUSR(self))
- def get_included_file(self):
+ @cursor_null_guard
+ def get_included_file(self) -> File:
"""Returns the File that is included by the current inclusion cursor."""
assert self.kind == CursorKind.INCLUSION_DIRECTIVE
return File.from_result(conf.lib.clang_getIncludedFile(self), self)
@property
- def kind(self):
+ @cursor_null_guard
----------------
DeinAlptraum wrote:
The decorator isn't removed. You can chain decorators in Python as
```python
@decorator2
@decorator1
def myfunc(...):
```
where the bottom decorator (in this case `cursor_null_guard`) wraps the function first, followed by the top decorator (`property`)
`kind` is used extensively as property in the tests, see for example in [test_cursor.py](https://github.com/llvm/llvm-project/blob/main/clang/bindings/python/tests/cindex/test_cursor.py) about 50 times
https://github.com/llvm/llvm-project/pull/138103
More information about the cfe-commits
mailing list