diff --git a/src/main/scala/leon/purescala/DefOps.scala b/src/main/scala/leon/purescala/DefOps.scala index ef9fc37b39c18c8ce6a0430dcb69901d227f85d4..649c84472f2399f6530b5762326a1f3d763bc5c4 100644 --- a/src/main/scala/leon/purescala/DefOps.scala +++ b/src/main/scala/leon/purescala/DefOps.scala @@ -388,7 +388,7 @@ object DefOps { }(p) private def defaultCdMap(cc: CaseClass, ccd: CaseClassType): Option[Expr] = (cc, ccd) match { - case (CaseClass(old, args), newCcd) if old.classDef != newCcd => + case (CaseClass(old, args), newCcd) if old.classDef != newCcd.classDef => Some(CaseClass(newCcd, args)) case _ => None @@ -401,7 +401,7 @@ object DefOps { * @param ciMapF Given a previous case class invocation and its new case class definition, returns the expression to use. * By default it is the case class construction using the new case class definition. * @return the new program with a map from the old case classes to the new case classes, with maps concerning identifiers and function definitions. */ - def replaceCaseClassDefs(p: Program)(_cdMapF: CaseClassDef => Option[Option[AbstractClassType] => CaseClassDef], + def replaceCaseClassDefs(p: Program)(cdMapF: CaseClassDef => Option[Option[AbstractClassType] => CaseClassDef], ciMapF: (CaseClass, CaseClassType) => Option[Expr] = defaultCdMap) : (Program, Map[ClassDef, ClassDef], Map[Identifier, Identifier], Map[FunDef, FunDef]) = { var cdMapFCache = Map[CaseClassDef, Option[Option[AbstractClassType] => CaseClassDef]]() @@ -413,7 +413,7 @@ object DefOps { cd match { case ccd: CaseClassDef => cdMapFCache.getOrElse(ccd, { - val new_cd_potential = _cdMapF(ccd) + val new_cd_potential = cdMapF(ccd) cdMapFCache += ccd -> new_cd_potential new_cd_potential })