diff --git a/js/js.translator/src/org/jetbrains/kotlin/js/translate/callTranslator/CallTranslator.kt b/js/js.translator/src/org/jetbrains/kotlin/js/translate/callTranslator/CallTranslator.kt index 5a9d14fce67..7b5977a43a5 100644 --- a/js/js.translator/src/org/jetbrains/kotlin/js/translate/callTranslator/CallTranslator.kt +++ b/js/js.translator/src/org/jetbrains/kotlin/js/translate/callTranslator/CallTranslator.kt @@ -204,7 +204,7 @@ trait DelegateIntrinsic { // 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) } diff --git a/js/js.translator/src/org/jetbrains/kotlin/js/translate/intrinsic/Intrinsics.java b/js/js.translator/src/org/jetbrains/kotlin/js/translate/intrinsic/Intrinsics.java index 515fbdfadc6..c451d27c934 100644 --- a/js/js.translator/src/org/jetbrains/kotlin/js/translate/intrinsic/Intrinsics.java +++ b/js/js.translator/src/org/jetbrains/kotlin/js/translate/intrinsic/Intrinsics.java @@ -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); } } \ No newline at end of file diff --git a/js/js.translator/src/org/jetbrains/kotlin/js/translate/operation/BinaryOperationTranslator.java b/js/js.translator/src/org/jetbrains/kotlin/js/translate/operation/BinaryOperationTranslator.java index 98c2cf01040..4d738ffc95d 100644 --- a/js/js.translator/src/org/jetbrains/kotlin/js/translate/operation/BinaryOperationTranslator.java +++ b/js/js.translator/src/org/jetbrains/kotlin/js/translate/operation/BinaryOperationTranslator.java @@ -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 diff --git a/js/js.translator/src/org/jetbrains/kotlin/js/translate/reference/DefaultObjectAccessTranslator.java b/js/js.translator/src/org/jetbrains/kotlin/js/translate/reference/DefaultObjectAccessTranslator.java index 8145c2f7ba5..18155c766ee 100644 --- a/js/js.translator/src/org/jetbrains/kotlin/js/translate/reference/DefaultObjectAccessTranslator.java +++ b/js/js.translator/src/org/jetbrains/kotlin/js/translate/reference/DefaultObjectAccessTranslator.java @@ -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); } diff --git a/js/js.translator/src/org/jetbrains/kotlin/js/translate/utils/TranslationUtils.java b/js/js.translator/src/org/jetbrains/kotlin/js/translate/utils/TranslationUtils.java index 88645790688..e6ae6c8ef38 100644 --- a/js/js.translator/src/org/jetbrains/kotlin/js/translate/utils/TranslationUtils.java +++ b/js/js.translator/src/org/jetbrains/kotlin/js/translate/utils/TranslationUtils.java @@ -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; }