fix for NPE
This commit is contained in:
@@ -124,7 +124,7 @@ public class CallableMethod implements Callable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean isNeedsThis() {
|
public boolean isNeedsThis() {
|
||||||
return thisClass != null;
|
return thisClass != null && generateCalleeType == null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isNeedsReceiver() {
|
public boolean isNeedsReceiver() {
|
||||||
|
|||||||
@@ -91,6 +91,7 @@ public class ClosureCodegen extends ObjectOrClosureCodegen {
|
|||||||
if (fd.getReceiverParameter().exists()) {
|
if (fd.getReceiverParameter().exists()) {
|
||||||
result.setNeedsReceiver(fd);
|
result.setNeedsReceiver(fd);
|
||||||
}
|
}
|
||||||
|
result.setNeedsThis(getInternalType(fd));
|
||||||
result.requestGenerateCallee(Type.getObjectType(getInternalClassName(fd)));
|
result.requestGenerateCallee(Type.getObjectType(getInternalClassName(fd)));
|
||||||
return result;
|
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) {
|
private void appendType(SignatureWriter signatureWriter, JetType type, char variance) {
|
||||||
signatureWriter.visitTypeArgument(variance);
|
signatureWriter.visitTypeArgument(variance);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user