@@ -689,9 +689,11 @@ where
689689 si,
690690 outer,
691691 m. source ,
692- & mut builder,
693- & outer_ignore_set,
694- & mut ignored_sources,
692+ SourceEntryLoadContext {
693+ builder : & mut builder,
694+ outer_ignore_set : & outer_ignore_set,
695+ ignored_sources : & mut ignored_sources,
696+ } ,
695697 & loader,
696698 ) ;
697699
@@ -769,14 +771,18 @@ fn trace_source_entry(
769771 }
770772}
771773
774+ struct SourceEntryLoadContext < ' a , B > {
775+ builder : & ' a mut B ,
776+ outer_ignore_set : & ' a HashSet < u32 > ,
777+ ignored_sources : & ' a mut HashSet < u32 > ,
778+ }
779+
772780fn load_source_entry < F > (
773781 source_entries : & mut [ SourceEntry ] ,
774782 si : usize ,
775783 outer : & SourceMap ,
776784 outer_source_idx : u32 ,
777- builder : & mut SourceMapGenerator ,
778- outer_ignore_set : & HashSet < u32 > ,
779- ignored_sources : & mut HashSet < u32 > ,
785+ ctx : SourceEntryLoadContext < ' _ , SourceMapGenerator > ,
780786 loader : & F ,
781787) where
782788 F : Fn ( & str ) -> Option < SourceMap > ,
@@ -799,12 +805,12 @@ fn load_source_entry<F>(
799805 source_entries[ si] = SourceEntry :: Upstream { map : Box :: new ( upstream_sm) , cache } ;
800806 }
801807 None => {
802- let idx = builder. add_source ( source_name) ;
808+ let idx = ctx . builder . add_source ( source_name) ;
803809 if let Some ( Some ( content) ) = outer. sources_content . get ( si) {
804- builder. set_source_content ( idx, content. clone ( ) ) ;
810+ ctx . builder . set_source_content ( idx, content. clone ( ) ) ;
805811 }
806- if outer_ignore_set. contains ( & outer_source_idx) && ignored_sources. insert ( idx) {
807- builder. add_to_ignore_list ( idx) ;
812+ if ctx . outer_ignore_set . contains ( & outer_source_idx) && ctx . ignored_sources . insert ( idx) {
813+ ctx . builder . add_to_ignore_list ( idx) ;
808814 }
809815 source_entries[ si] = SourceEntry :: Passthrough { builder_src : idx } ;
810816 }
@@ -973,9 +979,11 @@ where
973979 sources,
974980 sources_content,
975981 m. source ,
976- & mut builder,
977- & outer_ignore_set,
978- & mut ignored_sources,
982+ SourceEntryLoadContext {
983+ builder : & mut builder,
984+ outer_ignore_set : & outer_ignore_set,
985+ ignored_sources : & mut ignored_sources,
986+ } ,
979987 & loader,
980988 ) ;
981989
@@ -1059,9 +1067,7 @@ fn load_streaming_source_entry<F>(
10591067 sources : & [ String ] ,
10601068 sources_content : & [ Option < String > ] ,
10611069 outer_source_idx : u32 ,
1062- builder : & mut StreamingGenerator ,
1063- outer_ignore_set : & HashSet < u32 > ,
1064- ignored_sources : & mut HashSet < u32 > ,
1070+ ctx : SourceEntryLoadContext < ' _ , StreamingGenerator > ,
10651071 loader : & F ,
10661072) where
10671073 F : Fn ( & str ) -> Option < SourceMap > ,
@@ -1082,12 +1088,12 @@ fn load_streaming_source_entry<F>(
10821088 source_entries[ si] = StreamingSourceEntry :: Upstream { map : Box :: new ( upstream_sm) , cache } ;
10831089 }
10841090 None => {
1085- let idx = builder. add_source ( source_name) ;
1091+ let idx = ctx . builder . add_source ( source_name) ;
10861092 if let Some ( Some ( content) ) = sources_content. get ( si) {
1087- builder. set_source_content ( idx, content. clone ( ) ) ;
1093+ ctx . builder . set_source_content ( idx, content. clone ( ) ) ;
10881094 }
1089- if outer_ignore_set. contains ( & outer_source_idx) && ignored_sources. insert ( idx) {
1090- builder. add_to_ignore_list ( idx) ;
1095+ if ctx . outer_ignore_set . contains ( & outer_source_idx) && ctx . ignored_sources . insert ( idx) {
1096+ ctx . builder . add_to_ignore_list ( idx) ;
10911097 }
10921098 source_entries[ si] = StreamingSourceEntry :: Passthrough { builder_src : idx } ;
10931099 }
0 commit comments