hdl.ast: clarify exception message for out of bounds indexing.
authorwhitequark <whitequark@whitequark.org>
Thu, 27 Aug 2020 01:14:05 +0000 (01:14 +0000)
committerwhitequark <whitequark@whitequark.org>
Thu, 27 Aug 2020 01:14:05 +0000 (01:14 +0000)
Fixes #488.

nmigen/hdl/ast.py
tests/test_hdl_ast.py

index 7d2efef1c94f5ab76851c9dc53beebbdfa4f07c7..4a01bde32b2da347d153fd3804ee629e68c7fcbf 100644 (file)
@@ -254,7 +254,7 @@ class Value(metaclass=ABCMeta):
         n = len(self)
         if isinstance(key, int):
             if key not in range(-n, n):
-                raise IndexError("Cannot index {} bits into {}-bit value".format(key, n))
+                raise IndexError(f"Index {key} is out of bounds for a {n}-bit value")
             if key < 0:
                 key += n
             return Slice(self, key, key + 1)
index f14c07b37c02c4db8a8fd0fdacca59bebdda98de..e6dfc49e081f0cdf5d79fc932d1d6e3ff0174116 100644 (file)
@@ -187,7 +187,7 @@ class ValueTestCase(FHDLTestCase):
         self.assertEqual(s2.start, 3)
         self.assertEqual(s2.stop, 4)
         with self.assertRaisesRegex(IndexError,
-                r"^Cannot index 5 bits into 4-bit value$"):
+                r"^Index 5 is out of bounds for a 4-bit value$"):
             Const(10)[5]
 
     def test_getitem_slice(self):