Skip to content

Commit d041ff3

Browse files
committed
hdl.dsl: bring new naming rules to submodules
1 parent 555f829 commit d041ff3

File tree

2 files changed

+11
-0
lines changed

2 files changed

+11
-0
lines changed

amaranth/hdl/_dsl.py

+1
Original file line numberDiff line numberDiff line change
@@ -615,6 +615,7 @@ def _add_submodule(self, submodule, name=None, src_loc=None):
615615
if name == None:
616616
self._anon_submodules.append((submodule, src_loc))
617617
else:
618+
validate_name(name, "Submodule name")
618619
if name in self._named_submodules:
619620
raise NameError(f"Submodule named '{name}' already exists")
620621
self._named_submodules[name] = (submodule, src_loc)

tests/test_hdl_dsl.py

+10
Original file line numberDiff line numberDiff line change
@@ -900,6 +900,16 @@ def test_submodule_named_index(self):
900900
self.assertEqual(m1._named_submodules.keys(), {"foo"})
901901
self.assertEqual(m1._named_submodules["foo"][0], m2)
902902

903+
def test_submodule_wrong_name(self):
904+
m1 = Module()
905+
m2 = Module()
906+
with self.assertRaisesRegex(TypeError,
907+
r"^Submodule name must be a string, not 1$"):
908+
m1.submodules[1] = m2
909+
with self.assertRaisesRegex(NameError,
910+
r"^Submodule name must be a non-empty string$"):
911+
m1.submodules[""] = m2
912+
903913
def test_submodule_wrong(self):
904914
m = Module()
905915
with self.assertRaisesRegex(TypeError,

0 commit comments

Comments
 (0)