@@ -1079,12 +1079,31 @@ def test_origins(self):
10791079 self .assertIs (frag .origins [1 ], elab2 )
10801080 self .assertIs (frag .origins [2 ], m )
10811081
1082+ def test_origins_transformed_elaboratable (self ):
1083+ renamed = DomainRenamer ("sync" )(elab1 := ElaboratesTo (elab2 := ElaboratesTo (m := Module ())))
1084+ frag = Fragment .get (renamed , platform = None )
1085+ self .assertEqual (len (frag .origins ), 4 )
1086+ self .assertIsInstance (frag .origins , tuple )
1087+ self .assertIs (frag .origins [0 ], renamed )
1088+ self .assertIs (frag .origins [1 ], elab1 )
1089+ self .assertIs (frag .origins [2 ], elab2 )
1090+ self .assertIs (frag .origins [3 ], m )
1091+
1092+ renamed_nested = ElaboratesTo (elab2 := ElaboratesTo (renamed := DomainRenamer ("sync" )(m := Module ())))
1093+ frag = Fragment .get (renamed_nested , platform = None )
1094+ self .assertEqual (len (frag .origins ), 4 )
1095+ self .assertIsInstance (frag .origins , tuple )
1096+ self .assertIs (frag .origins [0 ], renamed_nested )
1097+ self .assertIs (frag .origins [1 ], elab2 )
1098+ self .assertIs (frag .origins [2 ], renamed )
1099+ self .assertIs (frag .origins [3 ], m )
1100+
10821101 def test_origins_disable (self ):
10831102 inst = Instance ("test" )
10841103 del inst .origins
10851104 elab = ElaboratesTo (inst )
10861105 frag = Fragment .get (elab , platform = None )
1087- self .assertFalse (hasattr (frag , "_origins " ))
1106+ self .assertFalse (hasattr (frag , "origins " ))
10881107
10891108
10901109class IOBufferTestCase (FHDLTestCase ):
0 commit comments