whitespace cleanup and provide warning not to use Type (2) dsl.Module nmigen
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Wed, 29 Sep 2021 15:48:55 +0000 (16:48 +0100)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Sat, 2 Oct 2021 14:58:16 +0000 (15:58 +0100)
language constructs in overrides of Type (1) AST language constructs

nmigen/hdl/ast.py

index 0a4d75b7f095a6fb5ce7aa6db4e739ca5237559e..9d0cbc2eb1d8ced4ff2b8177b1cef317ca733d62 100644 (file)
@@ -151,20 +151,22 @@ class Value(metaclass=ABCMeta):
         super().__init__()
         self.src_loc = tracer.get_src_loc(1 + src_loc_at)
 
+    # These are redirection of "Type (1) - AST " nmigen language constructs
+    # If over-ridden to provide advanced behaviour, the implementation
+    # *MUST NOT* use "Type (2) - dsl.Module" nmigen language constructs
+    # (m.If, m.Else, m.Switch, m.FSM): it creates complications in dsl.Module.
+
     def __Repl__(self, count, *, src_loc_at=0):
         return _InternalRepl(self, count, src_loc_at=src_loc_at)
-
     def __Cat__(self, *args, src_loc_at=0):
         return _InternalCat(self, *args, src_loc_at=src_loc_at)
-
     def __Mux__(self, val1, val0):
         return _InternalMux(self, val1, val0)
-
-    def __Switch__(self, cases, *, src_loc=None, src_loc_at=0, case_src_locs={}):
+    def __Switch__(self, cases, *, src_loc=None, src_loc_at=0,
+                                   case_src_locs={}):
         return _InternalSwitch(self, cases, src_loc=src_loc,
                                src_loc_at=src_loc_at,
                                case_src_locs=case_src_locs)
-
     def __Assign__(self, rhs, *, src_loc_at=0):
         return _InternalAssign(self, rhs, src_loc_at=src_loc_at)