raise SyntaxError("Instead of inheriting from `Module`, inherit from `Elaboratable` "
"and return a `Module` from the `elaborate(self, platform)` method")
- def __init__(self, _astType=None):
+ def __init__(self, _astTypeFn=None):
_ModuleBuilderRoot.__init__(self, self, depth=0)
self.submodules = _ModuleBuilderSubmodules(self)
self.domains = _ModuleBuilderDomainSet(self)
# to complete the Type 1 (ast.*) nmigen language construct abstraction
# from Type 2 (Module - this class) Module must be told what AST type
# it may cast m.If/Elif conditions and m.Switch
- self._astType = _astType or Value
+ self._astTypeCast = _astTypeFn or Value.cast
def _check_context(self, construct, context):
if self._ctrl_context != context:
return data
def _check_signed_cond(self, cond):
- cond = self._astType.cast(cond)
+ cond = self._astTypeCast(cond)
width, signed = cond.shape()
if signed:
warnings.warn("Signed values in If/Elif conditions usually result from inverting "
def Switch(self, test):
self._check_context("Switch", context=None)
switch_data = self._set_ctrl("Switch", {
- "test": self._astType.cast(test),
+ "test": self._astTypeCast(test),
"cases": OrderedDict(),
"src_loc": tracer.get_src_loc(src_loc_at=1),
"case_src_locs": {},