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