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>
Thu, 30 Sep 2021 12:50:18 +0000 (13:50 +0100)
commitd15841126c390f5981651872e0eb5d5bf0e7b28f
treeef40324d59fb3b6e0c8d0beaeb9502dec0baac76
parent50b7850cbb7b614afe7b8936d656c5939a74ecf9
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