From 29c3acd4b7d43c56bdfb10d7052d91cfeebe7a10 Mon Sep 17 00:00:00 2001
From: Philippe Suter <philippe.suter@gmail.com>
Date: Mon, 26 Nov 2012 13:15:31 +0100
Subject: [PATCH] Proper passing of `LeonContext`s in synthesis.

---
 src/main/scala/leon/synthesis/ParallelSearch.scala | 3 +--
 src/main/scala/leon/synthesis/SynthesisPhase.scala | 2 +-
 src/main/scala/leon/synthesis/Synthesizer.scala    | 4 +++-
 3 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/src/main/scala/leon/synthesis/ParallelSearch.scala b/src/main/scala/leon/synthesis/ParallelSearch.scala
index f11526f3c..184714e7b 100644
--- a/src/main/scala/leon/synthesis/ParallelSearch.scala
+++ b/src/main/scala/leon/synthesis/ParallelSearch.scala
@@ -14,8 +14,7 @@ class ParallelSearch(synth: Synthesizer,
 
   def initWorkerContext(wr: ActorRef) = {
     val reporter = new SilentReporter
-    // TODO FIXME : the proper LeonContext should make its way here.
-    val solver = new FairZ3Solver(LeonContext(reporter = reporter))
+    val solver = new FairZ3Solver(synth.context)
     solver.setProgram(synth.program)
 
     SynthesisContext(solver = solver, reporter = synth.reporter)
diff --git a/src/main/scala/leon/synthesis/SynthesisPhase.scala b/src/main/scala/leon/synthesis/SynthesisPhase.scala
index 2901bb382..7f9a8b054 100644
--- a/src/main/scala/leon/synthesis/SynthesisPhase.scala
+++ b/src/main/scala/leon/synthesis/SynthesisPhase.scala
@@ -66,7 +66,7 @@ object SynthesisPhase extends LeonPhase[Program, Program] {
       def actOnChoose(f: FunDef)(e: Expr, a: Expr): Expr = e match {
         case ch @ Choose(vars, pred) =>
           val problem = Problem.fromChoose(ch)
-          val synth = new Synthesizer(ctx.reporter,
+          val synth = new Synthesizer(ctx,
                                       mainSolver,
                                       p,
                                       problem,
diff --git a/src/main/scala/leon/synthesis/Synthesizer.scala b/src/main/scala/leon/synthesis/Synthesizer.scala
index 51444a16b..b669335b9 100644
--- a/src/main/scala/leon/synthesis/Synthesizer.scala
+++ b/src/main/scala/leon/synthesis/Synthesizer.scala
@@ -15,7 +15,7 @@ import collection.mutable.PriorityQueue
 
 import synthesis.search._
 
-class Synthesizer(val reporter: Reporter,
+class Synthesizer(val context : LeonContext,
                   val solver: Solver,
                   val program: Program,
                   val problem: Problem,
@@ -25,6 +25,8 @@ class Synthesizer(val reporter: Reporter,
                   parallel: Boolean                = false,
                   firstOnly: Boolean               = false,
                   timeoutMs: Option[Long]          = None) {
+  protected[synthesis] val reporter = context.reporter
+
   import reporter.{error,warning,info,fatalError}
 
   var continue = true
-- 
GitLab