From ff41b7b93ffbf59b685815b1fc28a7649fa58123 Mon Sep 17 00:00:00 2001 From: Etienne Kneuss <ekneuss@gmail.com> Date: Mon, 20 Apr 2015 17:57:59 +0200 Subject: [PATCH] Make sure we don't crash in case there is no variables --- .../leon/solvers/smtlib/SMTLIBTarget.scala | 24 +++++++++++-------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/src/main/scala/leon/solvers/smtlib/SMTLIBTarget.scala b/src/main/scala/leon/solvers/smtlib/SMTLIBTarget.scala index fd687b778..8d4d7c174 100644 --- a/src/main/scala/leon/solvers/smtlib/SMTLIBTarget.scala +++ b/src/main/scala/leon/solvers/smtlib/SMTLIBTarget.scala @@ -702,20 +702,24 @@ trait SMTLIBTarget { override def getModel: Map[Identifier, Expr] = { val syms = variables.bSet.toList - val cmd: Command = - GetValue(syms.head, - syms.tail.map(s => QualifiedIdentifier(SMTIdentifier(s))) - ) + if (syms.isEmpty) { + Map() + } else { + val cmd: Command = + GetValue(syms.head, + syms.tail.map(s => QualifiedIdentifier(SMTIdentifier(s))) + ) - val GetValueResponseSuccess(valuationPairs) = sendCommand(cmd) + val GetValueResponseSuccess(valuationPairs) = sendCommand(cmd) - valuationPairs.collect { - case (SimpleSymbol(sym), value) if variables.containsB(sym) => - val id = variables.toA(sym) + valuationPairs.collect { + case (SimpleSymbol(sym), value) if variables.containsB(sym) => + val id = variables.toA(sym) - (id, fromSMT(value, id.getType)(Map(), Map())) - }.toMap + (id, fromSMT(value, id.getType)(Map(), Map())) + }.toMap + } } override def push(): Unit = { -- GitLab