hdl.dsl: don't allow inheriting from Module.
authorwhitequark <whitequark@whitequark.org>
Sat, 1 Feb 2020 02:15:45 +0000 (02:15 +0000)
committerwhitequark <whitequark@whitequark.org>
Sat, 1 Feb 2020 02:15:45 +0000 (02:15 +0000)
commit6fd7cbad0d6c6da0b0327a68aed48ca3fc4b236b
tree7f31220a8a03d3545101c70ff13906bf8cce2cb2
parentafece150016ec928b30c569515a321f65f81155b
hdl.dsl: don't allow inheriting from Module.

`Module` is an object with a lot of complex and sometimes fragile
behavior that overrides Python attribute accessors and so on.
To prevent user designs from breaking when it is changed, it is not
supposed to be inherited from (unlike in Migen), but rather returned
from the elaborate() method. This commit makes sure it will not be
inherited from by accident (most likely by users familiar with
Migen).

Fixes #286.
nmigen/hdl/dsl.py
nmigen/test/test_hdl_dsl.py