diff --git a/src/main/scala/leon/purescala/ExprOps.scala b/src/main/scala/leon/purescala/ExprOps.scala index 84b1957b56615694992bbdbd8e588218876b8cb1..2f1c610c067c6a99bd0135f5b2aeef0f5e1d1279 100644 --- a/src/main/scala/leon/purescala/ExprOps.scala +++ b/src/main/scala/leon/purescala/ExprOps.scala @@ -1112,17 +1112,17 @@ object ExprOps { case ArrayType(tpe) => EmptyArray(tpe) case act @ AbstractClassType(acd, tpe) => - val children = act.knownCCDescendants + val ccDesc = act.knownCCDescendants def isRecursive(cct: CaseClassType): Boolean = { cct.fieldsTypes.exists{ - case AbstractClassType(fieldAcd, _) => acd == fieldAcd - case CaseClassType(fieldCcd, _) => acd == fieldCcd + case AbstractClassType(fieldAcd, _) => acd.root == fieldAcd.root + case CaseClassType(fieldCcd, _) => acd.root == fieldCcd.root case _ => false } } - val nonRecChildren = children.filterNot(isRecursive).sortBy(_.fields.size) + val nonRecChildren = ccDesc.filterNot(isRecursive).sortBy(_.fields.size) nonRecChildren.headOption match { case Some(cct) =>