]> git.lizzy.rs Git - rust.git/commitdiff
Add `HygieneData::default_transparency`.
authorNicholas Nethercote <nnethercote@mozilla.com>
Fri, 31 May 2019 21:24:51 +0000 (07:24 +1000)
committerNicholas Nethercote <nnethercote@mozilla.com>
Tue, 4 Jun 2019 21:43:14 +0000 (07:43 +1000)
Also use `HygieneData::expn_info` in an appropriate place.

src/libsyntax_pos/hygiene.rs

index c23d27879f781ff4253c73688287880909a664b4..1f09bb1df710a6711869610a4407e7772c90e7e0 100644 (file)
@@ -98,7 +98,7 @@ pub fn parent(self) -> Mark {
 
     #[inline]
     pub fn expn_info(self) -> Option<ExpnInfo> {
-        HygieneData::with(|data| data.marks[self.0 as usize].expn_info.clone())
+        HygieneData::with(|data| data.expn_info(self))
     }
 
     #[inline]
@@ -214,6 +214,10 @@ fn is_descendant_of(&self, mut mark: Mark, ancestor: Mark) -> bool {
         true
     }
 
+    fn default_transparency(&self, mark: Mark) -> Transparency {
+        self.marks[mark.0 as usize].default_transparency
+    }
+
     fn modern(&self, ctxt: SyntaxContext) -> SyntaxContext {
         self.syntax_contexts[ctxt.0 as usize].opaque
     }
@@ -287,7 +291,7 @@ pub fn allocate_directly(expansion_info: ExpnInfo) -> Self {
     pub fn apply_mark(self, mark: Mark) -> SyntaxContext {
         assert_ne!(mark, Mark::root());
         self.apply_mark_with_transparency(
-            mark, HygieneData::with(|data| data.marks[mark.0 as usize].default_transparency)
+            mark, HygieneData::with(|data| data.default_transparency(mark))
         )
     }