From 12896ea56ab2821e743973c265c6f486b2d3a5f7 Mon Sep 17 00:00:00 2001 From: Etienne Kneuss <colder@php.net> Date: Mon, 26 Aug 2013 13:46:35 +0200 Subject: [PATCH] Replacing empty finite sets should keep type information --- src/main/scala/leon/purescala/Extractors.scala | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/main/scala/leon/purescala/Extractors.scala b/src/main/scala/leon/purescala/Extractors.scala index 8837ee937..5c2571719 100644 --- a/src/main/scala/leon/purescala/Extractors.scala +++ b/src/main/scala/leon/purescala/Extractors.scala @@ -88,7 +88,17 @@ object Extractors { case CaseClass(cd, args) => Some((args, CaseClass(cd, _))) case And(args) => Some((args, And.apply)) case Or(args) => Some((args, Or.apply)) - case FiniteSet(args) => Some((args, FiniteSet)) + case FiniteSet(args) => + Some((args, + { newargs => + if (newargs.isEmpty) { + FiniteSet(Seq()).setType(expr.getType) + } else { + FiniteSet(newargs) + } + } + )) + case FiniteMap(args) => { val subArgs = args.flatMap{case (k, v) => Seq(k, v)} val builder: (Seq[Expr]) => Expr = (as: Seq[Expr]) => { -- GitLab