From e3ad845b420cd71c1f9d4cc37f6469eb288df22d Mon Sep 17 00:00:00 2001
From: Manos Koukoutos <emmanouil.koukoutos@epfl.ch>
Date: Thu, 21 Apr 2016 11:38:53 +0200
Subject: [PATCH] Move and rename RepairTrackingEvaluator, improve its
 documentation

---
 .../TrackingEvaluator.scala}                  | 24 +++++++++----------
 .../scala/leon/repair/RepairNDEvaluator.scala |  4 +++-
 .../scala/leon/synthesis/ExamplesBank.scala   |  5 ++--
 3 files changed, 16 insertions(+), 17 deletions(-)
 rename src/main/scala/leon/{repair/RepairTrackingEvaluator.scala => evaluators/TrackingEvaluator.scala} (88%)

diff --git a/src/main/scala/leon/repair/RepairTrackingEvaluator.scala b/src/main/scala/leon/evaluators/TrackingEvaluator.scala
similarity index 88%
rename from src/main/scala/leon/repair/RepairTrackingEvaluator.scala
rename to src/main/scala/leon/evaluators/TrackingEvaluator.scala
index 67707d6cf..e4815992c 100644
--- a/src/main/scala/leon/repair/RepairTrackingEvaluator.scala
+++ b/src/main/scala/leon/evaluators/TrackingEvaluator.scala
@@ -1,22 +1,20 @@
 /* Copyright 2009-2016 EPFL, Lausanne */
 
-package leon.repair
+package leon
+package evaluators
+
+import purescala.Common._
+import purescala.Definitions._
+import purescala.Expressions._
+import purescala.Types._
 
-import scala.collection.immutable.Map
 import scala.collection.mutable.{Map => MMap}
-import leon.purescala.Common._
-import leon.purescala.Expressions._
-import leon.purescala.Types._
-import leon.purescala.Definitions._
-import leon.LeonContext
-import leon.evaluators._
 
-/** 
- *  This evaluator tracks all dependencies between function calls (.fullCallGraph)
-  * as well as if each invocation was successful or erroneous (led to an error)
-  * (.fiStatus) 
+/** An [[Evaluator]] that tracks information about the runtime call tree.
+  * Transitive dependencies between function calls are stored in [[fullCallGraph]].
+  * Additionally, [[fiStatus]] tracks if each function invocation was successful or erroneous (led to an error).
   */
-class RepairTrackingEvaluator(ctx: LeonContext, prog: Program) extends RecursiveEvaluator(ctx, prog, 50000) with HasDefaultGlobalContext {
+class TrackingEvaluator(ctx: LeonContext, prog: Program) extends RecursiveEvaluator(ctx, prog, 50000) with HasDefaultGlobalContext {
   type RC = CollectingRecContext
 
   def initRC(mappings: Map[Identifier, Expr]) = CollectingRecContext(mappings, None)
diff --git a/src/main/scala/leon/repair/RepairNDEvaluator.scala b/src/main/scala/leon/repair/RepairNDEvaluator.scala
index 7859f7957..63a114ff9 100644
--- a/src/main/scala/leon/repair/RepairNDEvaluator.scala
+++ b/src/main/scala/leon/repair/RepairNDEvaluator.scala
@@ -8,7 +8,9 @@ import purescala.Expressions._
 import purescala.ExprOps.valuesOf
 import evaluators.StreamEvaluator
 
-/** This evaluator treats the expression [[nd]] (reference equality) as a non-deterministic value */
+/** A [[leon.evaluators.StreamEvaluator StreamEvaluator]] that treats a specified expression [[nd]] as a non-deterministic value
+  * @note Expressions are compared against [[nd]] with reference equality.
+  */
 class RepairNDEvaluator(ctx: LeonContext, prog: Program, nd: Expr) extends StreamEvaluator(ctx, prog) {
 
   override def e(expr: Expr)(implicit rctx: RC, gctx: GC): Stream[Expr] = expr match {
diff --git a/src/main/scala/leon/synthesis/ExamplesBank.scala b/src/main/scala/leon/synthesis/ExamplesBank.scala
index ad75eaace..690ba4b87 100644
--- a/src/main/scala/leon/synthesis/ExamplesBank.scala
+++ b/src/main/scala/leon/synthesis/ExamplesBank.scala
@@ -3,12 +3,11 @@
 package leon
 package synthesis
 
-import evaluators.DefaultEvaluator
 import purescala.Definitions._
 import purescala.Expressions._
 import purescala.Constructors._
 import purescala.Common._
-import repair._
+import evaluators.{TrackingEvaluator, DefaultEvaluator}
 import leon.utils.ASCIIHelpers._
 
 /** Sets of valid and invalid examples */
@@ -18,7 +17,7 @@ case class ExamplesBank(valids: Seq[Example], invalids: Seq[Example]) {
   // Minimize tests of a function so that tests that are invalid because of a
   // recursive call are eliminated
   def minimizeInvalids(fd: FunDef, ctx: LeonContext, program: Program): ExamplesBank = {
-    val evaluator = new RepairTrackingEvaluator(ctx, program)
+    val evaluator = new TrackingEvaluator(ctx, program)
 
     invalids foreach { ts =>
       evaluator.eval(functionInvocation(fd, ts.ins))
-- 
GitLab