[cfe-commits] r97881 - /cfe/trunk/bindings/python/clang/cindex.py

Benjamin Kramer benny.kra at googlemail.com
Sat Mar 6 07:38:03 PST 2010


Author: d0k
Date: Sat Mar  6 09:38:03 2010
New Revision: 97881

URL: http://llvm.org/viewvc/llvm-project?rev=97881&view=rev
Log:
Rename the new Iterator objects and raise an assertion instead of returning invalid objects when the key is out of range.

Modified:
    cfe/trunk/bindings/python/clang/cindex.py

Modified: cfe/trunk/bindings/python/clang/cindex.py
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/bindings/python/clang/cindex.py?rev=97881&r1=97880&r2=97881&view=diff
==============================================================================
--- cfe/trunk/bindings/python/clang/cindex.py (original)
+++ cfe/trunk/bindings/python/clang/cindex.py Sat Mar  6 09:38:03 2010
@@ -207,7 +207,7 @@
 
     @property
     def ranges(self):
-        class Ranges:
+        class RangeIterator:
             def __init__(self, diag):
                 self.diag = diag
 
@@ -217,11 +217,11 @@
             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 @@
             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 @@
 
 ## 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 @@
         """
         Return an iterable (and indexable) object containing the diagnostics.
         """
-        class Diags:
+        class DiagIterator:
             def __init__(self, tu):
                 self.tu = tu
 
@@ -738,9 +737,12 @@
                 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):
     """





More information about the cfe-commits mailing list