Fixed methodCalls with no receiver

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

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