@@ -301,7 +301,7 @@ impl<'a, 'cfg> JobQueue<'a, 'cfg> {
301301 } else {
302302 Artifact :: All
303303 } ;
304- ( dep. unit , artifact)
304+ ( dep. unit . clone ( ) , artifact)
305305 } )
306306 . collect :: < HashMap < _ , _ > > ( ) ;
307307
@@ -328,7 +328,7 @@ impl<'a, 'cfg> JobQueue<'a, 'cfg> {
328328 // transitively contains the `Metadata` edge.
329329 if unit. requires_upstream_objects ( ) {
330330 for dep in dependencies {
331- depend_on_deps_of_deps ( cx, & mut queue_deps, dep. unit ) ;
331+ depend_on_deps_of_deps ( cx, & mut queue_deps, dep. unit . clone ( ) ) ;
332332 }
333333
334334 fn depend_on_deps_of_deps < ' a > (
@@ -337,14 +337,14 @@ impl<'a, 'cfg> JobQueue<'a, 'cfg> {
337337 unit : Unit < ' a > ,
338338 ) {
339339 for dep in cx. unit_deps ( & unit) {
340- if deps. insert ( dep. unit , Artifact :: All ) . is_none ( ) {
341- depend_on_deps_of_deps ( cx, deps, dep. unit ) ;
340+ if deps. insert ( dep. unit . clone ( ) , Artifact :: All ) . is_none ( ) {
341+ depend_on_deps_of_deps ( cx, deps, dep. unit . clone ( ) ) ;
342342 }
343343 }
344344 }
345345 }
346346
347- self . queue . queue ( * unit, job, queue_deps) ;
347+ self . queue . queue ( unit. clone ( ) , job, queue_deps) ;
348348 * self . counts . entry ( unit. pkg . package_id ( ) ) . or_insert ( 0 ) += 1 ;
349349 Ok ( ( ) )
350350 }
@@ -499,7 +499,7 @@ impl<'a, 'cfg> DrainState<'a, 'cfg> {
499499 . config
500500 . shell ( )
501501 . verbose ( |c| c. status ( "Running" , & cmd) ) ?;
502- self . timings . unit_start ( id, self . active [ & id] ) ;
502+ self . timings . unit_start ( id, self . active [ & id] . clone ( ) ) ;
503503 }
504504 Message :: BuildPlanMsg ( module_name, cmd, filenames) => {
505505 plan. update ( & module_name, & cmd, & filenames) ?;
@@ -541,7 +541,7 @@ impl<'a, 'cfg> DrainState<'a, 'cfg> {
541541 // in there as we'll get another `Finish` later on.
542542 Artifact :: Metadata => {
543543 info ! ( "end (meta): {:?}" , id) ;
544- self . active [ & id]
544+ self . active [ & id] . clone ( )
545545 }
546546 } ;
547547 info ! ( "end ({:?}): {:?}" , unit, result) ;
@@ -784,7 +784,7 @@ impl<'a, 'cfg> DrainState<'a, 'cfg> {
784784
785785 info ! ( "start {}: {:?}" , id, unit) ;
786786
787- assert ! ( self . active. insert( id, * unit) . is_none( ) ) ;
787+ assert ! ( self . active. insert( id, unit. clone ( ) ) . is_none( ) ) ;
788788 * self . counts . get_mut ( & unit. pkg . package_id ( ) ) . unwrap ( ) -= 1 ;
789789
790790 let messages = self . messages . clone ( ) ;
@@ -862,7 +862,7 @@ impl<'a, 'cfg> DrainState<'a, 'cfg> {
862862 cx : & mut Context < ' a , ' _ > ,
863863 ) -> CargoResult < ( ) > {
864864 let outputs = cx. build_script_outputs . lock ( ) . unwrap ( ) ;
865- let metadata = match cx. find_build_script_metadata ( * unit) {
865+ let metadata = match cx. find_build_script_metadata ( unit. clone ( ) ) {
866866 Some ( metadata) => metadata,
867867 None => return Ok ( ( ) ) ,
868868 } ;
0 commit comments