From 15a2c73170e310db5b972e0370081de53ef76392 Mon Sep 17 00:00:00 2001 From: Manos Koukoutos <emmanouil.koukoutos@epfl.ch> Date: Fri, 11 Mar 2016 16:00:45 +0100 Subject: [PATCH] Fix comparison bugs --- .../scala/leon/solvers/combinators/UnrollingSolver.scala | 2 +- src/main/scala/leon/solvers/z3/FairZ3Solver.scala | 9 +-------- src/main/scala/leon/synthesis/rules/StringRender.scala | 2 +- 3 files changed, 3 insertions(+), 10 deletions(-) diff --git a/src/main/scala/leon/solvers/combinators/UnrollingSolver.scala b/src/main/scala/leon/solvers/combinators/UnrollingSolver.scala index 2e896736f..6594eb07e 100644 --- a/src/main/scala/leon/solvers/combinators/UnrollingSolver.scala +++ b/src/main/scala/leon/solvers/combinators/UnrollingSolver.scala @@ -663,7 +663,7 @@ class UnrollingSolver(val context: LeonContext, val program: Program, underlying override def foundAnswer(res: Option[Boolean], model: Model = Model.empty, core: Set[Expr] = Set.empty) = { super.foundAnswer(res, model, core) - if (!interrupted && res == None && model == None) { + if (!interrupted && res.isEmpty && model.isEmpty) { reporter.ifDebug { debug => debug("Unknown result!?") } diff --git a/src/main/scala/leon/solvers/z3/FairZ3Solver.scala b/src/main/scala/leon/solvers/z3/FairZ3Solver.scala index d87559f93..fa3352b1e 100644 --- a/src/main/scala/leon/solvers/z3/FairZ3Solver.scala +++ b/src/main/scala/leon/solvers/z3/FairZ3Solver.scala @@ -10,18 +10,11 @@ import _root_.z3.scala._ import purescala.Common._ import purescala.Definitions._ import purescala.Expressions._ -import purescala.Constructors._ -import purescala.Quantification._ import purescala.ExprOps._ import purescala.Types._ import solvers.templates._ import solvers.combinators._ -import Template._ - -import evaluators._ - -import termination._ class FairZ3Solver(val context: LeonContext, val program: Program) extends AbstractZ3Solver @@ -211,7 +204,7 @@ class FairZ3Solver(val context: LeonContext, val program: Program) override def foundAnswer(res: Option[Boolean], model: Model = Model.empty, core: Set[Expr] = Set.empty) = { super.foundAnswer(res, model, core) - if (!interrupted && res == None && model == None) { + if (!interrupted && res.isEmpty && model.isEmpty) { reporter.ifDebug { debug => if (solver.getReasonUnknown != "canceled") { debug("Z3 returned unknown: " + solver.getReasonUnknown) diff --git a/src/main/scala/leon/synthesis/rules/StringRender.scala b/src/main/scala/leon/synthesis/rules/StringRender.scala index 7085ed7d9..ec681763e 100644 --- a/src/main/scala/leon/synthesis/rules/StringRender.scala +++ b/src/main/scala/leon/synthesis/rules/StringRender.scala @@ -419,7 +419,7 @@ case object StringRender extends Rule("StringRender") { .excludeFunction(hctx.functionContext) .prettyPrintersForType(input.getType)(hctx, hctx.program) .map(l => (application(l, Seq(input)), List[Identifier]())) // Use already pre-defined pretty printers. - val exprs1 = exprs1s.toList.sortBy{ case (Lambda(_, FunctionInvocation(fd, _)), _) if fd == hctx.functionContext => 0 case _ => 1} + val exprs1 = exprs1s.toList.sortBy{ case (Lambda(_, FunctionInvocation(tfd, _)), _) if tfd.fd == hctx.functionContext => 0 case _ => 1} val exprs2 = ctx.abstractStringConverters.getOrElse(input.getType, Nil).map(f => (f(input), List[Identifier]())) val defaultConverters: Stream[WithIds[Expr]] = exprs1.toStream #::: exprs2.toStream val recursiveConverters: Stream[WithIds[Expr]] = -- GitLab