hdl.dsl: allow adding submodules with computed name, like with domains.

This commit is contained in:
whitequark 2019-06-03 02:22:55 +00:00
parent b64a31255c
commit b8a61edc2f
2 changed files with 9 additions and 0 deletions

View file

@ -83,6 +83,9 @@ class _ModuleBuilderSubmodules:
def __setattr__(self, name, submodule):
self._builder._add_submodule(submodule, name)
def __setitem__(self, name, value):
return self.__setattr__(name, value)
class _ModuleBuilderDomainSet:
def __init__(self, builder):

View file

@ -505,6 +505,12 @@ class DSLTestCase(FHDLTestCase):
m1.submodules.foo = m2
self.assertEqual(m1._submodules, [(m2, "foo")])
def test_submodule_named_index(self):
m1 = Module()
m2 = Module()
m1.submodules["foo"] = m2
self.assertEqual(m1._submodules, [(m2, "foo")])
def test_submodule_wrong(self):
m = Module()
with self.assertRaises(TypeError,