@@ -599,9 +599,7 @@ impl Compiler {
599599 instrs. extend ( a_instrs) ;
600600 let sig = Signature :: new ( a_sig. args . max ( b_sig. args ) , a_sig. outputs + b_sig. outputs ) ;
601601 if call {
602- self . push_instr ( Instr :: PushSig ( sig) ) ;
603602 self . push_all_instrs ( instrs) ;
604- self . push_instr ( Instr :: PopSig ) ;
605603 } else {
606604 let func =
607605 self . make_function ( modified. modifier . span . clone ( ) . into ( ) , sig, instrs) ;
@@ -627,9 +625,7 @@ impl Compiler {
627625 instrs. extend ( a_instrs) ;
628626 let sig = Signature :: new ( a_sig. args + b_sig. args , a_sig. outputs + b_sig. outputs ) ;
629627 if call {
630- self . push_instr ( Instr :: PushSig ( sig) ) ;
631628 self . push_all_instrs ( instrs) ;
632- self . push_instr ( Instr :: PopSig ) ;
633629 } else {
634630 let func = self . make_function (
635631 FunctionId :: Anonymous ( modified. modifier . span . clone ( ) ) ,
@@ -682,25 +678,9 @@ impl Compiler {
682678 }
683679
684680 if let Some ( ( f_before, f_after) ) = under_instrs ( & f_instrs, g_sig, self ) {
685- let before_sig = self . sig_of ( & f_before, & f_span) ?;
686- let after_sig = self . sig_of ( & f_after, & f_span) ?;
687- let mut instrs = if call {
688- eco_vec ! [ Instr :: PushSig ( before_sig) ]
689- } else {
690- EcoVec :: new ( )
691- } ;
692- instrs. extend ( f_before) ;
693- if call {
694- instrs. push ( Instr :: PopSig ) ;
695- }
681+ let mut instrs = f_before;
696682 instrs. extend ( g_instrs) ;
697- if call {
698- instrs. push ( Instr :: PushSig ( after_sig) ) ;
699- }
700683 instrs. extend ( f_after) ;
701- if call {
702- instrs. push ( Instr :: PopSig ) ;
703- }
704684 if call {
705685 self . push_all_instrs ( instrs) ;
706686 } else {
@@ -837,9 +817,7 @@ impl Compiler {
837817 }
838818 let sig = Signature :: new ( sig. args * 2 , sig. outputs * 2 ) ;
839819 if call {
840- self . push_instr ( Instr :: PushSig ( sig) ) ;
841820 self . push_all_instrs ( instrs) ;
842- self . push_instr ( Instr :: PopSig ) ;
843821 } else {
844822 let func =
845823 self . make_function ( modified. modifier . span . clone ( ) . into ( ) , sig, instrs) ;
0 commit comments