diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/AsmUtil.java b/compiler/backend/src/org/jetbrains/jet/codegen/AsmUtil.java index 8a32a2d8de1..f367c153198 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/AsmUtil.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/AsmUtil.java @@ -25,6 +25,7 @@ import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.codegen.binding.CalculatedClosure; import org.jetbrains.jet.codegen.binding.CodegenBinding; import org.jetbrains.jet.codegen.context.CodegenContext; +import org.jetbrains.jet.codegen.intrinsics.IntrinsicMethods; import org.jetbrains.jet.codegen.state.GenerationState; import org.jetbrains.jet.codegen.state.JetTypeMapper; import org.jetbrains.jet.lang.descriptors.*; @@ -501,7 +502,7 @@ public class AsmUtil { return StackValue.cmp(opToken, leftType); } - v.invokestatic("kotlin/jvm/internal/Intrinsics", "areEqual", "(Ljava/lang/Object;Ljava/lang/Object;)Z", false); + v.invokestatic(IntrinsicMethods.INTRINSICS_CLASS_NAME, "areEqual", "(Ljava/lang/Object;Ljava/lang/Object;)Z", false); if (opToken == JetTokens.EXCLEQ || opToken == JetTokens.EXCLEQEQEQ) { genInvertBoolean(v); @@ -578,7 +579,7 @@ public class AsmUtil { if (asmType.getSort() == Type.OBJECT || asmType.getSort() == Type.ARRAY) { v.load(index, asmType); v.visitLdcInsn(parameter.getName().asString()); - v.invokestatic("kotlin/jvm/internal/Intrinsics", "checkParameterIsNotNull", + v.invokestatic(IntrinsicMethods.INTRINSICS_CLASS_NAME, "checkParameterIsNotNull", "(Ljava/lang/Object;Ljava/lang/String;)V", false); } } @@ -624,7 +625,7 @@ public class AsmUtil { v.dup(); v.visitLdcInsn(descriptor.getContainingDeclaration().getName().asString()); v.visitLdcInsn(descriptor.getName().asString()); - v.invokestatic("kotlin/jvm/internal/Intrinsics", assertMethodToCall, + v.invokestatic(IntrinsicMethods.INTRINSICS_CLASS_NAME, assertMethodToCall, "(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;)V", false); } } diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java index 699a5f7d4c4..6acfdc38247 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java @@ -34,6 +34,7 @@ import org.jetbrains.jet.codegen.inline.InlineCodegen; import org.jetbrains.jet.codegen.inline.InlineCodegenUtil; import org.jetbrains.jet.codegen.inline.NameGenerator; import org.jetbrains.jet.codegen.intrinsics.IntrinsicMethod; +import org.jetbrains.jet.codegen.intrinsics.IntrinsicMethods; import org.jetbrains.jet.codegen.state.GenerationState; import org.jetbrains.jet.codegen.state.JetTypeMapper; import org.jetbrains.jet.codegen.when.SwitchCodegen; @@ -3130,7 +3131,7 @@ public class ExpressionCodegen extends JetVisitor implem v.dup(); Label ok = new Label(); v.ifnonnull(ok); - v.invokestatic("kotlin/jvm/internal/Intrinsics", "throwNpe", "()V", false); + v.invokestatic(IntrinsicMethods.INTRINSICS_CLASS_NAME, "throwNpe", "()V", false); v.mark(ok); return StackValue.onStack(base.type); } diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/inline/MethodInliner.java b/compiler/backend/src/org/jetbrains/jet/codegen/inline/MethodInliner.java index 51e723a1c1f..bc03fbded57 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/inline/MethodInliner.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/inline/MethodInliner.java @@ -22,6 +22,7 @@ import com.intellij.util.ArrayUtil; import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.codegen.ClosureCodegen; import org.jetbrains.jet.codegen.StackValue; +import org.jetbrains.jet.codegen.intrinsics.IntrinsicMethods; import org.jetbrains.jet.codegen.state.JetTypeMapper; import org.jetbrains.jet.lang.resolve.java.JvmAnnotationNames.KotlinSyntheticClass; import org.jetbrains.jet.lang.resolve.java.JvmClassName; @@ -468,7 +469,7 @@ public class MethodInliner { AbstractInsnNode next = cur.getNext(); if (next.getType() == AbstractInsnNode.METHOD_INSN) { MethodInsnNode methodInsnNode = (MethodInsnNode) next; - if (methodInsnNode.name.equals("checkParameterIsNotNull") && methodInsnNode.owner.equals("kotlin/jvm/internal/Intrinsics")) { + if (methodInsnNode.name.equals("checkParameterIsNotNull") && methodInsnNode.owner.equals(IntrinsicMethods.INTRINSICS_CLASS_NAME)) { AbstractInsnNode prev = cur.getPrevious(); assert cur.getOpcode() == Opcodes.LDC : "checkParameterIsNotNull should go after LDC but " + cur; diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/intrinsics/ArrayIndices.java b/compiler/backend/src/org/jetbrains/jet/codegen/intrinsics/ArrayIndices.java index f947a8493e2..5c73429cb6b 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/intrinsics/ArrayIndices.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/intrinsics/ArrayIndices.java @@ -42,7 +42,7 @@ public class ArrayIndices extends IntrinsicMethod { ) { receiver.put(receiver.type, v); v.arraylength(); - v.invokestatic("kotlin/jvm/internal/Intrinsics", "arrayIndices", Type.getMethodDescriptor(INT_RANGE_TYPE, INT_TYPE), false); + v.invokestatic(IntrinsicMethods.INTRINSICS_CLASS_NAME, "arrayIndices", Type.getMethodDescriptor(INT_RANGE_TYPE, INT_TYPE), false); return INT_RANGE_TYPE; } } diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/intrinsics/CompareTo.java b/compiler/backend/src/org/jetbrains/jet/codegen/intrinsics/CompareTo.java index 947ab2bba58..913c597d9f7 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/intrinsics/CompareTo.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/intrinsics/CompareTo.java @@ -58,10 +58,10 @@ public class CompareTo extends IntrinsicMethod { codegen.gen(argument, type); if (type == Type.INT_TYPE) { - v.invokestatic("kotlin/jvm/internal/Intrinsics", "compare", "(II)I", false); + v.invokestatic(IntrinsicMethods.INTRINSICS_CLASS_NAME, "compare", "(II)I", false); } else if (type == Type.LONG_TYPE) { - v.invokestatic("kotlin/jvm/internal/Intrinsics", "compare", "(JJ)I", false); + v.invokestatic(IntrinsicMethods.INTRINSICS_CLASS_NAME, "compare", "(JJ)I", false); } else if (type == Type.FLOAT_TYPE) { v.invokestatic("java/lang/Float", "compare", "(FF)I", false); diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/intrinsics/IntrinsicMethods.java b/compiler/backend/src/org/jetbrains/jet/codegen/intrinsics/IntrinsicMethods.java index 5a481ef03bd..c28130aff49 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/intrinsics/IntrinsicMethods.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/intrinsics/IntrinsicMethods.java @@ -36,6 +36,8 @@ import static org.jetbrains.jet.lang.types.lang.KotlinBuiltIns.BUILT_INS_PACKAGE import static org.jetbrains.org.objectweb.asm.Opcodes.*; public class IntrinsicMethods { + public static final String INTRINSICS_CLASS_NAME = "kotlin/jvm/internal/Intrinsics"; + private static final IntrinsicMethod UNARY_MINUS = new UnaryMinus(); private static final IntrinsicMethod UNARY_PLUS = new UnaryPlus(); private static final IntrinsicMethod NUMBER_CAST = new NumberCast(); diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/intrinsics/StringPlus.java b/compiler/backend/src/org/jetbrains/jet/codegen/intrinsics/StringPlus.java index a55a4ce447c..a2253adc671 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/intrinsics/StringPlus.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/intrinsics/StringPlus.java @@ -48,7 +48,7 @@ public class StringPlus extends IntrinsicMethod { receiver.put(JAVA_STRING_TYPE, v); codegen.gen(arguments.get(0)).put(OBJECT_TYPE, v); } - v.invokestatic("kotlin/jvm/internal/Intrinsics", "stringPlus", "(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/String;", false); + v.invokestatic(IntrinsicMethods.INTRINSICS_CLASS_NAME, "stringPlus", "(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/String;", false); return JAVA_STRING_TYPE; } }