From 70fb50c21527ccf1ea1e2f22c32d2b5d12f8c796 Mon Sep 17 00:00:00 2001 From: Manos Koukoutos <emmanouil.koukoutos@epfl.ch> Date: Tue, 10 May 2016 17:11:15 +0200 Subject: [PATCH] Make this message more explicit --- src/main/scala/leon/purescala/Constructors.scala | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/main/scala/leon/purescala/Constructors.scala b/src/main/scala/leon/purescala/Constructors.scala index 02ac92f8f..16b7932d6 100644 --- a/src/main/scala/leon/purescala/Constructors.scala +++ b/src/main/scala/leon/purescala/Constructors.scala @@ -71,8 +71,11 @@ object Constructors { Let(x, value, body) case xs => require( - value.getType.isInstanceOf[TupleType], - s"The definition value in LetTuple must be of some tuple type; yet we got [${value.getType}]. In expr: \n$value" + value.getType match { + case TupleType(args) => args.size == xs.size + case _ => false + }, + s"In letTuple: '$value' is being assigned as a tuple of arity ${xs.size}; yet its type is '${value.getType}' (body is '$body')" ) Extractors.LetPattern(TuplePattern(None,binders map { b => WildcardPattern(Some(b)) }), value, body) -- GitLab