From 9183f16ff05ad383d70ffa16b4944844b08e0152 Mon Sep 17 00:00:00 2001 From: Etienne Kneuss <etienne.kneuss@epfl.ch> Date: Tue, 16 Sep 2014 12:30:09 +0200 Subject: [PATCH] Tracing now includes values for binders/patterns in MatchExpr --- src/main/scala/leon/evaluators/TracingEvaluator.scala | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/scala/leon/evaluators/TracingEvaluator.scala b/src/main/scala/leon/evaluators/TracingEvaluator.scala index 273270b46..e99cd8269 100644 --- a/src/main/scala/leon/evaluators/TracingEvaluator.scala +++ b/src/main/scala/leon/evaluators/TracingEvaluator.scala @@ -17,7 +17,7 @@ class TracingEvaluator(ctx: LeonContext, prog: Program, maxSteps: Int = 1000) ex def initGC = new TracingGlobalContext(Nil) - class TracingGlobalContext(var values: List[(Expr, Expr)]) extends GlobalContext + class TracingGlobalContext(var values: List[(Tree, Expr)]) extends GlobalContext case class TracingRecContext(mappings: Map[Identifier, Expr], tracingFrames: Int) extends RecContext { def withVars(news: Map[Identifier, Expr]) = copy(mappings = news) @@ -37,7 +37,7 @@ class TracingEvaluator(ctx: LeonContext, prog: Program, maxSteps: Int = 1000) ex val r = cases.toStream.map(c => matchesCase(rscrut, c)).find(_.nonEmpty) match { case Some(Some((c, mappings))) => - gctx.values ++= mappings.map { case (id, v) => id.toVariable.setPos(id) -> v } + gctx.values ++= (Map(c.pattern -> rscrut) ++ mappings.map { case (id, v) => id.toVariable.setPos(id) -> v }) e(c.rhs)(rctx.withNewVars(mappings), gctx) case _ => -- GitLab