hdl.ast: handle a common typo, such as Signal(1, True).
This commit is contained in:
parent
c9c9307a5e
commit
a74cacdc69
|
@ -581,6 +581,8 @@ class Signal(Value, DUID):
|
||||||
attrs=None, decoder=None, src_loc_at=0):
|
attrs=None, decoder=None, src_loc_at=0):
|
||||||
super().__init__(src_loc_at=src_loc_at)
|
super().__init__(src_loc_at=src_loc_at)
|
||||||
|
|
||||||
|
if name is not None and not isinstance(name, str):
|
||||||
|
raise TypeError("Name must be a string, not '{!r}'".format(name))
|
||||||
self.name = name or tracer.get_var_name(depth=2 + src_loc_at, default="$signal")
|
self.name = name or tracer.get_var_name(depth=2 + src_loc_at, default="$signal")
|
||||||
|
|
||||||
if shape is None:
|
if shape is None:
|
||||||
|
|
|
@ -429,6 +429,12 @@ class SignalTestCase(FHDLTestCase):
|
||||||
s2 = Signal(name="sig")
|
s2 = Signal(name="sig")
|
||||||
self.assertEqual(s2.name, "sig")
|
self.assertEqual(s2.name, "sig")
|
||||||
|
|
||||||
|
def test_name_bad(self):
|
||||||
|
with self.assertRaises(TypeError,
|
||||||
|
msg="Name must be a string, not 'True'"):
|
||||||
|
# A common typo: forgetting to put parens around width and signedness
|
||||||
|
Signal(1, True)
|
||||||
|
|
||||||
def test_reset(self):
|
def test_reset(self):
|
||||||
s1 = Signal(4, reset=0b111, reset_less=True)
|
s1 = Signal(4, reset=0b111, reset_less=True)
|
||||||
self.assertEqual(s1.reset, 0b111)
|
self.assertEqual(s1.reset, 0b111)
|
||||||
|
|
Loading…
Reference in a new issue