From 098ec93f0b68c1dd8f3d3e55d538ebad474563e4 Mon Sep 17 00:00:00 2001
From: Etienne Kneuss <ekneuss@gmail.com>
Date: Tue, 23 Oct 2012 15:36:26 +0200
Subject: [PATCH] Print LetTuple correctly

---
 .../scala/leon/purescala/ScalaPrinter.scala   | 22 +++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/src/main/scala/leon/purescala/ScalaPrinter.scala b/src/main/scala/leon/purescala/ScalaPrinter.scala
index e7ce49521..2967ea34a 100644
--- a/src/main/scala/leon/purescala/ScalaPrinter.scala
+++ b/src/main/scala/leon/purescala/ScalaPrinter.scala
@@ -66,6 +66,28 @@ object ScalaPrinter {
   private def pp(tree: Expr, sb: StringBuffer, lvl: Int): StringBuffer = tree match {
     case Variable(id) => sb.append(id)
     case DeBruijnIndex(idx) => sys.error("Not Valid Scala")
+    case LetTuple(ids,d,e) => {
+      sb.append("locally {\n")
+      ind(sb, lvl+1)
+      sb.append("val (" )
+      for (((id, tpe), i) <- ids.map(id => (id, id.getType)).zipWithIndex) {
+          sb.append(id.toString+": ")
+          pp(tpe, sb, lvl)
+          if (i != ids.size-1) {
+              sb.append(", ")
+          }
+      }
+      sb.append(") = ")
+      pp(d, sb, lvl+1)
+      sb.append("\n")
+      ind(sb, lvl+1)
+      pp(e, sb, lvl+1)
+      sb.append("\n")
+      ind(sb, lvl)
+      sb.append("}\n")
+      ind(sb, lvl)
+      sb
+    }
     case Let(b,d,e) => {
       sb.append("locally {\n")
       ind(sb, lvl+1)
-- 
GitLab