@@ -968,12 +968,31 @@ def test_origins(self):
968968 self .assertIs (frag .origins [1 ], elab2 )
969969 self .assertIs (frag .origins [2 ], m )
970970
971+ def test_origins_transformed_elaboratable (self ):
972+ renamed = DomainRenamer ("sync" )(elab1 := ElaboratesTo (elab2 := ElaboratesTo (m := Module ())))
973+ frag = Fragment .get (renamed , platform = None )
974+ self .assertEqual (len (frag .origins ), 4 )
975+ self .assertIsInstance (frag .origins , tuple )
976+ self .assertIs (frag .origins [0 ], renamed )
977+ self .assertIs (frag .origins [1 ], elab1 )
978+ self .assertIs (frag .origins [2 ], elab2 )
979+ self .assertIs (frag .origins [3 ], m )
980+
981+ renamed_nested = ElaboratesTo (elab2 := ElaboratesTo (renamed := DomainRenamer ("sync" )(m := Module ())))
982+ frag = Fragment .get (renamed_nested , platform = None )
983+ self .assertEqual (len (frag .origins ), 4 )
984+ self .assertIsInstance (frag .origins , tuple )
985+ self .assertIs (frag .origins [0 ], renamed_nested )
986+ self .assertIs (frag .origins [1 ], elab2 )
987+ self .assertIs (frag .origins [2 ], renamed )
988+ self .assertIs (frag .origins [3 ], m )
989+
971990 def test_origins_disable (self ):
972991 inst = Instance ("test" )
973992 del inst .origins
974993 elab = ElaboratesTo (inst )
975994 frag = Fragment .get (elab , platform = None )
976- self .assertFalse (hasattr (frag , "_origins " ))
995+ self .assertFalse (hasattr (frag , "origins " ))
977996
978997
979998class IOBufferTestCase (FHDLTestCase ):
0 commit comments