@@ -106,22 +106,22 @@ def visit(self, node: ast.AST):
106106 ),
107107 )
108108 orig_to_copy_mapping = mapper (node )
109- tracer = self ._tracers [- 1 ]
110- old_bookkeeper = tracer .ast_bookkeeper_by_fname .get (self ._path )
109+ last_tracer = self ._tracers [- 1 ]
110+ old_bookkeeper = last_tracer .ast_bookkeeper_by_fname .get (self ._path )
111111 module_id = id (node ) if self ._module_id is None else self ._module_id
112- new_bookkeeper = tracer .ast_bookkeeper_by_fname [
112+ new_bookkeeper = last_tracer .ast_bookkeeper_by_fname [
113113 self ._path
114114 ] = AstBookkeeper .create (self ._path , module_id )
115115 if old_bookkeeper is not None :
116- tracer .remove_bookkeeping (old_bookkeeper , module_id )
116+ last_tracer .remove_bookkeeping (old_bookkeeper , module_id )
117117 BookkeepingVisitor (
118118 new_bookkeeper .ast_node_by_id ,
119119 new_bookkeeper .containing_ast_by_id ,
120120 new_bookkeeper .containing_stmt_by_id ,
121121 new_bookkeeper .parent_stmt_by_id ,
122122 new_bookkeeper .stmt_by_lineno ,
123123 ).visit (orig_to_copy_mapping [id (node )])
124- tracer .add_bookkeeping (new_bookkeeper , module_id )
124+ last_tracer .add_bookkeeping (new_bookkeeper , module_id )
125125 self .orig_to_copy_mapping = orig_to_copy_mapping
126126 raw_handler_predicates_by_event : DefaultDict [
127127 TraceEvent , List [Predicate ]
@@ -202,4 +202,6 @@ def visit(self, node: ast.AST):
202202 handler_guards_by_event ,
203203 expr_rewriter ,
204204 ).visit (node )
205+ if not any (tracer .requires_ast_bookkeeping for tracer in self ._tracers ):
206+ last_tracer .remove_bookkeeping (new_bookkeeper , module_id )
205207 return node
0 commit comments