Fixed methodCalls with no receiver

This commit is contained in:
Jochen Seyfried 2024-07-03 11:56:47 +02:00
parent 1100cef668
commit 97ab66122e

View File

@ -121,7 +121,9 @@ public class MethodCallStatementExpression extends AbstractType implements IExpr
throw new ExecutionControl.NotImplementedException("Receiver type not supported.");
}
} else {
throw new ExecutionControl.NotImplementedException("Receiver is null.");
mv.visitVarInsn(Opcodes.ALOAD, 0);
owner = thisClass;
}
String returnOfPreviousMethod = null;
// Invoke the method for each receiving method in the chain
@ -185,12 +187,17 @@ public class MethodCallStatementExpression extends AbstractType implements IExpr
}
descriptor.append(")");
String classToSearchMethodIn;
//Return Type
String classToSearchMethodIn = localVars.get(receiver.identifier);
if (classToSearchMethodIn == null) {
classToSearchMethodIn = returnOfPreviousMethod;
}
if (classToSearchMethodIn == null) {
if (receiver != null) {
classToSearchMethodIn = localVars.get(receiver.identifier);
if (classToSearchMethodIn == null) {
classToSearchMethodIn = returnOfPreviousMethod;
}
if (classToSearchMethodIn == null) {
classToSearchMethodIn = thisClass;
}
} else {
classToSearchMethodIn = thisClass;
}