From 28dc5d788c48a97f5fee3296f8414935404d6372 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Fri, 15 Jul 2016 14:41:45 +0300 Subject: [PATCH] Minor, make JavaClassProperty intrinsic a singleton --- .../backend/src/org/jetbrains/kotlin/codegen/StackValue.java | 2 +- .../jetbrains/kotlin/codegen/intrinsics/IntrinsicMethods.java | 2 +- .../jetbrains/kotlin/codegen/intrinsics/JavaClassProperty.kt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/StackValue.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/StackValue.java index b931f883355..28f5e1e75c0 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/StackValue.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/StackValue.java @@ -1538,7 +1538,7 @@ public abstract class StackValue { if (descriptor instanceof PropertyDescriptor && // hackaround: boxing changes behaviour of T.javaClass intrinsic - !(state.getIntrinsics().getIntrinsic((PropertyDescriptor) descriptor) instanceof JavaClassProperty) + state.getIntrinsics().getIntrinsic((PropertyDescriptor) descriptor) != JavaClassProperty.INSTANCE ) { ReceiverParameterDescriptor receiverCandidate = descriptor.getExtensionReceiverParameter(); assert receiverCandidate != null; diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/intrinsics/IntrinsicMethods.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/intrinsics/IntrinsicMethods.java index 2b6a1cfd6e7..9d791ff2a34 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/intrinsics/IntrinsicMethods.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/intrinsics/IntrinsicMethods.java @@ -60,7 +60,7 @@ public class IntrinsicMethods { private final IntrinsicsMap intrinsicsMap = new IntrinsicsMap(); public IntrinsicMethods() { - intrinsicsMap.registerIntrinsic(KOTLIN_JVM, RECEIVER_PARAMETER_FQ_NAME, "javaClass", -1, new JavaClassProperty()); + intrinsicsMap.registerIntrinsic(KOTLIN_JVM, RECEIVER_PARAMETER_FQ_NAME, "javaClass", -1, JavaClassProperty.INSTANCE); intrinsicsMap.registerIntrinsic(KOTLIN_JVM, KotlinBuiltIns.FQ_NAMES.kClass, "java", -1, new KClassJavaProperty()); intrinsicsMap.registerIntrinsic(KotlinBuiltIns.FQ_NAMES.kCallable.toSafe(), null, "name", -1, new KCallableNameProperty()); intrinsicsMap.registerIntrinsic(new FqName("kotlin.jvm.internal.unsafe"), null, "monitorEnter", 1, MonitorInstruction.MONITOR_ENTER); diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/intrinsics/JavaClassProperty.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/intrinsics/JavaClassProperty.kt index 98a4ce523e8..cf30a271553 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/intrinsics/JavaClassProperty.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/intrinsics/JavaClassProperty.kt @@ -28,7 +28,7 @@ import org.jetbrains.kotlin.resolve.jvm.AsmTypes.getType import org.jetbrains.org.objectweb.asm.Type import org.jetbrains.org.objectweb.asm.commons.InstructionAdapter -class JavaClassProperty : IntrinsicPropertyGetter() { +object JavaClassProperty : IntrinsicPropertyGetter() { override fun generate( resolvedCall: ResolvedCall<*>?, codegen: ExpressionCodegen,