From 163702f9f34d16986f0e800038f8188b78dc9601 Mon Sep 17 00:00:00 2001
From: Nicolas Voirol <voirol.nicolas@gmail.com>
Date: Wed, 16 Nov 2016 18:00:11 +0100
Subject: [PATCH] Fix for tip parsing

---
 src/it/scala/inox/tip/TipPrintingSuite.scala | 10 +++++-----
 src/main/scala/inox/tip/Parser.scala         |  2 +-
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/src/it/scala/inox/tip/TipPrintingSuite.scala b/src/it/scala/inox/tip/TipPrintingSuite.scala
index 8eb71ef04..ccce4fe17 100644
--- a/src/it/scala/inox/tip/TipPrintingSuite.scala
+++ b/src/it/scala/inox/tip/TipPrintingSuite.scala
@@ -10,8 +10,8 @@ class TipPrintingSuite extends FunSuite with ResourceUtils {
 
   val ctx = TestContext.empty
 
-  val files = resourceFiles("regression/tip/SAT", _.endsWith(".tip")).toList ++
-    resourceFiles("regression/tip/UNSAT", _.endsWith(".tip"))
+  val files = resourceFiles("regression/tip/SAT", _.endsWith(".tip")).toList.map("SAT" -> _) ++
+    resourceFiles("regression/tip/UNSAT", _.endsWith(".tip")).map("UNSAT" -> _)
 
   private def checkScript(syms: Symbols, expr: Expr): Unit = {
     for (fd <- syms.functions.values) {
@@ -21,14 +21,14 @@ class TipPrintingSuite extends FunSuite with ResourceUtils {
     assert(expr.getType(syms) != Untyped)
   }
 
-  for (file <- files) {
-    test(s"Parsing file ${file.getName}") {
+  for ((cat, file) <- files) {
+    test(s"Parsing file $cat/${file.getName}") {
       for ((syms, expr) <- new Parser(file).parseScript) {
         checkScript(syms, expr)
       }
     }
 
-    test(s"Re-printing file ${file.getName}") {
+    test(s"Re-printing file $cat/${file.getName}") {
       for ((syms, expr) <- new Parser(file).parseScript) {
         val program = InoxProgram(ctx, syms)
 
diff --git a/src/main/scala/inox/tip/Parser.scala b/src/main/scala/inox/tip/Parser.scala
index 422cedd2b..bacfda922 100644
--- a/src/main/scala/inox/tip/Parser.scala
+++ b/src/main/scala/inox/tip/Parser.scala
@@ -272,7 +272,7 @@ class Parser(file: File) {
           )
         ).setPos(pred.optPos)
       } else {
-        extractTerm(pred)(locals.withVariable(s, vd.toVariable))
+        extractTerm(pred)(locals.withGenerics(syms zip root.typeArgs).withVariable(s, vd.toVariable))
       }
 
       val (optAdt, fd) = root.invariant(locals.symbols) match {
-- 
GitLab