@@ -34,14 +34,6 @@ pub trait Renamer: Send + Sync {
3434 /// It should be true if you expect lots of collisions
3535 const MANGLE : bool ;
3636
37- fn preserved_ids_for_module ( & mut self , _: & Module ) -> FxHashSet < Id > {
38- Default :: default ( )
39- }
40-
41- fn preserved_ids_for_script ( & mut self , _: & Script ) -> FxHashSet < Id > {
42- Default :: default ( )
43- }
44-
4537 fn get_cached ( & self ) -> Option < Cow < RenameMap > > {
4638 None
4739 }
@@ -50,6 +42,16 @@ pub trait Renamer: Send + Sync {
5042
5143 /// Should increment `n`.
5244 fn new_name_for ( & self , orig : & Id , n : & mut usize ) -> Atom ;
45+
46+ fn unresolved_symbols ( & self ) -> Vec < Atom > {
47+ Default :: default ( )
48+ }
49+
50+ /// Return true if the identifier should be preserved.
51+ #[ inline]
52+ fn preserve_name ( & self , _orig : & Id ) -> bool {
53+ false
54+ }
5355}
5456
5557pub type RenameMap = FxHashMap < Id , Atom > ;
@@ -175,10 +177,12 @@ where
175177 . extend ( self . preserved . iter ( ) . map ( |v| v. 0 . clone ( ) ) ) ;
176178 }
177179
178- if !self . config . preserved_symbols . is_empty ( ) {
179- unresolved
180- . to_mut ( )
181- . extend ( self . config . preserved_symbols . iter ( ) . cloned ( ) ) ;
180+ {
181+ let extra_unresolved = self . renamer . unresolved_symbols ( ) ;
182+
183+ if !extra_unresolved. is_empty ( ) {
184+ unresolved. to_mut ( ) . extend ( extra_unresolved) ;
185+ }
182186 }
183187
184188 if R :: MANGLE {
@@ -347,8 +351,6 @@ where
347351 fn visit_mut_module ( & mut self , m : & mut Module ) {
348352 self . load_cache ( ) ;
349353
350- self . preserved = self . renamer . preserved_ids_for_module ( m) ;
351-
352354 let has_eval = !self . config . ignore_eval && contains_eval ( m, true ) ;
353355
354356 self . unresolved = self . get_unresolved ( m, has_eval) ;
@@ -392,8 +394,6 @@ where
392394 fn visit_mut_script ( & mut self , m : & mut Script ) {
393395 self . load_cache ( ) ;
394396
395- self . preserved = self . renamer . preserved_ids_for_script ( m) ;
396-
397397 let has_eval = !self . config . ignore_eval && contains_eval ( m, true ) ;
398398
399399 self . unresolved = self . get_unresolved ( m, has_eval) ;
0 commit comments