add Value.considered_bool() function
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Thu, 30 Sep 2021 12:50:18 +0000 (13:50 +0100)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Sat, 2 Oct 2021 14:59:25 +0000 (15:59 +0100)
commit0da70ef8be22d162c4d0cea350288c47b3492cf1
tree8d1ce6beeb7d5073d6437d4f2099a231854e22d1
parent4278652edae7ddf07a2ca2471508e9f6964b2e51
add Value.considered_bool() function

testing len(Value) == 1 is one of the rare places that makes an assumption
between Type 1 (Ast) low-level nmigen language constructs and
between Type 2 (dsl.Module) high-level nmigen language constructs.

a "Value.considered_bool()" function de-couples that assumption and allows
for a proper separation between Type 1 and Type 2 nmigen language
constructs, providing a clean design where Liskov Substitution Principle
may successfully be applied at the Type I (ast) level
nmigen/compat/fhdl/structure.py
nmigen/hdl/ast.py
nmigen/hdl/dsl.py