@@ -12,7 +12,6 @@ use rustc_hir::def_id::LocalDefId;
12
12
use rustc_hir:: def_id:: CRATE_DEF_ID ;
13
13
use rustc_middle:: middle:: privacy:: AccessLevel ;
14
14
use rustc_middle:: ty:: DefIdTree ;
15
- use rustc_middle:: ty:: Visibility ;
16
15
use rustc_span:: sym;
17
16
18
17
pub struct AccessLevelsVisitor < ' r , ' a > {
@@ -106,28 +105,15 @@ impl<'r, 'a> AccessLevelsVisitor<'r, 'a> {
106
105
) -> Option < AccessLevel > {
107
106
let old_level = self . r . access_levels . get_access_level ( def_id) ;
108
107
if old_level < access_level {
109
- self . set_access_level_wrapper ( def_id, access_level) ;
108
+ let mut access_levels = std:: mem:: take ( & mut self . r . access_levels ) ;
109
+ access_levels. set_access_level ( def_id, access_level, & * self . r ) ;
110
+ self . r . access_levels = access_levels;
110
111
self . changed = true ;
111
112
access_level
112
113
} else {
113
114
old_level
114
115
}
115
116
}
116
-
117
- fn set_access_level_wrapper (
118
- & mut self ,
119
- id : LocalDefId ,
120
- access_level : Option < AccessLevel > ,
121
- ) -> Option < AccessLevel > {
122
- if let Some ( tag) = access_level {
123
- let mut effective_vis =
124
- self . r . access_levels . get_effective_vis ( id) . copied ( ) . unwrap_or_default ( ) ;
125
-
126
- effective_vis. update ( Some ( Visibility :: Public ) , tag, & * self . r ) ;
127
- self . r . access_levels . set_effective_vis ( id, effective_vis) ;
128
- }
129
- self . r . access_levels . get_access_level ( id)
130
- }
131
117
}
132
118
133
119
impl < ' r , ' ast > Visitor < ' ast > for AccessLevelsVisitor < ' ast , ' r > {
0 commit comments