Refactoring: inline methods and hide intermediate class
This commit is contained in:
+1
-1
@@ -204,7 +204,7 @@ trait DelegateIntrinsic<I : CallInfo> {
|
||||
|
||||
// Now intrinsic support only FunctionDescriptor. See DelegatePropertyAccessIntrinsic.getDescriptor()
|
||||
if (descriptor is FunctionDescriptor) {
|
||||
val intrinsic = context.intrinsics().getFunctionIntrinsics().getIntrinsic(descriptor)
|
||||
val intrinsic = context.intrinsics().getFunctionIntrinsic(descriptor)
|
||||
if (intrinsic.exists()) {
|
||||
return intrinsic.apply(this, getArgs(), context)
|
||||
}
|
||||
|
||||
@@ -17,9 +17,16 @@
|
||||
package org.jetbrains.kotlin.js.translate.intrinsic;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.kotlin.descriptors.ClassDescriptor;
|
||||
import org.jetbrains.kotlin.descriptors.FunctionDescriptor;
|
||||
import org.jetbrains.kotlin.js.translate.context.TranslationContext;
|
||||
import org.jetbrains.kotlin.js.translate.intrinsic.functions.FunctionIntrinsics;
|
||||
import org.jetbrains.kotlin.js.translate.intrinsic.functions.basic.FunctionIntrinsic;
|
||||
import org.jetbrains.kotlin.js.translate.intrinsic.objects.ObjectIntrinsic;
|
||||
import org.jetbrains.kotlin.js.translate.intrinsic.objects.ObjectIntrinsics;
|
||||
import org.jetbrains.kotlin.js.translate.intrinsic.operation.BinaryOperationIntrinsic;
|
||||
import org.jetbrains.kotlin.js.translate.intrinsic.operation.BinaryOperationIntrinsics;
|
||||
import org.jetbrains.kotlin.psi.JetBinaryExpression;
|
||||
|
||||
/**
|
||||
* Provides mechanism to substitute method calls /w native constructs directly.
|
||||
@@ -30,17 +37,20 @@ public final class Intrinsics {
|
||||
private final ObjectIntrinsics objectIntrinsics = new ObjectIntrinsics();
|
||||
|
||||
@NotNull
|
||||
public BinaryOperationIntrinsics getBinaryOperationIntrinsics() {
|
||||
return binaryOperationIntrinsics;
|
||||
public BinaryOperationIntrinsic getBinaryOperationIntrinsic(
|
||||
@NotNull JetBinaryExpression expression,
|
||||
@NotNull TranslationContext context
|
||||
) {
|
||||
return binaryOperationIntrinsics.getIntrinsic(expression, context);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public FunctionIntrinsics getFunctionIntrinsics() {
|
||||
return functionIntrinsics;
|
||||
public FunctionIntrinsic getFunctionIntrinsic(@NotNull FunctionDescriptor descriptor) {
|
||||
return functionIntrinsics.getIntrinsic(descriptor);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public ObjectIntrinsics getObjectIntrinsics() {
|
||||
return objectIntrinsics;
|
||||
public ObjectIntrinsic getObjectIntrinsic(@NotNull ClassDescriptor classDescriptor) {
|
||||
return objectIntrinsics.getIntrinsic(classDescriptor);
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -155,7 +155,7 @@ public final class BinaryOperationTranslator extends AbstractTranslator {
|
||||
|
||||
@NotNull
|
||||
private BinaryOperationIntrinsic getIntrinsicForExpression() {
|
||||
return context().intrinsics().getBinaryOperationIntrinsics().getIntrinsic(expression, context());
|
||||
return context().intrinsics().getBinaryOperationIntrinsic(expression, context());
|
||||
}
|
||||
|
||||
@NotNull
|
||||
|
||||
+1
-1
@@ -67,7 +67,7 @@ public class DefaultObjectAccessTranslator extends AbstractTranslator implements
|
||||
@NotNull
|
||||
private static JsExpression generateReferenceToDefaultObject(@NotNull DeclarationDescriptor descriptor, @NotNull TranslationContext context) {
|
||||
if (descriptor instanceof ClassDescriptor) {
|
||||
ObjectIntrinsic objectIntrinsic = context.intrinsics().getObjectIntrinsics().getIntrinsic((ClassDescriptor) descriptor);
|
||||
ObjectIntrinsic objectIntrinsic = context.intrinsics().getObjectIntrinsic((ClassDescriptor) descriptor);
|
||||
if (objectIntrinsic.exists()) {
|
||||
return objectIntrinsic.apply(context);
|
||||
}
|
||||
|
||||
@@ -17,8 +17,6 @@
|
||||
package org.jetbrains.kotlin.js.translate.utils;
|
||||
|
||||
import com.google.dart.compiler.backend.js.ast.*;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.util.Function;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.kotlin.builtins.KotlinBuiltIns;
|
||||
@@ -30,7 +28,6 @@ import org.jetbrains.kotlin.js.translate.general.Translation;
|
||||
import org.jetbrains.kotlin.psi.*;
|
||||
import org.jetbrains.kotlin.resolve.DescriptorUtils;
|
||||
import org.jetbrains.kotlin.types.JetType;
|
||||
import org.jetbrains.kotlin.types.TypeProjection;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
@@ -42,7 +39,6 @@ import static org.jetbrains.kotlin.js.translate.utils.BindingUtils.getCallableDe
|
||||
import static org.jetbrains.kotlin.js.translate.utils.JsAstUtils.assignment;
|
||||
import static org.jetbrains.kotlin.js.translate.utils.JsAstUtils.createDataDescriptor;
|
||||
import static org.jetbrains.kotlin.js.translate.utils.ManglingUtils.getMangledName;
|
||||
import static org.jetbrains.kotlin.resolve.DescriptorUtils.getFqName;
|
||||
import static org.jetbrains.kotlin.resolve.DescriptorUtils.isAnonymousObject;
|
||||
|
||||
public final class TranslationUtils {
|
||||
@@ -222,7 +218,7 @@ public final class TranslationUtils {
|
||||
if (returnType != null &&
|
||||
KotlinBuiltIns.getInstance().getCharType().equals(returnType) || (KotlinBuiltIns.getInstance().getLongType().equals(returnType))) return false;
|
||||
|
||||
if (context.intrinsics().getFunctionIntrinsics().getIntrinsic((FunctionDescriptor) operationDescriptor).exists()) return true;
|
||||
if (context.intrinsics().getFunctionIntrinsic((FunctionDescriptor) operationDescriptor).exists()) return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user