Improve error message for `index` (#457)
authorMatt Renaud <matt@m-renaud.com>
Fri, 22 Dec 2017 17:10:30 +0000 (09:10 -0800)
committerDavid Feuer <David.Feuer@gmail.com>
Fri, 22 Dec 2017 17:10:30 +0000 (12:10 -0500)
* Improve error message for `index`

When the index is out of bounds mention which function is causing the error. We include the index `i` in the error message because it may be useful in debugging (-1 vs large number could narrow down where to look).

This was originally mentioned in https://github.com/haskell/containers/issues/347.

* Specify `Data.Sequence.index` in error message.

Data/Sequence/Internal.hs

index 28b6d76..2effc46 100644 (file)
@@ -1883,7 +1883,8 @@ index (Seq xs) i
   -- See note on unsigned arithmetic in splitAt
   | fromIntegral i < (fromIntegral (size xs) :: Word) = case lookupTree i xs of
                 Place _ (Elem x) -> x
-  | otherwise   = error "index out of bounds"
+  | otherwise   = 
+      error $ "index out of bounds in call to: Data.Sequence.index " ++ show i
 
 -- | /O(log(min(i,n-i)))/. The element at the specified position,
 -- counting from 0. If the specified position is negative or at