reached in wrong class and missing typecheckcall on parameters iexpression

This commit is contained in:
Krauß, Josefine 2024-07-01 11:19:31 +02:00
parent cd9fc46a1f
commit 5b0dc04bd7

View File

@ -57,7 +57,7 @@ public class MethodCallStatementExpression extends AbstractType implements IExpr
receiver.instVarExpression.typeCheck(methodContext, typeContext, localVars); receiver.instVarExpression.typeCheck(methodContext, typeContext, localVars);
currentType = typeContext.get(typeOfSubreceiver).get(mostLeftField); currentType = typeContext.get(typeOfSubreceiver).get(mostLeftField);
} else { } else {
currentType = thisClass; currentType = classToSearchMethodIn;
} }
} else { } else {
currentType = thisClass; currentType = thisClass;
@ -74,6 +74,9 @@ public class MethodCallStatementExpression extends AbstractType implements IExpr
} }
currentType = (String) methodContext.get(currentType).get(methodName).keySet().toArray()[0]; currentType = (String) methodContext.get(currentType).get(methodName).keySet().toArray()[0];
for (IExpression argument : arguments) {
argument.typeCheck(methodContext, typeContext, localVars);
}
TypeCheckResult result = new TypeCheckResult(); TypeCheckResult result = new TypeCheckResult();
result.type = currentType; result.type = currentType;
setTypeCheckResult(result); setTypeCheckResult(result);