From e32e2b828d0d1a25c2697884306260a84607c2dd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mika=C3=ABl=20Mayer?= <mikael.mayer@epfl.ch>
Date: Mon, 29 Feb 2016 18:42:06 +0100
Subject: [PATCH] Hotfix: Wrong class cast

---
 src/main/scala/leon/purescala/DefOps.scala | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/main/scala/leon/purescala/DefOps.scala b/src/main/scala/leon/purescala/DefOps.scala
index c6c51de13..f81e5f44d 100644
--- a/src/main/scala/leon/purescala/DefOps.scala
+++ b/src/main/scala/leon/purescala/DefOps.scala
@@ -413,9 +413,9 @@ object DefOps {
       case e => None
     }(tt).asInstanceOf[T]
     
-    def duplicateClassDef(cd: ClassDef): Unit = {
+    def duplicateClassDef(cd: ClassDef): ClassDef = {
       cdMapCache.get(cd) match {
-        case Some(new_cd) => 
+        case Some(new_cd) => new_cd.get // None would have meant that this class would never be duplicated, which is not possible.
         case None =>
           val parent = cd.parent.map(duplicateAbstractClassType)
           val new_cd = cdMapF(cd).map(f => f(parent)).getOrElse{
@@ -425,6 +425,7 @@ object DefOps {
             }
           }
           cdMapCache += cd -> Some(new_cd)
+          new_cd
       }
     }
     
-- 
GitLab