JS backend: inline private class ExtensionCallConstructor to place of use.
(cherry picked from commit 4d17e96)
This commit is contained in:
@@ -150,8 +150,19 @@ public final class CallTranslator extends AbstractTranslator {
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public JsExpression extensionFunctionCall(boolean useThis) {
|
||||
return callType.constructCall(callParameters.getReceiver(), new ExtensionCallConstructor(useThis), context());
|
||||
public JsExpression extensionFunctionCall(final boolean useThis) {
|
||||
return callType.constructCall(callParameters.getReceiver(), new CallType.CallConstructor() {
|
||||
@NotNull
|
||||
@Override
|
||||
public JsExpression construct(@Nullable JsExpression receiver) {
|
||||
assert receiver != null : "Could not be null for extensions";
|
||||
JsExpression functionReference = callParameters.getFunctionReference();
|
||||
if (useThis) {
|
||||
setQualifier(functionReference, getThisObjectOrQualifier());
|
||||
}
|
||||
return new JsInvocation(callParameters.getFunctionReference(), generateCallArgumentList(receiver));
|
||||
}
|
||||
}, context());
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@@ -215,23 +226,4 @@ public final class CallTranslator extends AbstractTranslator {
|
||||
}
|
||||
return context().getQualifierForDescriptor(descriptor);
|
||||
}
|
||||
|
||||
private class ExtensionCallConstructor implements CallType.CallConstructor {
|
||||
private final boolean useThis;
|
||||
|
||||
private ExtensionCallConstructor(boolean useThis) {
|
||||
this.useThis = useThis;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public JsExpression construct(@Nullable JsExpression receiver) {
|
||||
assert receiver != null : "Could not be null for extensions";
|
||||
JsExpression functionReference = callParameters.getFunctionReference();
|
||||
if (useThis) {
|
||||
setQualifier(functionReference, getThisObjectOrQualifier());
|
||||
}
|
||||
return new JsInvocation(callParameters.getFunctionReference(), generateCallArgumentList(receiver));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user