Skip to content

Commit cd64cc8

Browse files
committed
Add HygieneData::remove_mark.
1 parent 7bec8c9 commit cd64cc8

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

src/libsyntax_pos/hygiene.rs

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -237,6 +237,12 @@ impl HygieneData {
237237
fn prev_ctxt(&self, ctxt: SyntaxContext) -> SyntaxContext {
238238
self.syntax_contexts[ctxt.0 as usize].prev_ctxt
239239
}
240+
241+
fn remove_mark(&self, ctxt: &mut SyntaxContext) -> Mark {
242+
let outer_mark = self.syntax_contexts[ctxt.0 as usize].outer_mark;
243+
*ctxt = self.prev_ctxt(*ctxt);
244+
outer_mark
245+
}
240246
}
241247

242248
pub fn clear_markings() {
@@ -406,11 +412,7 @@ impl SyntaxContext {
406412
/// invocation of f that created g1.
407413
/// Returns the mark that was removed.
408414
pub fn remove_mark(&mut self) -> Mark {
409-
HygieneData::with(|data| {
410-
let outer_mark = data.syntax_contexts[self.0 as usize].outer_mark;
411-
*self = data.prev_ctxt(*self);
412-
outer_mark
413-
})
415+
HygieneData::with(|data| data.remove_mark(self))
414416
}
415417

416418
pub fn marks(mut self) -> Vec<(Mark, Transparency)> {

0 commit comments

Comments
 (0)