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
|
@NotNull
|
||||||
public JsExpression extensionFunctionCall(boolean useThis) {
|
public JsExpression extensionFunctionCall(final boolean useThis) {
|
||||||
return callType.constructCall(callParameters.getReceiver(), new ExtensionCallConstructor(useThis), context());
|
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
|
@NotNull
|
||||||
@@ -215,23 +226,4 @@ public final class CallTranslator extends AbstractTranslator {
|
|||||||
}
|
}
|
||||||
return context().getQualifierForDescriptor(descriptor);
|
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