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)
commita61c1834ea6d26b6761ac6ccb1c0db8f01e2b94b
tree7f31220a8a03d3545101c70ff13906bf8cce2cb2
parent8835e1003efae2f266243833e79db259280f5f37
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