fix for NPE
This commit is contained in:
@@ -124,7 +124,7 @@ public class CallableMethod implements Callable {
|
||||
}
|
||||
|
||||
public boolean isNeedsThis() {
|
||||
return thisClass != null;
|
||||
return thisClass != null && generateCalleeType == null;
|
||||
}
|
||||
|
||||
public boolean isNeedsReceiver() {
|
||||
|
||||
@@ -91,6 +91,7 @@ public class ClosureCodegen extends ObjectOrClosureCodegen {
|
||||
if (fd.getReceiverParameter().exists()) {
|
||||
result.setNeedsReceiver(fd);
|
||||
}
|
||||
result.setNeedsThis(getInternalType(fd));
|
||||
result.requestGenerateCallee(Type.getObjectType(getInternalClassName(fd)));
|
||||
return result;
|
||||
}
|
||||
@@ -337,6 +338,16 @@ public class ClosureCodegen extends ObjectOrClosureCodegen {
|
||||
}
|
||||
}
|
||||
|
||||
public static ClassDescriptor getInternalType(FunctionDescriptor descriptor) {
|
||||
final int paramCount = descriptor.getValueParameters().size();
|
||||
if (descriptor.getReceiverParameter().exists()) {
|
||||
return JetStandardClasses.getReceiverFunction(paramCount);
|
||||
}
|
||||
else {
|
||||
return JetStandardClasses.getFunction(paramCount);
|
||||
}
|
||||
}
|
||||
|
||||
private void appendType(SignatureWriter signatureWriter, JetType type, char variance) {
|
||||
signatureWriter.visitTypeArgument(variance);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user