@@ -286,7 +286,7 @@ mod llvm_enzyme {
286286        let  orig_annotatable:  Annotatable  = match  item { 
287287            Annotatable :: Item ( ref  mut  iitem)  => { 
288288                if  !iitem. attrs . iter ( ) . any ( |a| a. id  == attr. id )  { 
289-                     iitem. attrs . push ( attr. clone ( ) ) ; 
289+                     iitem. attrs . push ( attr) ; 
290290                } 
291291                if  !iitem. attrs . iter ( ) . any ( |a| a. id  == inline_never. id )  { 
292292                    iitem. attrs . push ( inline_never. clone ( ) ) ; 
@@ -295,7 +295,7 @@ mod llvm_enzyme {
295295            } 
296296            Annotatable :: AssocItem ( ref  mut  assoc_item,  i @ Impl )  => { 
297297                if  !assoc_item. attrs . iter ( ) . any ( |a| a. id  == attr. id )  { 
298-                     assoc_item. attrs . push ( attr. clone ( ) ) ; 
298+                     assoc_item. attrs . push ( attr) ; 
299299                } 
300300                if  !assoc_item. attrs . iter ( ) . any ( |a| a. id  == inline_never. id )  { 
301301                    assoc_item. attrs . push ( inline_never. clone ( ) ) ; 
@@ -322,7 +322,7 @@ mod llvm_enzyme {
322322        let  d_annotatable = if  is_impl { 
323323            let  assoc_item:  AssocItemKind  = ast:: AssocItemKind :: Fn ( asdf) ; 
324324            let  d_fn = P ( ast:: AssocItem  { 
325-                 attrs :  thin_vec ! [ d_attr. clone ( ) ,  inline_never] , 
325+                 attrs :  thin_vec ! [ d_attr,  inline_never] , 
326326                id :  ast:: DUMMY_NODE_ID , 
327327                span, 
328328                vis, 
@@ -332,12 +332,8 @@ mod llvm_enzyme {
332332            } ) ; 
333333            Annotatable :: AssocItem ( d_fn,  Impl ) 
334334        }  else  { 
335-             let  mut  d_fn = ecx. item ( 
336-                 span, 
337-                 d_ident, 
338-                 thin_vec ! [ d_attr. clone( ) ,  inline_never] , 
339-                 ItemKind :: Fn ( asdf) , 
340-             ) ; 
335+             let  mut  d_fn =
336+                 ecx. item ( span,  d_ident,  thin_vec ! [ d_attr,  inline_never] ,  ItemKind :: Fn ( asdf) ) ; 
341337            d_fn. vis  = vis; 
342338            Annotatable :: Item ( d_fn) 
343339        } ; 
@@ -446,7 +442,7 @@ mod llvm_enzyme {
446442
447443        if  primal_ret && n_active == 0  && x. mode . is_rev ( )  { 
448444            // We only have the primal ret. 
449-             body. stmts . push ( ecx. stmt_expr ( black_box_primal_call. clone ( ) ) ) ; 
445+             body. stmts . push ( ecx. stmt_expr ( black_box_primal_call) ) ; 
450446            return  body; 
451447        } 
452448
@@ -471,7 +467,7 @@ mod llvm_enzyme {
471467        if  primal_ret { 
472468            // We have both primal ret and active floats. 
473469            // primal ret is first, by construction. 
474-             exprs. push ( primal_call. clone ( ) ) ; 
470+             exprs. push ( primal_call) ; 
475471        } 
476472
477473        // Now construct default placeholder for each active float. 
@@ -538,16 +534,11 @@ mod llvm_enzyme {
538534                return  body; 
539535            } 
540536            [ arg]  => { 
541-                 ret = ecx. expr_call ( 
542-                     new_decl_span, 
543-                     blackbox_call_expr. clone ( ) , 
544-                     thin_vec ! [ arg. clone( ) ] , 
545-                 ) ; 
537+                 ret = ecx. expr_call ( new_decl_span,  blackbox_call_expr,  thin_vec ! [ arg. clone( ) ] ) ; 
546538            } 
547539            args => { 
548540                let  ret_tuple:  P < ast:: Expr >  = ecx. expr_tuple ( span,  args. into ( ) ) ; 
549-                 ret =
550-                     ecx. expr_call ( new_decl_span,  blackbox_call_expr. clone ( ) ,  thin_vec ! [ ret_tuple] ) ; 
541+                 ret = ecx. expr_call ( new_decl_span,  blackbox_call_expr,  thin_vec ! [ ret_tuple] ) ; 
551542            } 
552543        } 
553544        assert ! ( has_ret( & d_sig. decl. output) ) ; 
@@ -567,7 +558,7 @@ mod llvm_enzyme {
567558            let  args:  ThinVec < _ >  =
568559                idents[ 1 ..] . iter ( ) . map ( |arg| ecx. expr_path ( ecx. path_ident ( span,  * arg) ) ) . collect ( ) ; 
569560            let  self_expr = ecx. expr_self ( span) ; 
570-             ecx. expr_method_call ( span,  self_expr,  primal,  args. clone ( ) ) 
561+             ecx. expr_method_call ( span,  self_expr,  primal,  args) 
571562        }  else  { 
572563            let  args:  ThinVec < _ >  =
573564                idents. iter ( ) . map ( |arg| ecx. expr_path ( ecx. path_ident ( span,  * arg) ) ) . collect ( ) ; 
0 commit comments