Skip to content

Commit c175ac8

Browse files
committed
hdl.dsl: bring new naming rules to submodules
1 parent 6c08d6a commit c175ac8

File tree

2 files changed

+11
-0
lines changed

2 files changed

+11
-0
lines changed

amaranth/hdl/_dsl.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -611,6 +611,7 @@ def _add_submodule(self, submodule, name=None, src_loc=None):
611611
if name == None:
612612
self._anon_submodules.append((submodule, src_loc))
613613
else:
614+
validate_name(name, "Submodule name")
614615
if name in self._named_submodules:
615616
raise NameError(f"Submodule named '{name}' already exists")
616617
self._named_submodules[name] = (submodule, src_loc)

tests/test_hdl_dsl.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -879,6 +879,16 @@ def test_submodule_named_index(self):
879879
self.assertEqual(m1._named_submodules.keys(), {"foo"})
880880
self.assertEqual(m1._named_submodules["foo"][0], m2)
881881

882+
def test_submodule_wrong_name(self):
883+
m1 = Module()
884+
m2 = Module()
885+
with self.assertRaisesRegex(TypeError,
886+
r"^Submodule name must be a string, not 1$"):
887+
m1.submodules[1] = m2
888+
with self.assertRaisesRegex(NameError,
889+
r"^Submodule name must be a non-empty string$"):
890+
m1.submodules[""] = m2
891+
882892
def test_submodule_wrong(self):
883893
m = Module()
884894
with self.assertRaisesRegex(TypeError,

0 commit comments

Comments
 (0)