From 220398f9b38885a3af5d4348c95eda4ae72b42d8 Mon Sep 17 00:00:00 2001
From: Manos Koukoutos <emmanouil.koukoutos@epfl.ch>
Date: Fri, 5 Aug 2016 18:36:06 +0200
Subject: [PATCH] Implement reclaim of P/Solver factory

---
 .../inox/solvers/combinators/PortfolioSolverFactory.scala    | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/src/main/scala/inox/solvers/combinators/PortfolioSolverFactory.scala b/src/main/scala/inox/solvers/combinators/PortfolioSolverFactory.scala
index 411240eca..f1f682975 100644
--- a/src/main/scala/inox/solvers/combinators/PortfolioSolverFactory.scala
+++ b/src/main/scala/inox/solvers/combinators/PortfolioSolverFactory.scala
@@ -4,8 +4,6 @@ package inox
 package solvers
 package combinators
 
-import scala.reflect.runtime.universe._
-
 trait PortfolioSolverFactory extends SolverFactory { self =>
 
   final type PT = program.type
@@ -22,8 +20,9 @@ trait PortfolioSolverFactory extends SolverFactory { self =>
     }
   }
 
+  // Assumes s is a P/Solver with the correct subsolver types
   override def reclaim(s: S) = sfs.zip(s.solvers).foreach { case (sf, s) =>
-    sf.reclaim(s)
+    sf.reclaim(s.asInstanceOf[sf.S])
   }
 
   val name = sfs.map(_.name).mkString("Pfolio(", ",", ")")
-- 
GitLab