diff options
| author | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2019-06-18 01:36:44 +0300 |
|---|---|---|
| committer | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2019-06-18 10:48:56 +0300 |
| commit | 1ff3bce5bbcf3f23ad90266f8f3de1ac13d23623 (patch) | |
| tree | 7c003f826e27aa27615b4086c5c1118a3639b8ce /src/libsyntax_pos | |
| parent | 2de2278f1a356cba63300cee0bca49ad8f4905ab (diff) | |
| download | rust-1ff3bce5bbcf3f23ad90266f8f3de1ac13d23623.tar.gz rust-1ff3bce5bbcf3f23ad90266f8f3de1ac13d23623.zip | |
hygiene: Avoid some unnecessary `ExpnInfo` clones
Diffstat (limited to 'src/libsyntax_pos')
| -rw-r--r-- | src/libsyntax_pos/hygiene.rs | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/libsyntax_pos/hygiene.rs b/src/libsyntax_pos/hygiene.rs index 67b6e9da477..4dbd4ccda91 100644 --- a/src/libsyntax_pos/hygiene.rs +++ b/src/libsyntax_pos/hygiene.rs @@ -112,7 +112,7 @@ impl Mark { #[inline] pub fn expn_info(self) -> Option<ExpnInfo> { - HygieneData::with(|data| data.expn_info(self)) + HygieneData::with(|data| data.expn_info(self).cloned()) } #[inline] @@ -204,8 +204,8 @@ impl HygieneData { GLOBALS.with(|globals| f(&mut *globals.hygiene_data.borrow_mut())) } - fn expn_info(&self, mark: Mark) -> Option<ExpnInfo> { - self.marks[mark.0 as usize].expn_info.clone() + fn expn_info(&self, mark: Mark) -> Option<&ExpnInfo> { + self.marks[mark.0 as usize].expn_info.as_ref() } fn is_descendant_of(&self, mut mark: Mark, ancestor: Mark) -> bool { @@ -598,7 +598,7 @@ impl SyntaxContext { /// `ctxt.outer().expn_info()`. #[inline] pub fn outer_expn_info(self) -> Option<ExpnInfo> { - HygieneData::with(|data| data.expn_info(data.outer(self))) + HygieneData::with(|data| data.expn_info(data.outer(self)).cloned()) } /// `ctxt.outer_and_expn_info()` is equivalent to but faster than @@ -607,7 +607,7 @@ impl SyntaxContext { pub fn outer_and_expn_info(self) -> (Mark, Option<ExpnInfo>) { HygieneData::with(|data| { let outer = data.outer(self); - (outer, data.expn_info(outer)) + (outer, data.expn_info(outer).cloned()) }) } |
