@@ -200,10 +200,6 @@ impl HygieneData {
200
200
GLOBALS . with ( |globals| f ( & mut * globals. hygiene_data . borrow_mut ( ) ) )
201
201
}
202
202
203
- fn outer ( & self , ctxt : SyntaxContext ) -> Mark {
204
- self . syntax_contexts [ ctxt. 0 as usize ] . outer_mark
205
- }
206
-
207
203
fn expn_info ( & self , mark : Mark ) -> Option < ExpnInfo > {
208
204
self . marks [ mark. 0 as usize ] . expn_info . clone ( )
209
205
}
@@ -217,6 +213,26 @@ impl HygieneData {
217
213
}
218
214
true
219
215
}
216
+
217
+ fn modern ( & self , ctxt : SyntaxContext ) -> SyntaxContext {
218
+ self . syntax_contexts [ ctxt. 0 as usize ] . opaque
219
+ }
220
+
221
+ fn modern_and_legacy ( & self , ctxt : SyntaxContext ) -> SyntaxContext {
222
+ self . syntax_contexts [ ctxt. 0 as usize ] . opaque_and_semitransparent
223
+ }
224
+
225
+ fn outer ( & self , ctxt : SyntaxContext ) -> Mark {
226
+ self . syntax_contexts [ ctxt. 0 as usize ] . outer_mark
227
+ }
228
+
229
+ fn transparency ( & self , ctxt : SyntaxContext ) -> Transparency {
230
+ self . syntax_contexts [ ctxt. 0 as usize ] . transparency
231
+ }
232
+
233
+ fn prev_ctxt ( & self , ctxt : SyntaxContext ) -> SyntaxContext {
234
+ self . syntax_contexts [ ctxt. 0 as usize ] . prev_ctxt
235
+ }
220
236
}
221
237
222
238
pub fn clear_markings ( ) {
@@ -388,7 +404,7 @@ impl SyntaxContext {
388
404
pub fn remove_mark ( & mut self ) -> Mark {
389
405
HygieneData :: with ( |data| {
390
406
let outer_mark = data. syntax_contexts [ self . 0 as usize ] . outer_mark ;
391
- * self = data. syntax_contexts [ self . 0 as usize ] . prev_ctxt ;
407
+ * self = data. prev_ctxt ( * self ) ;
392
408
outer_mark
393
409
} )
394
410
}
@@ -397,9 +413,11 @@ impl SyntaxContext {
397
413
HygieneData :: with ( |data| {
398
414
let mut marks = Vec :: new ( ) ;
399
415
while self != SyntaxContext :: empty ( ) {
400
- let ctxt_data = & data. syntax_contexts [ self . 0 as usize ] ;
401
- marks. push ( ( ctxt_data. outer_mark , ctxt_data. transparency ) ) ;
402
- self = ctxt_data. prev_ctxt ;
416
+ let outer_mark = data. outer ( self ) ;
417
+ let transparency = data. transparency ( self ) ;
418
+ let prev_ctxt = data. prev_ctxt ( self ) ;
419
+ marks. push ( ( outer_mark, transparency) ) ;
420
+ self = prev_ctxt;
403
421
}
404
422
marks. reverse ( ) ;
405
423
marks
@@ -506,12 +524,12 @@ impl SyntaxContext {
506
524
507
525
#[ inline]
508
526
pub fn modern ( self ) -> SyntaxContext {
509
- HygieneData :: with ( |data| data. syntax_contexts [ self . 0 as usize ] . opaque )
527
+ HygieneData :: with ( |data| data. modern ( self ) )
510
528
}
511
529
512
530
#[ inline]
513
531
pub fn modern_and_legacy ( self ) -> SyntaxContext {
514
- HygieneData :: with ( |data| data. syntax_contexts [ self . 0 as usize ] . opaque_and_semitransparent )
532
+ HygieneData :: with ( |data| data. modern_and_legacy ( self ) )
515
533
}
516
534
517
535
#[ inline]
0 commit comments