diff options
| author | Benjamin Kramer <benny.kra@googlemail.com> | 2010-03-06 15:38:03 +0000 |
|---|---|---|
| committer | Benjamin Kramer <benny.kra@googlemail.com> | 2010-03-06 15:38:03 +0000 |
| commit | aaff78ec9c820d913c656587221703a9ba178a5c (patch) | |
| tree | 8f344be9f5b00581be572e6378a3d70fde768324 /clang | |
| parent | ff90813e42d0bdb18c21a9d791ef7d704c88c419 (diff) | |
| download | bcm5719-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.py | 22 |
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): """ |

