diff --git a/src/main/scala/leon/xlang/AntiAliasingPhase.scala b/src/main/scala/leon/xlang/AntiAliasingPhase.scala index 28f1ad9c64dafa2bfb56dfb3dcba5e409defdce4..a7adbfbaad618f79e930e9302fa8733515b198fb 100644 --- a/src/main/scala/leon/xlang/AntiAliasingPhase.scala +++ b/src/main/scala/leon/xlang/AntiAliasingPhase.scala @@ -164,7 +164,7 @@ object AntiAliasingPhase extends TransformationPhase { updatedFunDefs.get(fd.fd) match { case None => (None, bindings) case Some(nfd) => { - val nfi = FunctionInvocation(nfd.typed, args).setPos(fi) + val nfi = FunctionInvocation(nfd.typed(fd.tps), args).setPos(fi) val fiEffects = effects.getOrElse(fd.fd, Set()) if(fiEffects.nonEmpty) { val modifiedArgs: Seq[Variable] = @@ -267,7 +267,9 @@ object AntiAliasingPhase extends TransformationPhase { if(!effects.isDefinedAt(fi.tfd.fd)) { println("fi not defined: " + fi) } - val mutatedParams: Set[Int] = effects(fi.tfd.fd) + //TODO: the require should be fine once we consider nested functions as well + //require(effects.isDefinedAt(fi.tfd.fd) + val mutatedParams: Set[Int] = effects.get(fi.tfd.fd).getOrElse(Set()) fi.args.zipWithIndex.flatMap{ case (Variable(id), i) if mutatedParams.contains(i) => Some(id) case _ => None