hdl.ast: make Signal(name=) a keyword-only argument.
authorwhitequark <cz@m-labs.hk>
Mon, 23 Sep 2019 11:08:43 +0000 (11:08 +0000)
committerwhitequark <cz@m-labs.hk>
Mon, 23 Sep 2019 11:08:43 +0000 (11:08 +0000)
Almost no code would specify Signal(_, name) as a positional argument
on purpose, but forgetting parens and accidentally placing signedness
into the name position is so common that we had a test for it.

nmigen/hdl/ast.py
nmigen/test/test_hdl_ast.py

index 6d891b326d110e6b734c260235563511fc41af97..d7ae0924cea246df028d7106d52612629c46b1ed 100644 (file)
@@ -729,7 +729,7 @@ class Signal(Value, DUID):
     attrs : dict
     """
 
-    def __init__(self, shape=None, name=None, *, reset=0, reset_less=False, min=None, max=None,
+    def __init__(self, shape=None, *, name=None, reset=0, reset_less=False, min=None, max=None,
                  attrs=None, decoder=None, src_loc_at=0):
         super().__init__(src_loc_at=src_loc_at)
 
index 9f2fb410d425c3cf96a19ac48303d0967de446e2..1029c822276b0ace6a2c03f3263fe2f1d0e394d5 100644 (file)
@@ -582,12 +582,6 @@ class SignalTestCase(FHDLTestCase):
         s2 = Signal(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):
         s1 = Signal(4, reset=0b111, reset_less=True)
         self.assertEqual(s1.reset, 0b111)