@@ -1079,12 +1079,31 @@ def test_origins(self):
1079
1079
self .assertIs (frag .origins [1 ], elab2 )
1080
1080
self .assertIs (frag .origins [2 ], m )
1081
1081
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
+
1082
1101
def test_origins_disable (self ):
1083
1102
inst = Instance ("test" )
1084
1103
del inst .origins
1085
1104
elab = ElaboratesTo (inst )
1086
1105
frag = Fragment .get (elab , platform = None )
1087
- self .assertFalse (hasattr (frag , "_origins " ))
1106
+ self .assertFalse (hasattr (frag , "origins " ))
1088
1107
1089
1108
1090
1109
class IOBufferTestCase (FHDLTestCase ):
0 commit comments