diff options
author | Nadrieril | 2019-05-04 16:13:18 +0200 |
---|---|---|
committer | Nadrieril | 2019-05-04 16:13:18 +0200 |
commit | 408bba76bd95a2aabd49046443950a37771f6008 (patch) | |
tree | 327804cebc1d60477c1c2c9f80ae6e08446c63ef /dhall_syntax/src/visitor.rs | |
parent | 1b1c34b90bb4bf3859b05b1da6db2dcb374996bb (diff) |
Thread Spans through the AST
Diffstat (limited to 'dhall_syntax/src/visitor.rs')
-rw-r--r-- | dhall_syntax/src/visitor.rs | 11 |
1 files changed, 6 insertions, 5 deletions
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<N, E>, ) -> Result<SubExpr<N, E2>, 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<E2, Self::Error> { (self.0)(embed) @@ -469,7 +469,8 @@ where fn visit_resulting_exprf( result: ExprF<Self::SE2, Self::L2, Self::E2>, ) -> Result<SubExpr<N, E2>, 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<N, E>) -> SubExpr<X, E> { - 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<X, E>) -> SubExpr<N, E> { - 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<N, X>) -> SubExpr<N, E> { - 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 {} |