diff --git a/src/main/scala/leon/purescala/ExprOps.scala b/src/main/scala/leon/purescala/ExprOps.scala index 25a2d0e93cf46d36c78fed5796846a1e47d89674..89770d2cdb84dde2986d580eefef69d21ba106eb 100644 --- a/src/main/scala/leon/purescala/ExprOps.scala +++ b/src/main/scala/leon/purescala/ExprOps.scala @@ -1012,7 +1012,7 @@ object ExprOps { case CharType => CharLiteral('a') case BooleanType => BooleanLiteral(false) case UnitType => UnitLiteral() - case SetType(baseType) => FiniteSet(Set(), tpe) + case SetType(baseType) => FiniteSet(Set(), baseType) case MapType(fromType, toType) => FiniteMap(Nil, fromType, toType) case TupleType(tpes) => Tuple(tpes.map(simplestValue)) case ArrayType(tpe) => EmptyArray(tpe) diff --git a/src/test/scala/leon/test/purescala/ExprOpsSuite.scala b/src/test/scala/leon/test/purescala/ExprOpsSuite.scala index 482777b744e1c892e03c162cf2c2645cee46faa8..de304264d9c2454e4a31cfc96597ea49e0c6d810 100644 --- a/src/test/scala/leon/test/purescala/ExprOpsSuite.scala +++ b/src/test/scala/leon/test/purescala/ExprOpsSuite.scala @@ -6,6 +6,8 @@ import leon.test._ import leon.purescala.Common._ import leon.purescala.Expressions._ import leon.purescala.Types._ +import leon.purescala.TypeOps._ +import leon.purescala.Definitions._ import leon.purescala.ExprOps._ class ExprOpsSuite extends LeonTestSuite with helpers.WithLikelyEq with helpers.ExpressionsDSL { @@ -262,4 +264,19 @@ class ExprOpsSuite extends LeonTestSuite with helpers.WithLikelyEq with helpers. assert( postMap(op, true)(expr) == Plus(bi(42), Minus(bi(42), bi(3))) ) } + + test("simplestValue") { ctx => + val types = Seq(BooleanType, + Int32Type, + IntegerType, + SetType(BooleanType), + TupleType(Seq(BooleanType, BooleanType)), + MapType(Int32Type, BooleanType)) + + for (t <- types) { + val v = simplestValue(t) + assert(isSubtypeOf(v.getType, t), "SimplestValue of "+t+": "+v+":"+v.getType) + } + + } }