summaryrefslogtreecommitdiffstats
path: root/clang/bindings/python
diff options
context:
space:
mode:
authorTobias Grosser <grosser@fim.uni-passau.de>2012-02-05 11:42:03 +0000
committerTobias Grosser <grosser@fim.uni-passau.de>2012-02-05 11:42:03 +0000
commitebb0ae82a21cf238a581b35c8fd85540cf41cac0 (patch)
tree60b83c1eaea0aae5add931a9febe3caee50b3867 /clang/bindings/python
parent9fc76f2cbf72697ddaf2a463749d19e2be5d3293 (diff)
downloadbcm5719-llvm-ebb0ae82a21cf238a581b35c8fd85540cf41cac0.tar.gz
bcm5719-llvm-ebb0ae82a21cf238a581b35c8fd85540cf41cac0.zip
[clang.py] Implement Cursor.hash
Contributed by: Gregory Szorc <gregory.szorc@gmail.com> llvm-svn: 149826
Diffstat (limited to 'clang/bindings/python')
-rw-r--r--clang/bindings/python/clang/cindex.py12
-rw-r--r--clang/bindings/python/tests/cindex/test_cursor.py1
2 files changed, 13 insertions, 0 deletions
diff --git a/clang/bindings/python/clang/cindex.py b/clang/bindings/python/clang/cindex.py
index e385ca2893e..4c9f96ddb38 100644
--- a/clang/bindings/python/clang/cindex.py
+++ b/clang/bindings/python/clang/cindex.py
@@ -969,6 +969,14 @@ class Cursor(Structure):
self._type = Cursor_type(self)
return self._type
+ @property
+ def hash(self):
+ """Returns a hash of the cursor as an int."""
+ if not hasattr(self, '_hash'):
+ self._hash = Cursor_hash(self)
+
+ return self._hash
+
def get_children(self):
"""Return an iterator for accessing the children of this cursor."""
@@ -1735,6 +1743,10 @@ Cursor_eq = lib.clang_equalCursors
Cursor_eq.argtypes = [Cursor, Cursor]
Cursor_eq.restype = c_uint
+Cursor_hash = lib.clang_hashCursor
+Cursor_hash.argtypes = [Cursor]
+Cursor_hash.restype = c_uint
+
Cursor_spelling = lib.clang_getCursorSpelling
Cursor_spelling.argtypes = [Cursor]
Cursor_spelling.restype = _CXString
diff --git a/clang/bindings/python/tests/cindex/test_cursor.py b/clang/bindings/python/tests/cindex/test_cursor.py
index 3dde891a9c2..efcede90154 100644
--- a/clang/bindings/python/tests/cindex/test_cursor.py
+++ b/clang/bindings/python/tests/cindex/test_cursor.py
@@ -42,6 +42,7 @@ def test_get_children():
assert tu_nodes[0].location.file.name == 't.c'
assert tu_nodes[0].location.line == 4
assert tu_nodes[0].location.column == 8
+ assert tu_nodes[0].hash > 0
s0_nodes = list(tu_nodes[0].get_children())
assert len(s0_nodes) == 2
OpenPOWER on IntegriCloud