@@ -87,20 +87,22 @@ impl PythonArchEval {
8787 file_info_rc. borrow_mut ( ) . prepare_ast ( session) ;
8888 }
8989 let file_info = ( * file_info_rc) . borrow ( ) ;
90- if file_info. file_info_ast . borrow ( ) . indexed_module . is_some ( ) {
90+ let file_info_ast = file_info. file_info_ast . clone ( ) ;
91+ drop ( file_info) ;
92+ if file_info_ast. borrow ( ) . indexed_module . is_some ( ) {
9193 let old_noqa = session. current_noqa . clone ( ) ;
9294 session. current_noqa = symbol. borrow ( ) . get_noqas ( ) ;
93- let file_info_ast = file_info . file_info_ast . borrow ( ) ;
95+ let file_info_ast_bw = file_info_ast. borrow ( ) ;
9496 let ( ast, maybe_func_stmt) = match self . file_mode {
9597 true => {
96- if file_info_ast . text_hash != symbol. borrow ( ) . get_processed_text_hash ( ) {
98+ if file_info_ast_bw . text_hash != symbol. borrow ( ) . get_processed_text_hash ( ) {
9799 symbol. borrow_mut ( ) . set_build_status ( BuildSteps :: ARCH_EVAL , BuildStatus :: INVALID ) ;
98100 return ;
99101 }
100- ( file_info_ast . get_stmts ( ) . unwrap ( ) , None )
102+ ( file_info_ast_bw . get_stmts ( ) . unwrap ( ) , None )
101103 } ,
102104 false => {
103- let func_stmt = file_info_ast . indexed_module . as_ref ( ) . unwrap ( ) . get_by_index ( self . sym_stack [ 0 ] . borrow ( ) . node_index ( ) . unwrap ( ) . load ( ) ) ;
105+ let func_stmt = file_info_ast_bw . indexed_module . as_ref ( ) . unwrap ( ) . get_by_index ( self . sym_stack [ 0 ] . borrow ( ) . node_index ( ) . unwrap ( ) . load ( ) ) ;
104106 match func_stmt {
105107 AnyRootNodeRef :: Stmt ( Stmt :: FunctionDef ( func_stmt) ) => {
106108 ( & func_stmt. body , Some ( func_stmt) )
@@ -120,7 +122,6 @@ impl PythonArchEval {
120122 }
121123 session. current_noqa = old_noqa;
122124 }
123- drop ( file_info) ;
124125 if self . file_mode {
125126 file_info_rc. borrow_mut ( ) . replace_diagnostics ( BuildSteps :: ARCH_EVAL , self . diagnostics . clone ( ) ) ;
126127 PythonArchEvalHooks :: on_file_eval ( session, & self . entry_point , symbol. clone ( ) ) ;
0 commit comments