From ffec223eb22969f4fe72af80e6956d1aff8fc153 Mon Sep 17 00:00:00 2001
From: Etienne Kneuss <ekneuss@gmail.com>
Date: Wed, 6 May 2015 22:55:45 +0200
Subject: [PATCH] Instantiate types in method calls as well

instantiateType needs to apply on MethodInvocation as well since it is
used before MethodLifing
---
 src/main/scala/leon/purescala/TypeOps.scala | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/main/scala/leon/purescala/TypeOps.scala b/src/main/scala/leon/purescala/TypeOps.scala
index 1f05a5d64..56f77cabb 100644
--- a/src/main/scala/leon/purescala/TypeOps.scala
+++ b/src/main/scala/leon/purescala/TypeOps.scala
@@ -263,6 +263,9 @@ object TypeOps {
           case fi @ FunctionInvocation(TypedFunDef(fd, tps), args) =>
             FunctionInvocation(TypedFunDef(fd, tps.map(tpeSub)), args.map(srec)).copiedFrom(fi)
 
+          case mi @ MethodInvocation(r, cd, TypedFunDef(fd, tps), args) =>
+            MethodInvocation(srec(r), cd, TypedFunDef(fd, tps.map(tpeSub)), args.map(srec)).copiedFrom(mi)
+
           case cc @ CaseClass(ct, args) =>
             CaseClass(tpeSub(ct).asInstanceOf[CaseClassType], args.map(srec)).copiedFrom(cc)
 
-- 
GitLab