about summary refs log tree commit diff
path: root/src/libsyntax_pos
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2018-09-09 21:00:55 +0000
committerbors <bors@rust-lang.org>2018-09-09 21:00:55 +0000
commit2d4e34ca8bb1369f7e0eea4cb50e6faa0827a6e5 (patch)
tree9e250b17aba2c7174bea5e7d7fb1a598da7e0ff2 /src/libsyntax_pos
parentf50b7758f4dc85dc1c5e38258adaa94213ac6ed1 (diff)
parent2dce3779bbc0353ff9fb544774417a851027fcab (diff)
downloadrust-2d4e34ca8bb1369f7e0eea4cb50e6faa0827a6e5.tar.gz
rust-2d4e34ca8bb1369f7e0eea4cb50e6faa0827a6e5.zip
Auto merge of #53778 - petrochenkov:shadrelax2, r=nikomatsakis
resolve: Relax shadowing restrictions on macro-expanded macros

Previously any macro-expanded macros weren't allowed to shadow macros from outer scopes.
Now only "more macro-expanded" macros cannot shadow "less macro-expanded" macros.
See comments to `fn may_appear_after` and added tests for more details and examples.

The functional changes are a21f6f588fc28c97533130ae44a6957b579ab58c and 46dd365ce9ca0a6b8653849b80267763c542842a, other commits are refactorings.
Diffstat (limited to 'src/libsyntax_pos')
-rw-r--r--src/libsyntax_pos/hygiene.rs5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/libsyntax_pos/hygiene.rs b/src/libsyntax_pos/hygiene.rs
index 7e985cf52f5..f053cb10d06 100644
--- a/src/libsyntax_pos/hygiene.rs
+++ b/src/libsyntax_pos/hygiene.rs
@@ -101,6 +101,11 @@ impl Mark {
     }
 
     #[inline]
+    pub fn parent(self) -> Mark {
+        HygieneData::with(|data| data.marks[self.0 as usize].parent)
+    }
+
+    #[inline]
     pub fn expn_info(self) -> Option<ExpnInfo> {
         HygieneData::with(|data| data.marks[self.0 as usize].expn_info.clone())
     }