@@ -15,6 +15,7 @@ pub struct SerializeConfig {
1515
1616struct Serializer < ' a > {
1717 extractor : Extractor < ' a > ,
18+ termdag : TermDag ,
1819 node_ids : NodeIDs ,
1920 result : egraph_serialize:: EGraph ,
2021}
@@ -142,10 +143,13 @@ impl EGraph {
142143 } ,
143144 ) ;
144145
146+ let mut termdag = TermDag :: default ( ) ;
147+
145148 let mut serializer = Serializer {
146- extractor : Extractor :: new ( self , & mut TermDag :: default ( ) ) ,
149+ extractor : Extractor :: new ( self , & mut termdag ) ,
147150 node_ids,
148151 result : egraph_serialize:: EGraph :: default ( ) ,
152+ termdag,
149153 } ;
150154
151155 for ( func, input, output, class_id, node_id) in all_calls {
@@ -311,12 +315,14 @@ impl EGraph {
311315 let op = if sort. is_container_sort ( ) {
312316 sort. serialized_name ( value) . to_string ( )
313317 } else {
314- let termdag = & mut TermDag :: default ( ) ;
315318 let ( _, term) = sort
316- . extract_term ( self , * value, & serializer. extractor , termdag)
319+ . extract_term ( self , * value, & serializer. extractor , & mut serializer . termdag )
317320 . expect ( "Extraction should be successful since extractor has been fully initialized" ) ;
318321
319- termdag. term_to_expr ( & term, Span :: Panic ) . to_string ( )
322+ serializer
323+ . termdag
324+ . term_to_expr ( & term, Span :: Panic )
325+ . to_string ( )
320326 } ;
321327 serializer. result . nodes . insert (
322328 node_id. clone ( ) ,
0 commit comments