@@ -662,7 +662,7 @@ impl Compilation {
662662 }
663663
664664 let make_artifact = self . build_module_graph_artifact . take ( ) ;
665- self . build_module_graph_artifact = DerefOption :: new (
665+ self . build_module_graph_artifact . replace (
666666 update_module_graph (
667667 self ,
668668 make_artifact,
@@ -713,7 +713,7 @@ impl Compilation {
713713 // Recheck entry and clean useless entry
714714 // This should before finish_modules hook is called, ensure providedExports effects on new added modules
715715 let make_artifact = self . build_module_graph_artifact . take ( ) ;
716- self . build_module_graph_artifact = DerefOption :: new (
716+ self . build_module_graph_artifact . replace (
717717 update_module_graph (
718718 self ,
719719 make_artifact,
@@ -1025,7 +1025,9 @@ impl Compilation {
10251025 }
10261026
10271027 let artifact = self . build_module_graph_artifact . take ( ) ;
1028- self . build_module_graph_artifact = DerefOption :: new ( build_module_graph ( self , artifact) . await ?) ;
1028+ self
1029+ . build_module_graph_artifact
1030+ . replace ( build_module_graph ( self , artifact) . await ?) ;
10291031
10301032 self . in_finish_make . store ( true , Ordering :: Release ) ;
10311033
@@ -1042,7 +1044,7 @@ impl Compilation {
10421044 // https://github.com/webpack/webpack/blob/19ca74127f7668aaf60d59f4af8fcaee7924541a/lib/Compilation.js#L2462C21-L2462C25
10431045 self . module_graph_cache_artifact . unfreeze ( ) ;
10441046
1045- self . build_module_graph_artifact = DerefOption :: new (
1047+ self . build_module_graph_artifact . replace (
10461048 update_module_graph (
10471049 self ,
10481050 artifact,
@@ -1456,8 +1458,9 @@ impl Compilation {
14561458 self . in_finish_make . store ( false , Ordering :: Release ) ;
14571459 // clean up the entry deps
14581460 let make_artifact = self . build_module_graph_artifact . take ( ) ;
1459- self . build_module_graph_artifact =
1460- DerefOption :: new ( finish_build_module_graph ( self , make_artifact) . await ?) ;
1461+ self
1462+ . build_module_graph_artifact
1463+ . replace ( finish_build_module_graph ( self , make_artifact) . await ?) ;
14611464 // sync assets to module graph from module_executor
14621465 if let Some ( module_executor) = & mut self . module_executor {
14631466 let mut module_executor = std:: mem:: take ( module_executor) ;
@@ -1645,9 +1648,9 @@ impl Compilation {
16451648 let start = logger. time ( "optimize dependencies" ) ;
16461649 // https://github.com/webpack/webpack/blob/d15c73469fd71cf98734685225250148b68ddc79/lib/Compilation.js#L2812-L2814
16471650
1648- let mut side_effects_optimize_artifact = self . side_effects_optimize_artifact . take ( ) ;
16491651 let mut diagnostics: Vec < Diagnostic > = vec ! [ ] ;
1650- let mut build_module_graph_artifact = mem:: take ( & mut self . build_module_graph_artifact ) ;
1652+ let mut side_effects_optimize_artifact = self . side_effects_optimize_artifact . take ( ) ;
1653+ let mut build_module_graph_artifact = self . build_module_graph_artifact . take ( ) ;
16511654 while matches ! (
16521655 plugin_driver
16531656 . compilation_hooks
@@ -1662,8 +1665,12 @@ impl Compilation {
16621665 . map_err( |e| e. wrap_err( "caused by plugins in Compilation.hooks.optimizeDependencies" ) ) ?,
16631666 Some ( true )
16641667 ) { }
1665- self . side_effects_optimize_artifact = DerefOption :: new ( side_effects_optimize_artifact) ;
1666- self . build_module_graph_artifact = build_module_graph_artifact;
1668+ self
1669+ . side_effects_optimize_artifact
1670+ . replace ( side_effects_optimize_artifact) ;
1671+ self
1672+ . build_module_graph_artifact
1673+ . replace ( build_module_graph_artifact) ;
16671674 self . extend_diagnostics ( diagnostics) ;
16681675
16691676 logger. time_end ( start) ;
0 commit comments