From 408bba76bd95a2aabd49046443950a37771f6008 Mon Sep 17 00:00:00 2001 From: Nadrieril Date: Sat, 4 May 2019 16:13:18 +0200 Subject: Thread Spans through the AST --- dhall_syntax/src/visitor.rs | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'dhall_syntax/src/visitor.rs') diff --git a/dhall_syntax/src/visitor.rs b/dhall_syntax/src/visitor.rs index cbaa21e..7fdf217 100644 --- a/dhall_syntax/src/visitor.rs +++ b/dhall_syntax/src/visitor.rs @@ -411,7 +411,7 @@ where &mut self, subexpr: &'a SubExpr, ) -> Result, Self::Error> { - Ok(rc(subexpr.as_ref().visit(&mut **self)?)) + Ok(subexpr.rewrap(subexpr.as_ref().visit(&mut **self)?)) } fn visit_embed(self, embed: &'a E) -> Result { (self.0)(embed) @@ -469,7 +469,8 @@ where fn visit_resulting_exprf( result: ExprF, ) -> Result, Self::Error> { - Ok(rc(result)) + // TODO: don't lose note + Ok(SubExpr::from_expr_no_note(result)) } } @@ -482,7 +483,7 @@ where E: Clone + 'a, { fn visit_subexpr(&mut self, subexpr: &'a SubExpr) -> SubExpr { - rc(subexpr.as_ref().visit(&mut **self)) + SubExpr::from_expr_no_note(subexpr.as_ref().visit(&mut **self)) } fn visit_embed(self, embed: &'a E) -> E { E::clone(embed) @@ -501,7 +502,7 @@ where E: Clone + 'a, { fn visit_subexpr(&mut self, subexpr: &'a SubExpr) -> SubExpr { - rc(subexpr.as_ref().visit(&mut **self)) + SubExpr::from_expr_no_note(subexpr.as_ref().visit(&mut **self)) } fn visit_embed(self, embed: &'a E) -> E { E::clone(embed) @@ -520,7 +521,7 @@ where N: Clone + 'a, { fn visit_subexpr(&mut self, subexpr: &'a SubExpr) -> SubExpr { - rc(subexpr.as_ref().visit(&mut **self)) + subexpr.rewrap(subexpr.as_ref().visit(&mut **self)) } fn visit_embed(self, embed: &'a X) -> E { match *embed {} -- cgit v1.2.3