diff --git a/latte/src/main/java/typechecking/LatteClassFirstPass.java b/latte/src/main/java/typechecking/LatteClassFirstPass.java index a437063..a0badc0 100644 --- a/latte/src/main/java/typechecking/LatteClassFirstPass.java +++ b/latte/src/main/java/typechecking/LatteClassFirstPass.java @@ -24,8 +24,8 @@ public LatteClassFirstPass(SymbolicEnvironment se, PermissionEnvironment pe, public void visitCtClass(CtClass ctClass) { logInfo("Visiting class: " + ctClass.getSimpleName()); // Add the class to the type reference and class map - CtTypeReference typeRef = ctClass.getReference(); - maps.addTypeClass(typeRef, ctClass); + CtTypeReference typeRef1 = ctClass.getReference(); + maps.addTypeClass(typeRef1, ctClass); super.visitCtClass(ctClass); } diff --git a/latte/src/main/java/typechecking/LatteTypeChecker.java b/latte/src/main/java/typechecking/LatteTypeChecker.java index 3bc1005..16c816e 100644 --- a/latte/src/main/java/typechecking/LatteTypeChecker.java +++ b/latte/src/main/java/typechecking/LatteTypeChecker.java @@ -191,7 +191,7 @@ public void visitCtInvocation(CtInvocation invocation) { if (invocation.getTarget() == null){ logError("Invocation needs to have a target but found none -", invocation); } - CtTypeReference e = invocation.getTarget().getType(); + CtTypeReference e = invocation.getTarget().getType().getTypeErasure(); // method(Ξ“(π‘₯), 𝑓 ) = 𝛼 𝐢 π‘š(𝛼0 𝐢0 this, 𝛼1 𝐢1 π‘₯1, Β· Β· Β· , 𝛼𝑛 𝐢𝑛 π‘₯𝑛 ) CtClass klass = maps.getClassFrom(e); @@ -199,7 +199,7 @@ public void visitCtInvocation(CtInvocation invocation) { invocation.getArguments().size()); if (m == null){ - logInfo(String.format("Cannot find method {} for {} in the context", metName, invocation.getType())); + logInfo("Cannot find method {" + metName + "} for {} in the context"); return; } List paramSymbValues = new ArrayList<>();