Skip to content

Commit 1ff3bce

Browse files
committed
hygiene: Avoid some unnecessary ExpnInfo clones
1 parent 2de2278 commit 1ff3bce

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

src/libsyntax_pos/hygiene.rs

+5-5
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ impl Mark {
112112

113113
#[inline]
114114
pub fn expn_info(self) -> Option<ExpnInfo> {
115-
HygieneData::with(|data| data.expn_info(self))
115+
HygieneData::with(|data| data.expn_info(self).cloned())
116116
}
117117

118118
#[inline]
@@ -204,8 +204,8 @@ impl HygieneData {
204204
GLOBALS.with(|globals| f(&mut *globals.hygiene_data.borrow_mut()))
205205
}
206206

207-
fn expn_info(&self, mark: Mark) -> Option<ExpnInfo> {
208-
self.marks[mark.0 as usize].expn_info.clone()
207+
fn expn_info(&self, mark: Mark) -> Option<&ExpnInfo> {
208+
self.marks[mark.0 as usize].expn_info.as_ref()
209209
}
210210

211211
fn is_descendant_of(&self, mut mark: Mark, ancestor: Mark) -> bool {
@@ -598,7 +598,7 @@ impl SyntaxContext {
598598
/// `ctxt.outer().expn_info()`.
599599
#[inline]
600600
pub fn outer_expn_info(self) -> Option<ExpnInfo> {
601-
HygieneData::with(|data| data.expn_info(data.outer(self)))
601+
HygieneData::with(|data| data.expn_info(data.outer(self)).cloned())
602602
}
603603

604604
/// `ctxt.outer_and_expn_info()` is equivalent to but faster than
@@ -607,7 +607,7 @@ impl SyntaxContext {
607607
pub fn outer_and_expn_info(self) -> (Mark, Option<ExpnInfo>) {
608608
HygieneData::with(|data| {
609609
let outer = data.outer(self);
610-
(outer, data.expn_info(outer))
610+
(outer, data.expn_info(outer).cloned())
611611
})
612612
}
613613

0 commit comments

Comments
 (0)