@@ -322,6 +322,7 @@ impl ExpnId {
322
322
323
323
/// `expn_id.outer_expn_is_descendant_of(ctxt)` is equivalent to but faster than
324
324
/// `expn_id.is_descendant_of(ctxt.outer_expn())`.
325
+ #[inline]
325
326
pub fn outer_expn_is_descendant_of(self, ctxt: SyntaxContext) -> bool {
326
327
HygieneData::with(|data| data.is_descendant_of(self, data.outer_expn(ctxt)))
327
328
}
@@ -394,6 +395,7 @@ impl HygieneData {
394
395
}
395
396
}
396
397
398
+ #[inline]
397
399
fn with<R>(f: impl FnOnce(&mut HygieneData) -> R) -> R {
398
400
with_session_globals(|session_globals| f(&mut session_globals.hygiene_data.borrow_mut()))
399
401
}
@@ -406,6 +408,7 @@ impl HygieneData {
406
408
}
407
409
}
408
410
411
+ #[inline]
409
412
fn local_expn_data(&self, expn_id: LocalExpnId) -> &ExpnData {
410
413
self.local_expn_data[expn_id].as_ref().expect("no expansion data for an expansion ID")
411
414
}
@@ -437,23 +440,28 @@ impl HygieneData {
437
440
}
438
441
}
439
442
443
+ #[inline]
440
444
fn normalize_to_macros_2_0(&self, ctxt: SyntaxContext) -> SyntaxContext {
441
445
self.syntax_context_data[ctxt.0 as usize].opaque
442
446
}
443
447
448
+ #[inline]
444
449
fn normalize_to_macro_rules(&self, ctxt: SyntaxContext) -> SyntaxContext {
445
450
self.syntax_context_data[ctxt.0 as usize].opaque_and_semiopaque
446
451
}
447
452
453
+ #[inline]
448
454
fn outer_expn(&self, ctxt: SyntaxContext) -> ExpnId {
449
455
self.syntax_context_data[ctxt.0 as usize].outer_expn
450
456
}
451
457
458
+ #[inline]
452
459
fn outer_mark(&self, ctxt: SyntaxContext) -> (ExpnId, Transparency) {
453
460
let data = &self.syntax_context_data[ctxt.0 as usize];
454
461
(data.outer_expn, data.outer_transparency)
455
462
}
456
463
464
+ #[inline]
457
465
fn parent_ctxt(&self, ctxt: SyntaxContext) -> SyntaxContext {
458
466
self.syntax_context_data[ctxt.0 as usize].parent
459
467
}
@@ -718,11 +726,13 @@ impl SyntaxContext {
718
726
SyntaxContext(raw as u32)
719
727
}
720
728
729
+ #[inline]
721
730
fn from_usize(raw: usize) -> SyntaxContext {
722
731
SyntaxContext(u32::try_from(raw).unwrap())
723
732
}
724
733
725
734
/// Extend a syntax context with a given expansion and transparency.
735
+ #[inline]
726
736
pub fn apply_mark(self, expn_id: ExpnId, transparency: Transparency) -> SyntaxContext {
727
737
HygieneData::with(|data| data.apply_mark(self, expn_id, transparency))
728
738
}
@@ -743,10 +753,12 @@ impl SyntaxContext {
743
753
/// of g (call it g1), calling remove_mark will result in the SyntaxContext for the
744
754
/// invocation of f that created g1.
745
755
/// Returns the mark that was removed.
756
+ #[inline]
746
757
pub fn remove_mark(&mut self) -> ExpnId {
747
758
HygieneData::with(|data| data.remove_mark(self).0)
748
759
}
749
760
761
+ #[inline]
750
762
pub fn marks(self) -> Vec<(ExpnId, Transparency)> {
751
763
HygieneData::with(|data| data.marks(self))
752
764
}
@@ -776,11 +788,13 @@ impl SyntaxContext {
776
788
/// ```
777
789
/// This returns the expansion whose definition scope we use to privacy check the resolution,
778
790
/// or `None` if we privacy check as usual (i.e., not w.r.t. a macro definition scope).
791
+ #[inline]
779
792
pub fn adjust(&mut self, expn_id: ExpnId) -> Option<ExpnId> {
780
793
HygieneData::with(|data| data.adjust(self, expn_id))
781
794
}
782
795
783
796
/// Like `SyntaxContext::adjust`, but also normalizes `self` to macros 2.0.
797
+ #[inline]
784
798
pub(crate) fn normalize_to_macros_2_0_and_adjust(&mut self, expn_id: ExpnId) -> Option<ExpnId> {
785
799
HygieneData::with(|data| {
786
800
*self = data.normalize_to_macros_2_0(*self);
@@ -901,10 +915,12 @@ impl SyntaxContext {
901
915
HygieneData::with(|data| data.outer_mark(self))
902
916
}
903
917
918
+ #[inline]
904
919
pub(crate) fn dollar_crate_name(self) -> Symbol {
905
920
HygieneData::with(|data| data.syntax_context_data[self.0 as usize].dollar_crate_name)
906
921
}
907
922
923
+ #[inline]
908
924
pub fn edition(self) -> Edition {
909
925
HygieneData::with(|data| data.expn_data(data.outer_expn(self)).edition)
910
926
}
0 commit comments