summaryrefslogtreecommitdiffstats
path: root/clang
diff options
context:
space:
mode:
authorBenjamin Kramer <benny.kra@googlemail.com>2010-03-06 15:38:03 +0000
committerBenjamin Kramer <benny.kra@googlemail.com>2010-03-06 15:38:03 +0000
commitaaff78ec9c820d913c656587221703a9ba178a5c (patch)
tree8f344be9f5b00581be572e6378a3d70fde768324 /clang
parentff90813e42d0bdb18c21a9d791ef7d704c88c419 (diff)
downloadbcm5719-llvm-aaff78ec9c820d913c656587221703a9ba178a5c.tar.gz
bcm5719-llvm-aaff78ec9c820d913c656587221703a9ba178a5c.zip
Rename the new Iterator objects and raise an assertion instead of returning invalid objects when the key is out of range.
llvm-svn: 97881
Diffstat (limited to 'clang')
-rw-r--r--clang/bindings/python/clang/cindex.py22
1 files changed, 12 insertions, 10 deletions
diff --git a/clang/bindings/python/clang/cindex.py b/clang/bindings/python/clang/cindex.py
index 4a14b880a15..f4409aec332 100644
--- a/clang/bindings/python/clang/cindex.py
+++ b/clang/bindings/python/clang/cindex.py
@@ -207,7 +207,7 @@ class Diagnostic(object):
@property
def ranges(self):
- class Ranges:
+ class RangeIterator:
def __init__(self, diag):
self.diag = diag
@@ -217,11 +217,11 @@ class Diagnostic(object):
def __getitem__(self, key):
return _clang_getDiagnosticRange(self.diag, key)
- return Ranges(self.ptr)
+ return RangeIterator(self.ptr)
@property
def fixits(self):
- class FixIts:
+ class FixItIterator:
def __init__(self, diag):
self.diag = diag
@@ -231,10 +231,12 @@ class Diagnostic(object):
def __getitem__(self, key):
range = SourceRange()
value = _clang_getDiagnosticFixIt(self.diag, key, byref(range))
+ if len(value) == 0:
+ raise IndexError
return FixIt(range, value)
- return FixIts(self.ptr)
+ return FixItIterator(self.ptr)
def __repr__(self):
return "<Diagnostic severity %r, location %r, spelling %r>" % (
@@ -581,9 +583,6 @@ class _CXUnsavedFile(Structure):
## Diagnostic Conversion ##
-# Diagnostic objects are temporary, we must extract all the information from the
-# diagnostic object when it is passed to the callback.
-
_clang_getNumDiagnostics = lib.clang_getNumDiagnostics
_clang_getNumDiagnostics.argtypes = [c_object_p]
_clang_getNumDiagnostics.restype = c_uint
@@ -730,7 +729,7 @@ class TranslationUnit(ClangObject):
"""
Return an iterable (and indexable) object containing the diagnostics.
"""
- class Diags:
+ class DiagIterator:
def __init__(self, tu):
self.tu = tu
@@ -738,9 +737,12 @@ class TranslationUnit(ClangObject):
return int(_clang_getNumDiagnostics(self.tu))
def __getitem__(self, key):
- return Diagnostic(_clang_getDiagnostic(self.tu, key))
+ diag = _clang_getDiagnostic(self.tu, key)
+ if not diag:
+ raise IndexError
+ return Diagnostic(diag)
- return Diags(self)
+ return DiagIterator(self)
class File(ClangObject):
"""
OpenPOWER on IntegriCloud