From 28f52708e044e68b0586ee1cc198cbaaa1da840a Mon Sep 17 00:00:00 2001
From: Manos Koukoutos <emmanouil.koukoutos@epfl.ch>
Date: Thu, 27 Aug 2015 16:13:12 +0200
Subject: [PATCH] Make sure a Tree is not its own parent

---
 src/main/scala/leon/purescala/PrinterHelpers.scala | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/main/scala/leon/purescala/PrinterHelpers.scala b/src/main/scala/leon/purescala/PrinterHelpers.scala
index b0fb6e722..46ca1ae30 100644
--- a/src/main/scala/leon/purescala/PrinterHelpers.scala
+++ b/src/main/scala/leon/purescala/PrinterHelpers.scala
@@ -54,7 +54,12 @@ object PrinterHelpers {
               nary(ts).print(nctx)
 
             case t: Tree =>
-              val nctx2 = nctx.copy(parents = nctx.current :: nctx.parents, current = t)
+              val parents = if (nctx.current == t) {
+                nctx.parents
+              } else {
+                nctx.current :: nctx.parents
+              }
+              val nctx2 = nctx.copy(parents = parents, current = t)
               printer.pp(t)(nctx2)
 
             case p: Printable =>
-- 
GitLab