diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/AsmUtil.java b/compiler/backend/src/org/jetbrains/jet/codegen/AsmUtil.java index 09a3a516694..31600ea989c 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/AsmUtil.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/AsmUtil.java @@ -345,7 +345,7 @@ public class AsmUtil { iv.anew(Type.getObjectType(exception)); iv.dup(); iv.aconst(message); - iv.invokespecial(exception, "", "(Ljava/lang/String;)V"); + iv.invokespecial(exception, "", "(Ljava/lang/String;)V", false); iv.athrow(); } @@ -395,18 +395,18 @@ public class AsmUtil { public static void genStringBuilderConstructor(InstructionAdapter v) { v.visitTypeInsn(NEW, "java/lang/StringBuilder"); v.dup(); - v.invokespecial("java/lang/StringBuilder", "", "()V"); + v.invokespecial("java/lang/StringBuilder", "", "()V", false); } public static void genInvokeAppendMethod(InstructionAdapter v, Type type) { type = stringBuilderAppendType(type); - v.invokevirtual("java/lang/StringBuilder", "append", "(" + type.getDescriptor() + ")Ljava/lang/StringBuilder;"); + v.invokevirtual("java/lang/StringBuilder", "append", "(" + type.getDescriptor() + ")Ljava/lang/StringBuilder;", false); } public static StackValue genToString(InstructionAdapter v, StackValue receiver, Type receiverType) { Type type = stringValueOfType(receiverType); receiver.put(type, v); - v.invokestatic("java/lang/String", "valueOf", "(" + type.getDescriptor() + ")Ljava/lang/String;"); + v.invokestatic("java/lang/String", "valueOf", "(" + type.getDescriptor() + ")Ljava/lang/String;", false); return StackValue.onStack(JAVA_STRING_TYPE); } @@ -414,24 +414,24 @@ public class AsmUtil { if (type.getSort() == Type.ARRAY) { Type elementType = correctElementType(type); if (elementType.getSort() == Type.OBJECT || elementType.getSort() == Type.ARRAY) { - iv.invokestatic("java/util/Arrays", "hashCode", "([Ljava/lang/Object;)I"); + iv.invokestatic("java/util/Arrays", "hashCode", "([Ljava/lang/Object;)I", false); } else { - iv.invokestatic("java/util/Arrays", "hashCode", "(" + type.getDescriptor() + ")I"); + iv.invokestatic("java/util/Arrays", "hashCode", "(" + type.getDescriptor() + ")I", false); } } else if (type.getSort() == Type.OBJECT) { - iv.invokevirtual("java/lang/Object", "hashCode", "()I"); + iv.invokevirtual("java/lang/Object", "hashCode", "()I", false); } else if (type.getSort() == Type.LONG) { genLongHashCode(mv, iv); } else if (type.getSort() == Type.DOUBLE) { - iv.invokestatic("java/lang/Double", "doubleToLongBits", "(D)J"); + iv.invokestatic("java/lang/Double", "doubleToLongBits", "(D)J", false); genLongHashCode(mv, iv); } else if (type.getSort() == Type.FLOAT) { - iv.invokestatic("java/lang/Float", "floatToIntBits", "(F)I"); + iv.invokestatic("java/lang/Float", "floatToIntBits", "(F)I", false); } else if (type.getSort() == Type.BOOLEAN) { Label end = new Label(); @@ -473,7 +473,7 @@ public class AsmUtil { return StackValue.cmp(opToken, leftType); } else { - v.invokestatic("kotlin/jvm/internal/Intrinsics", "areEqual", "(Ljava/lang/Object;Ljava/lang/Object;)Z"); + v.invokestatic("kotlin/jvm/internal/Intrinsics", "areEqual", "(Ljava/lang/Object;Ljava/lang/Object;)Z", false); if (opToken == JetTokens.EXCLEQ || opToken == JetTokens.EXCLEQEQEQ) { genInvertBoolean(v); @@ -549,7 +549,8 @@ 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", "(Ljava/lang/Object;Ljava/lang/String;)V"); + v.invokestatic("kotlin/jvm/internal/Intrinsics", "checkParameterIsNotNull", + "(Ljava/lang/Object;Ljava/lang/String;)V", false); } } } @@ -591,7 +592,8 @@ public class AsmUtil { v.dup(); v.visitLdcInsn(descriptor.getContainingDeclaration().getName().asString()); v.visitLdcInsn(descriptor.getName().asString()); - v.invokestatic("kotlin/jvm/internal/Intrinsics", assertMethodToCall, "(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;)V"); + v.invokestatic("kotlin/jvm/internal/Intrinsics", assertMethodToCall, + "(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;)V", false); } } diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/CallableMethod.java b/compiler/backend/src/org/jetbrains/jet/codegen/CallableMethod.java index 704d475aacd..08eabbf8592 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/CallableMethod.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/CallableMethod.java @@ -18,16 +18,16 @@ package org.jetbrains.jet.codegen; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import org.jetbrains.jet.codegen.state.GenerationState; +import org.jetbrains.jet.lang.resolve.calls.model.ResolvedCall; +import org.jetbrains.jet.lang.resolve.java.JvmAbi; +import org.jetbrains.jet.lang.resolve.java.jvmSignature.JvmMethodParameterKind; +import org.jetbrains.jet.lang.resolve.java.jvmSignature.JvmMethodParameterSignature; +import org.jetbrains.jet.lang.resolve.java.jvmSignature.JvmMethodSignature; import org.jetbrains.org.objectweb.asm.Type; import org.jetbrains.org.objectweb.asm.commons.InstructionAdapter; import org.jetbrains.org.objectweb.asm.commons.Method; import org.jetbrains.org.objectweb.asm.util.Printer; -import org.jetbrains.jet.lang.resolve.java.jvmSignature.JvmMethodParameterKind; -import org.jetbrains.jet.lang.resolve.java.jvmSignature.JvmMethodParameterSignature; -import org.jetbrains.jet.lang.resolve.java.jvmSignature.JvmMethodSignature; -import org.jetbrains.jet.codegen.state.GenerationState; -import org.jetbrains.jet.lang.resolve.calls.model.ResolvedCall; -import org.jetbrains.jet.lang.resolve.java.JvmAbi; import java.util.ArrayList; import java.util.List; @@ -137,13 +137,14 @@ public class CallableMethod implements Callable { String desc = method.getDescriptor().replace(")", "I)"); if ("".equals(method.getName())) { - v.visitMethodInsn(INVOKESPECIAL, defaultImplOwner.getInternalName(), "", desc); + v.visitMethodInsn(INVOKESPECIAL, defaultImplOwner.getInternalName(), "", desc, false); } else { if (getInvokeOpcode() != INVOKESTATIC) { desc = desc.replace("(", "(" + defaultImplParam.getDescriptor()); } - v.visitMethodInsn(INVOKESTATIC, defaultImplOwner.getInternalName(), method.getName() + JvmAbi.DEFAULT_PARAMS_IMPL_SUFFIX, desc); + v.visitMethodInsn(INVOKESTATIC, defaultImplOwner.getInternalName(), + method.getName() + JvmAbi.DEFAULT_PARAMS_IMPL_SUFFIX, desc, false); } } diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/ClosureCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/ClosureCodegen.java index 795d71ff483..a45cf18ccaf 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/ClosureCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/ClosureCodegen.java @@ -45,10 +45,10 @@ import java.util.Collections; import java.util.List; import static org.jetbrains.jet.codegen.AsmUtil.*; -import static org.jetbrains.jet.lang.resolve.java.diagnostics.DiagnosticsPackage.OtherOrigin; import static org.jetbrains.jet.codegen.JvmCodegenUtil.isConst; import static org.jetbrains.jet.codegen.binding.CodegenBinding.*; import static org.jetbrains.jet.lang.resolve.java.JvmAnnotationNames.KotlinSyntheticClass; +import static org.jetbrains.jet.lang.resolve.java.diagnostics.DiagnosticsPackage.OtherOrigin; import static org.jetbrains.org.objectweb.asm.Opcodes.*; public class ClosureCodegen extends ParentCodegenAware { @@ -194,7 +194,7 @@ public class ClosureCodegen extends ParentCodegenAware { v.dup(); codegen.pushClosureOnStack(closure, false, codegen.defaultCallGenerator); - v.invokespecial(asmType.getInternalName(), "", constructor.getDescriptor()); + v.invokespecial(asmType.getInternalName(), "", constructor.getDescriptor(), false); } return StackValue.onStack(asmType); } @@ -210,7 +210,7 @@ public class ClosureCodegen extends ParentCodegenAware { mv.visitCode(); iv.anew(asmType); iv.dup(); - iv.invokespecial(asmType.getInternalName(), "", "()V"); + iv.invokespecial(asmType.getInternalName(), "", "()V", false); iv.putstatic(asmType.getInternalName(), JvmAbi.INSTANCE_FIELD, asmType.getDescriptor()); mv.visitInsn(RETURN); FunctionCodegen.endVisit(mv, "", fun); @@ -243,7 +243,7 @@ public class ClosureCodegen extends ParentCodegenAware { count++; } - iv.invokevirtual(asmType.getInternalName(), delegate.getName(), delegate.getDescriptor()); + iv.invokevirtual(asmType.getInternalName(), delegate.getName(), delegate.getDescriptor(), false); StackValue.onStack(delegate.getReturnType()).put(bridge.getReturnType(), iv); iv.areturn(bridge.getReturnType()); @@ -270,7 +270,7 @@ public class ClosureCodegen extends ParentCodegenAware { } iv.load(0, superClassAsmType); - iv.invokespecial(superClassAsmType.getInternalName(), "", "()V"); + iv.invokespecial(superClassAsmType.getInternalName(), "", "()V", false); iv.visitInsn(RETURN); diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java index 7b61474a78a..46eaa4cf146 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java @@ -667,7 +667,7 @@ public class ExpressionCodegen extends JetVisitor implem // The result is stored to local variable protected void generateRangeOrProgressionProperty(Type loopRangeType, String getterName, Type elementType, int varToStore) { Type boxedType = boxType(elementType); - v.invokevirtual(loopRangeType.getInternalName(), getterName, "()" + boxedType.getDescriptor()); + v.invokevirtual(loopRangeType.getInternalName(), getterName, "()" + boxedType.getDescriptor(), false); StackValue.coerce(boxedType, elementType, v); v.store(varToStore, elementType); } @@ -1028,7 +1028,7 @@ public class ExpressionCodegen extends JetVisitor implem Type methodParamType = asmElementType.getSort() == Type.LONG ? Type.LONG_TYPE : Type.INT_TYPE; v.invokestatic("kotlin/internal/InternalPackage", "getProgressionFinalElement", - Type.getMethodDescriptor(methodParamType, methodParamType, methodParamType, methodParamType)); + Type.getMethodDescriptor(methodParamType, methodParamType, methodParamType, methodParamType), false); finalVar = createLoopTempVariable(asmElementType); v.store(finalVar, asmElementType); @@ -1266,7 +1266,7 @@ public class ExpressionCodegen extends JetVisitor implem genInvokeAppendMethod(v, JAVA_STRING_TYPE); } } - v.invokevirtual("java/lang/StringBuilder", "toString", "()Ljava/lang/String;"); + v.invokevirtual("java/lang/StringBuilder", "toString", "()Ljava/lang/String;", false); return StackValue.onStack(AsmTypeConstants.JAVA_STRING_TYPE); } } @@ -1364,7 +1364,7 @@ public class ExpressionCodegen extends JetVisitor implem argumentGenerator.generate(valueArguments); } - v.invokespecial(type.getInternalName(), "", constructor.getAsmMethod().getDescriptor()); + v.invokespecial(type.getInternalName(), "", constructor.getAsmMethod().getDescriptor(), false); return StackValue.onStack(type); } @@ -1480,7 +1480,7 @@ public class ExpressionCodegen extends JetVisitor implem if (sharedVarType != null) { v.anew(sharedVarType); v.dup(); - v.invokespecial(sharedVarType.getInternalName(), "", "()V"); + v.invokespecial(sharedVarType.getInternalName(), "", "()V", false); v.store(index, OBJECT_TYPE); } @@ -1750,7 +1750,7 @@ public class ExpressionCodegen extends JetVisitor implem if (descriptor instanceof TypeParameterDescriptor) { TypeParameterDescriptor typeParameterDescriptor = (TypeParameterDescriptor) descriptor; - v.invokevirtual("jet/TypeInfo", "getClassObject", "()Ljava/lang/Object;"); + v.invokevirtual("jet/TypeInfo", "getClassObject", "()Ljava/lang/Object;", false); JetType type = typeParameterDescriptor.getClassObjectType(); assert type != null; v.checkcast(asmType(type)); @@ -2032,7 +2032,7 @@ public class ExpressionCodegen extends JetVisitor implem v.goTo(afterAll); v.mark(ifNonNull); - v.invokespecial(asmType.getInternalName(), "", Type.getMethodDescriptor(Type.VOID_TYPE, functionType)); + v.invokespecial(asmType.getInternalName(), "", Type.getMethodDescriptor(Type.VOID_TYPE, functionType), false); v.mark(afterAll); return StackValue.onStack(asmType); @@ -2380,24 +2380,24 @@ public class ExpressionCodegen extends JetVisitor implem String owner = "kotlin/jvm/internal/SpreadBuilder"; v.anew(Type.getObjectType(owner)); v.dup(); - v.invokespecial(owner, "", "()V"); + v.invokespecial(owner, "", "()V", false); for (int i = 0; i != size; ++i) { v.dup(); ValueArgument argument = arguments.get(i); if (argument.getSpreadElement() != null) { gen(argument.getArgumentExpression(), OBJECT_TYPE); - v.invokevirtual(owner, "addSpread", "(Ljava/lang/Object;)V"); + v.invokevirtual(owner, "addSpread", "(Ljava/lang/Object;)V", false); } else { gen(argument.getArgumentExpression(), elementType); - v.invokevirtual(owner, "add", "(Ljava/lang/Object;)Z"); + v.invokevirtual(owner, "add", "(Ljava/lang/Object;)Z", false); v.pop(); } } v.dup(); - v.invokevirtual(owner, "size", "()I"); + v.invokevirtual(owner, "size", "()I", false); v.newarray(elementType); - v.invokevirtual(owner, "toArray", "([Ljava/lang/Object;)[Ljava/lang/Object;"); + v.invokevirtual(owner, "toArray", "([Ljava/lang/Object;)[Ljava/lang/Object;", false); v.checkcast(type); } } @@ -3080,7 +3080,7 @@ public class ExpressionCodegen extends JetVisitor implem v.dup(); Label ok = new Label(); v.ifnonnull(ok); - v.invokestatic("kotlin/jvm/internal/Intrinsics", "throwNpe", "()V"); + v.invokestatic("kotlin/jvm/internal/Intrinsics", "throwNpe", "()V", false); v.mark(ok); return StackValue.onStack(base.type); } @@ -3354,7 +3354,7 @@ public class ExpressionCodegen extends JetVisitor implem v.dup2(); v.load(indexIndex, Type.INT_TYPE); - v.invokestatic("java/lang/Integer", "valueOf", "(I)Ljava/lang/Integer;"); + v.invokestatic("java/lang/Integer", "valueOf", "(I)Ljava/lang/Integer;", false); v.invokeinterface(FUNCTION1_TYPE.getInternalName(), "invoke", "(Ljava/lang/Object;)Ljava/lang/Object;"); v.load(indexIndex, Type.INT_TYPE); v.iinc(indexIndex, 1); @@ -3841,10 +3841,10 @@ The "returned" value of try expression with no finally is either the last expres v.dup(); if (message != null) { v.visitLdcInsn(message); - v.invokespecial(className, "", "(Ljava/lang/String;)V"); + v.invokespecial(className, "", "(Ljava/lang/String;)V", false); } else { - v.invokespecial(className, "", "()V"); + v.invokespecial(className, "", "()V", false); } v.athrow(); } diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/FunctionCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/FunctionCodegen.java index fb3bf75ab93..7cb1b7753e6 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/FunctionCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/FunctionCodegen.java @@ -382,7 +382,7 @@ public class FunctionCodegen extends ParentCodegenAware { iv.load(k, argType); k += argType.getSize(); } - iv.invokestatic(context.getDelegateToClassType().getInternalName(), asmMethod.getName(), asmMethod.getDescriptor()); + iv.invokestatic(context.getDelegateToClassType().getInternalName(), asmMethod.getName(), asmMethod.getDescriptor(), false); iv.areturn(asmMethod.getReturnType()); } @@ -531,7 +531,7 @@ public class FunctionCodegen extends ParentCodegenAware { } v.iconst(mask); String desc = method.getAsmMethod().getDescriptor().replace(")", "I)"); - v.invokespecial(methodOwner.getInternalName(), "", desc); + v.invokespecial(methodOwner.getInternalName(), "", desc, false); v.areturn(Type.VOID_TYPE); endVisit(mv, "default constructor for " + methodOwner.getInternalName(), null); } diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/ImplementationBodyCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/ImplementationBodyCodegen.java index cf183bfe4d4..257e4364953 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/ImplementationBodyCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/ImplementationBodyCodegen.java @@ -517,7 +517,7 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen { mv.visitCode(); iv.load(0, classAsmType); - iv.invokestatic("kotlin/jvm/internal/CollectionToArray", "toArray", "(Ljava/util/Collection;)[Ljava/lang/Object;"); + iv.invokestatic("kotlin/jvm/internal/CollectionToArray", "toArray", "(Ljava/util/Collection;)[Ljava/lang/Object;", false); iv.areturn(Type.getObjectType("[Ljava/lang/Object;")); FunctionCodegen.endVisit(mv, "toArray", myClass); @@ -534,7 +534,8 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen { iv.load(0, classAsmType); iv.load(1, Type.getObjectType("[Ljava/lang/Object;")); - iv.invokestatic("kotlin/jvm/internal/CollectionToArray", "toArray", "(Ljava/util/Collection;[Ljava/lang/Object;)[Ljava/lang/Object;"); + iv.invokestatic("kotlin/jvm/internal/CollectionToArray", "toArray", + "(Ljava/util/Collection;[Ljava/lang/Object;)[Ljava/lang/Object;", false); iv.areturn(Type.getObjectType("[Ljava/lang/Object;")); FunctionCodegen.endVisit(mv, "toArray", myClass); @@ -673,10 +674,11 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen { if (asmType.getSort() == Type.ARRAY) { Type elementType = correctElementType(asmType); if (elementType.getSort() == Type.OBJECT || elementType.getSort() == Type.ARRAY) { - iv.invokestatic("java/util/Arrays", "equals", "([Ljava/lang/Object;[Ljava/lang/Object;)Z"); + iv.invokestatic("java/util/Arrays", "equals", "([Ljava/lang/Object;[Ljava/lang/Object;)Z", false); } else { - iv.invokestatic("java/util/Arrays", "equals", "([" + elementType.getDescriptor() + "[" + elementType.getDescriptor() + ")Z"); + iv.invokestatic("java/util/Arrays", "equals", + "([" + elementType.getDescriptor() + "[" + elementType.getDescriptor() + ")Z", false); } } else { @@ -770,7 +772,7 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen { first = false; } else { - iv.aconst(", " + propertyDescriptor.getName().asString()+"="); + iv.aconst(", " + propertyDescriptor.getName().asString() + "="); } genInvokeAppendMethod(iv, JAVA_STRING_TYPE); @@ -779,12 +781,12 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen { if (type.getSort() == Type.ARRAY) { Type elementType = correctElementType(type); if (elementType.getSort() == Type.OBJECT || elementType.getSort() == Type.ARRAY) { - iv.invokestatic("java/util/Arrays", "toString", "([Ljava/lang/Object;)Ljava/lang/String;"); + iv.invokestatic("java/util/Arrays", "toString", "([Ljava/lang/Object;)Ljava/lang/String;", false); type = JAVA_STRING_TYPE; } else { if (elementType.getSort() != Type.CHAR) { - iv.invokestatic("java/util/Arrays", "toString", "(" + type.getDescriptor() + ")Ljava/lang/String;"); + iv.invokestatic("java/util/Arrays", "toString", "(" + type.getDescriptor() + ")Ljava/lang/String;", false); type = JAVA_STRING_TYPE; } } @@ -795,7 +797,7 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen { iv.aconst(")"); genInvokeAppendMethod(iv, JAVA_STRING_TYPE); - iv.invokevirtual("java/lang/StringBuilder", "toString", "()Ljava/lang/String;"); + iv.invokevirtual("java/lang/StringBuilder", "toString", "()Ljava/lang/String;", false); iv.areturn(JAVA_STRING_TYPE); FunctionCodegen.endVisit(mv, "toString", myClass); @@ -812,7 +814,7 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen { else { //noinspection ConstantConditions Method method = typeMapper.mapSignature(propertyDescriptor.getGetter()).getAsmMethod(); - iv.invokevirtual(classAsmType.getInternalName(), method.getName(), method.getDescriptor()); + iv.invokevirtual(classAsmType.getInternalName(), method.getName(), method.getDescriptor(), false); return method.getReturnType(); } } @@ -833,7 +835,7 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen { if (!componentType.equals(Type.VOID_TYPE)) { iv.load(0, classAsmType); String desc = "()" + componentType.getDescriptor(); - iv.invokevirtual(classAsmType.getInternalName(), PropertyCodegen.getterName(parameter.getName()), desc); + iv.invokevirtual(classAsmType.getInternalName(), PropertyCodegen.getterName(parameter.getName()), desc, false); } iv.areturn(componentType); } @@ -884,7 +886,7 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen { } Method constructorAsmMethod = typeMapper.mapSignature(constructor).getAsmMethod(); - iv.invokespecial(thisDescriptorType.getInternalName(), "", constructorAsmMethod.getDescriptor()); + iv.invokespecial(thisDescriptorType.getInternalName(), "", constructorAsmMethod.getDescriptor(), false); iv.areturn(thisDescriptorType); } @@ -1260,10 +1262,10 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen { if (descriptor.getKind() == ClassKind.ENUM_CLASS || descriptor.getKind() == ClassKind.ENUM_ENTRY) { iv.load(1, JAVA_STRING_TYPE); iv.load(2, Type.INT_TYPE); - iv.invokespecial(superClassAsmType.getInternalName(), "", "(Ljava/lang/String;I)V"); + iv.invokespecial(superClassAsmType.getInternalName(), "", "(Ljava/lang/String;I)V", false); } else { - iv.invokespecial(superClassAsmType.getInternalName(), "", "()V"); + iv.invokespecial(superClassAsmType.getInternalName(), "", "()V", false); } } @@ -1529,7 +1531,7 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen { iv.invokespecial("java/lang/Object", "clone", "()Ljava/lang/Object;", false); } else { - iv.invokestatic(traitImplType.getInternalName(), traitMethod.getName(), traitMethod.getDescriptor()); + iv.invokestatic(traitImplType.getInternalName(), traitMethod.getName(), traitMethod.getDescriptor(), false); } Type returnType = signature.getReturnType(); @@ -1706,7 +1708,7 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen { codegen.invokeMethodWithArguments(method, resolvedCall, StackValue.none()); } else { - iv.invokespecial(implClass.getInternalName(), "", "(Ljava/lang/String;I)V"); + iv.invokespecial(implClass.getInternalName(), "", "(Ljava/lang/String;I)V", false); } iv.dup(); diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/MemberCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/MemberCodegen.java index 72740623cde..5f2ae2a55f3 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/MemberCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/MemberCodegen.java @@ -366,7 +366,7 @@ public abstract class MemberCodegen", "(Ljava/lang/String;)V"); + iv.invokespecial(PROPERTY_METADATA_IMPL_TYPE.getInternalName(), "", "(Ljava/lang/String;)V", false); iv.astore(PROPERTY_METADATA_IMPL_TYPE); } diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/SamWrapperCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/SamWrapperCodegen.java index e05c1322994..8af1d9cdf97 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/SamWrapperCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/SamWrapperCodegen.java @@ -122,7 +122,7 @@ public class SamWrapperCodegen { // super constructor iv.load(0, OBJECT_TYPE); - iv.invokespecial(OBJECT_TYPE.getInternalName(), "", "()V"); + iv.invokespecial(OBJECT_TYPE.getInternalName(), "", "()V", false); // save parameter to field iv.load(0, OBJECT_TYPE); diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/ScriptCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/ScriptCodegen.java index 02a34d27ed2..9b680b7499b 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/ScriptCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/ScriptCodegen.java @@ -142,7 +142,7 @@ public class ScriptCodegen extends MemberCodegen { assert classType != null; instructionAdapter.load(0, classType); - instructionAdapter.invokespecial("java/lang/Object", "", "()V"); + instructionAdapter.invokespecial("java/lang/Object", "", "()V", false); instructionAdapter.load(0, classType); diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/StackValue.java b/compiler/backend/src/org/jetbrains/jet/codegen/StackValue.java index 34b30dba56f..d6f407a6424 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/StackValue.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/StackValue.java @@ -162,57 +162,57 @@ public abstract class StackValue { private static void box(Type type, Type toType, InstructionAdapter v) { if (type == Type.BYTE_TYPE || toType.getInternalName().equals(NULLABLE_BYTE_TYPE_NAME) && type == Type.INT_TYPE) { v.cast(type, Type.BYTE_TYPE); - v.invokestatic(NULLABLE_BYTE_TYPE_NAME, "valueOf", "(B)L" + NULLABLE_BYTE_TYPE_NAME + ";"); + v.invokestatic(NULLABLE_BYTE_TYPE_NAME, "valueOf", "(B)L" + NULLABLE_BYTE_TYPE_NAME + ";", false); } else if (type == Type.SHORT_TYPE || toType.getInternalName().equals(NULLABLE_SHORT_TYPE_NAME) && type == Type.INT_TYPE) { v.cast(type, Type.SHORT_TYPE); - v.invokestatic(NULLABLE_SHORT_TYPE_NAME, "valueOf", "(S)L" + NULLABLE_SHORT_TYPE_NAME + ";"); + v.invokestatic(NULLABLE_SHORT_TYPE_NAME, "valueOf", "(S)L" + NULLABLE_SHORT_TYPE_NAME + ";", false); } else if (type == Type.LONG_TYPE || toType.getInternalName().equals(NULLABLE_LONG_TYPE_NAME) && type == Type.INT_TYPE) { v.cast(type, Type.LONG_TYPE); - v.invokestatic(NULLABLE_LONG_TYPE_NAME, "valueOf", "(J)L" + NULLABLE_LONG_TYPE_NAME +";"); + v.invokestatic(NULLABLE_LONG_TYPE_NAME, "valueOf", "(J)L" + NULLABLE_LONG_TYPE_NAME + ";", false); } else if (type == Type.INT_TYPE) { - v.invokestatic("java/lang/Integer", "valueOf", "(I)Ljava/lang/Integer;"); + v.invokestatic("java/lang/Integer", "valueOf", "(I)Ljava/lang/Integer;", false); } else if (type == Type.BOOLEAN_TYPE) { - v.invokestatic("java/lang/Boolean", "valueOf", "(Z)Ljava/lang/Boolean;"); + v.invokestatic("java/lang/Boolean", "valueOf", "(Z)Ljava/lang/Boolean;", false); } else if (type == Type.CHAR_TYPE) { - v.invokestatic("java/lang/Character", "valueOf", "(C)Ljava/lang/Character;"); + v.invokestatic("java/lang/Character", "valueOf", "(C)Ljava/lang/Character;", false); } else if (type == Type.FLOAT_TYPE) { - v.invokestatic("java/lang/Float", "valueOf", "(F)Ljava/lang/Float;"); + v.invokestatic("java/lang/Float", "valueOf", "(F)Ljava/lang/Float;", false); } else if (type == Type.DOUBLE_TYPE) { - v.invokestatic("java/lang/Double", "valueOf", "(D)Ljava/lang/Double;"); + v.invokestatic("java/lang/Double", "valueOf", "(D)Ljava/lang/Double;", false); } } private static void unbox(Type type, InstructionAdapter v) { if (type == Type.INT_TYPE) { - v.invokevirtual("java/lang/Number", "intValue", "()I"); + v.invokevirtual("java/lang/Number", "intValue", "()I", false); } else if (type == Type.BOOLEAN_TYPE) { - v.invokevirtual("java/lang/Boolean", "booleanValue", "()Z"); + v.invokevirtual("java/lang/Boolean", "booleanValue", "()Z", false); } else if (type == Type.CHAR_TYPE) { - v.invokevirtual("java/lang/Character", "charValue", "()C"); + v.invokevirtual("java/lang/Character", "charValue", "()C", false); } else if (type == Type.SHORT_TYPE) { - v.invokevirtual("java/lang/Number", "shortValue", "()S"); + v.invokevirtual("java/lang/Number", "shortValue", "()S", false); } else if (type == Type.LONG_TYPE) { - v.invokevirtual("java/lang/Number", "longValue", "()J"); + v.invokevirtual("java/lang/Number", "longValue", "()J", false); } else if (type == Type.BYTE_TYPE) { - v.invokevirtual("java/lang/Number", "byteValue", "()B"); + v.invokevirtual("java/lang/Number", "byteValue", "()B", false); } else if (type == Type.FLOAT_TYPE) { - v.invokevirtual("java/lang/Number", "floatValue", "()F"); + v.invokevirtual("java/lang/Number", "floatValue", "()F", false); } else if (type == Type.DOUBLE_TYPE) { - v.invokevirtual("java/lang/Number", "doubleValue", "()D"); + v.invokevirtual("java/lang/Number", "doubleValue", "()D", false); } } @@ -852,9 +852,8 @@ public abstract class StackValue { coerceTo(type, v); } else { - Method method = getter.getAsmMethod(); - v.visitMethodInsn(getter.getInvokeOpcode(), getter.getOwner().getInternalName(), method.getName(), method.getDescriptor()); - coerce(method.getReturnType(), type, v); + getter.invokeWithoutAssertions(v); + coerce(getter.getAsmMethod().getReturnType(), type, v); } } @@ -866,8 +865,7 @@ public abstract class StackValue { v.visitFieldInsn(isStatic ? PUTSTATIC : PUTFIELD, methodOwner.getInternalName(), fieldName, this.type.getDescriptor()); } else { - Method method = setter.getAsmMethod(); - v.visitMethodInsn(setter.getInvokeOpcode(), setter.getOwner().getInternalName(), method.getName(), method.getDescriptor()); + setter.invokeWithoutAssertions(v); } } 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 76cc0c9554f..f947a8493e2 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/intrinsics/ArrayIndices.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/intrinsics/ArrayIndices.java @@ -18,16 +18,16 @@ package org.jetbrains.jet.codegen.intrinsics; import com.intellij.psi.PsiElement; import org.jetbrains.annotations.NotNull; -import org.jetbrains.org.objectweb.asm.Type; -import org.jetbrains.org.objectweb.asm.commons.InstructionAdapter; import org.jetbrains.jet.codegen.ExpressionCodegen; import org.jetbrains.jet.codegen.StackValue; import org.jetbrains.jet.lang.psi.JetExpression; +import org.jetbrains.org.objectweb.asm.Type; +import org.jetbrains.org.objectweb.asm.commons.InstructionAdapter; import java.util.List; -import static org.jetbrains.org.objectweb.asm.Type.INT_TYPE; import static org.jetbrains.jet.lang.resolve.java.AsmTypeConstants.INT_RANGE_TYPE; +import static org.jetbrains.org.objectweb.asm.Type.INT_TYPE; public class ArrayIndices extends IntrinsicMethod { @NotNull @@ -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)); + v.invokestatic("kotlin/jvm/internal/Intrinsics", "arrayIndices", Type.getMethodDescriptor(INT_RANGE_TYPE, INT_TYPE), false); return INT_RANGE_TYPE; } } diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/intrinsics/ArrayIterator.java b/compiler/backend/src/org/jetbrains/jet/codegen/intrinsics/ArrayIterator.java index 0a358926818..6cdaedd56cb 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/intrinsics/ArrayIterator.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/intrinsics/ArrayIterator.java @@ -18,8 +18,6 @@ package org.jetbrains.jet.codegen.intrinsics; import com.intellij.psi.PsiElement; import org.jetbrains.annotations.NotNull; -import org.jetbrains.org.objectweb.asm.Type; -import org.jetbrains.org.objectweb.asm.commons.InstructionAdapter; import org.jetbrains.jet.codegen.ExpressionCodegen; import org.jetbrains.jet.codegen.StackValue; import org.jetbrains.jet.lang.descriptors.ClassDescriptor; @@ -32,6 +30,8 @@ import org.jetbrains.jet.lang.resolve.java.JvmPrimitiveType; import org.jetbrains.jet.lang.resolve.name.FqName; import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns; import org.jetbrains.jet.lang.types.lang.PrimitiveType; +import org.jetbrains.org.objectweb.asm.Type; +import org.jetbrains.org.objectweb.asm.commons.InstructionAdapter; import java.util.Iterator; import java.util.List; @@ -59,7 +59,7 @@ public class ArrayIterator extends IntrinsicMethod { assert funDescriptor != null; ClassDescriptor containingDeclaration = (ClassDescriptor) funDescriptor.getContainingDeclaration().getOriginal(); if (containingDeclaration.equals(KotlinBuiltIns.getInstance().getArray())) { - v.invokestatic("kotlin/jvm/internal/InternalPackage", "iterator", "([Ljava/lang/Object;)Ljava/util/Iterator;"); + v.invokestatic("kotlin/jvm/internal/InternalPackage", "iterator", "([Ljava/lang/Object;)Ljava/util/Iterator;", false); return getType(Iterator.class); } @@ -70,7 +70,7 @@ public class ArrayIterator extends IntrinsicMethod { FqName fqName = new FqName(BUILT_INS_PACKAGE_FQ_NAME + "." + primitiveType.getTypeName() + "Iterator"); String iteratorDesc = asmDescByFqNameWithoutInnerClasses(fqName); String methodSignature = "([" + asmTypeForPrimitive(jvmPrimitiveType) + ")" + iteratorDesc; - v.invokestatic("kotlin/jvm/internal/InternalPackage", "iterator", methodSignature); + v.invokestatic("kotlin/jvm/internal/InternalPackage", "iterator", methodSignature, false); return Type.getType(iteratorDesc); } } 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 955a6d2f68a..947ab2bba58 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/intrinsics/CompareTo.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/intrinsics/CompareTo.java @@ -19,11 +19,11 @@ package org.jetbrains.jet.codegen.intrinsics; import com.intellij.psi.PsiElement; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.jetbrains.org.objectweb.asm.Type; -import org.jetbrains.org.objectweb.asm.commons.InstructionAdapter; import org.jetbrains.jet.codegen.ExpressionCodegen; import org.jetbrains.jet.codegen.StackValue; import org.jetbrains.jet.lang.psi.JetExpression; +import org.jetbrains.org.objectweb.asm.Type; +import org.jetbrains.org.objectweb.asm.commons.InstructionAdapter; import java.util.List; @@ -58,16 +58,16 @@ public class CompareTo extends IntrinsicMethod { codegen.gen(argument, type); if (type == Type.INT_TYPE) { - v.invokestatic("kotlin/jvm/internal/Intrinsics", "compare", "(II)I"); + v.invokestatic("kotlin/jvm/internal/Intrinsics", "compare", "(II)I", false); } else if (type == Type.LONG_TYPE) { - v.invokestatic("kotlin/jvm/internal/Intrinsics", "compare", "(JJ)I"); + v.invokestatic("kotlin/jvm/internal/Intrinsics", "compare", "(JJ)I", false); } else if (type == Type.FLOAT_TYPE) { - v.invokestatic("java/lang/Float", "compare", "(FF)I"); + v.invokestatic("java/lang/Float", "compare", "(FF)I", false); } else if (type == Type.DOUBLE_TYPE) { - v.invokestatic("java/lang/Double", "compare", "(DD)I"); + v.invokestatic("java/lang/Double", "compare", "(DD)I", false); } else { throw new UnsupportedOperationException(); diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/intrinsics/Concat.java b/compiler/backend/src/org/jetbrains/jet/codegen/intrinsics/Concat.java index e4824481ce7..cfb9a428378 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/intrinsics/Concat.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/intrinsics/Concat.java @@ -18,12 +18,12 @@ package org.jetbrains.jet.codegen.intrinsics; import com.intellij.psi.PsiElement; import org.jetbrains.annotations.NotNull; -import org.jetbrains.org.objectweb.asm.Type; -import org.jetbrains.org.objectweb.asm.commons.InstructionAdapter; import org.jetbrains.jet.codegen.ExpressionCodegen; import org.jetbrains.jet.codegen.StackValue; import org.jetbrains.jet.lang.psi.JetExpression; import org.jetbrains.jet.lang.resolve.java.AsmTypeConstants; +import org.jetbrains.org.objectweb.asm.Type; +import org.jetbrains.org.objectweb.asm.commons.InstructionAdapter; import java.util.List; @@ -42,20 +42,22 @@ public class Concat extends IntrinsicMethod { List arguments, StackValue receiver ) { - if (receiver == null || receiver == StackValue.none()) { // LHS + RHS + if (receiver == null || receiver == StackValue.none()) { + // LHS + RHS genStringBuilderConstructor(v); - codegen.invokeAppend(arguments.get(0)); // StringBuilder(LHS) + codegen.invokeAppend(arguments.get(0)); codegen.invokeAppend(arguments.get(1)); } - else { // LHS.plus(RHS) + else { + // LHS.plus(RHS) receiver.put(AsmTypeConstants.OBJECT_TYPE, v); genStringBuilderConstructor(v); - v.swap(); // StringBuilder LHS - genInvokeAppendMethod(v, returnType); // StringBuilder(LHS) + v.swap(); + genInvokeAppendMethod(v, returnType); codegen.invokeAppend(arguments.get(0)); } - v.invokevirtual("java/lang/StringBuilder", "toString", "()Ljava/lang/String;"); + v.invokevirtual("java/lang/StringBuilder", "toString", "()Ljava/lang/String;", false); return JAVA_STRING_TYPE; } } diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/intrinsics/EnumValueOf.java b/compiler/backend/src/org/jetbrains/jet/codegen/intrinsics/EnumValueOf.java index bb7136bc268..7568756ed23 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/intrinsics/EnumValueOf.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/intrinsics/EnumValueOf.java @@ -19,11 +19,11 @@ package org.jetbrains.jet.codegen.intrinsics; import com.intellij.psi.PsiElement; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.jetbrains.org.objectweb.asm.Type; -import org.jetbrains.org.objectweb.asm.commons.InstructionAdapter; import org.jetbrains.jet.codegen.ExpressionCodegen; import org.jetbrains.jet.codegen.StackValue; import org.jetbrains.jet.lang.psi.JetExpression; +import org.jetbrains.org.objectweb.asm.Type; +import org.jetbrains.org.objectweb.asm.commons.InstructionAdapter; import java.util.List; @@ -42,7 +42,7 @@ public class EnumValueOf extends IntrinsicMethod { ) { assert arguments != null; codegen.gen(arguments.get(0), JAVA_STRING_TYPE); - v.invokestatic(returnType.getInternalName(), "valueOf", "(Ljava/lang/String;)" + returnType.getDescriptor()); + v.invokestatic(returnType.getInternalName(), "valueOf", "(Ljava/lang/String;)" + returnType.getDescriptor(), false); return returnType; } } diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/intrinsics/EnumValues.java b/compiler/backend/src/org/jetbrains/jet/codegen/intrinsics/EnumValues.java index b204f55bebd..301ed3ec2f6 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/intrinsics/EnumValues.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/intrinsics/EnumValues.java @@ -19,11 +19,11 @@ package org.jetbrains.jet.codegen.intrinsics; import com.intellij.psi.PsiElement; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.jetbrains.org.objectweb.asm.Type; -import org.jetbrains.org.objectweb.asm.commons.InstructionAdapter; import org.jetbrains.jet.codegen.ExpressionCodegen; import org.jetbrains.jet.codegen.StackValue; import org.jetbrains.jet.lang.psi.JetExpression; +import org.jetbrains.org.objectweb.asm.Type; +import org.jetbrains.org.objectweb.asm.commons.InstructionAdapter; import java.util.List; @@ -38,7 +38,7 @@ public class EnumValues extends IntrinsicMethod { @Nullable List arguments, StackValue receiver ) { - v.invokestatic(returnType.getElementType().getInternalName(), "values", "()" + returnType); + v.invokestatic(returnType.getElementType().getInternalName(), "values", "()" + returnType, false); return returnType; } } diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/intrinsics/IteratorNext.java b/compiler/backend/src/org/jetbrains/jet/codegen/intrinsics/IteratorNext.java index 7c14fc2ee01..7d80e0d649d 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/intrinsics/IteratorNext.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/intrinsics/IteratorNext.java @@ -18,12 +18,12 @@ package org.jetbrains.jet.codegen.intrinsics; import com.intellij.psi.PsiElement; import org.jetbrains.annotations.NotNull; -import org.jetbrains.org.objectweb.asm.Type; -import org.jetbrains.org.objectweb.asm.commons.InstructionAdapter; import org.jetbrains.jet.codegen.ExpressionCodegen; import org.jetbrains.jet.codegen.StackValue; import org.jetbrains.jet.lang.psi.JetExpression; import org.jetbrains.jet.lang.resolve.java.AsmTypeConstants; +import org.jetbrains.org.objectweb.asm.Type; +import org.jetbrains.org.objectweb.asm.commons.InstructionAdapter; import java.util.List; @@ -69,7 +69,7 @@ public class IteratorNext extends IntrinsicMethod { throw new UnsupportedOperationException(); } receiver.put(AsmTypeConstants.OBJECT_TYPE, v); - v.invokevirtual(BUILT_INS_PACKAGE_FQ_NAME + "/" + name + "Iterator", "next" + name, "()" + returnType.getDescriptor()); + v.invokevirtual(BUILT_INS_PACKAGE_FQ_NAME + "/" + name + "Iterator", "next" + name, "()" + returnType.getDescriptor(), false); return returnType; } } diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/intrinsics/JavaClassProperty.java b/compiler/backend/src/org/jetbrains/jet/codegen/intrinsics/JavaClassProperty.java index 831444b6ab2..7ccfaee547e 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/intrinsics/JavaClassProperty.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/intrinsics/JavaClassProperty.java @@ -19,11 +19,11 @@ package org.jetbrains.jet.codegen.intrinsics; import com.intellij.psi.PsiElement; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.jetbrains.org.objectweb.asm.Type; -import org.jetbrains.org.objectweb.asm.commons.InstructionAdapter; import org.jetbrains.jet.codegen.ExpressionCodegen; import org.jetbrains.jet.codegen.StackValue; import org.jetbrains.jet.lang.psi.JetExpression; +import org.jetbrains.org.objectweb.asm.Type; +import org.jetbrains.org.objectweb.asm.commons.InstructionAdapter; import java.util.List; @@ -48,7 +48,7 @@ public class JavaClassProperty extends IntrinsicMethod { } else { receiver.put(type, v); - v.invokevirtual("java/lang/Object", "getClass", "()Ljava/lang/Class;"); + v.invokevirtual("java/lang/Object", "getClass", "()Ljava/lang/Class;", false); } return getType(Class.class); diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/intrinsics/RangeTo.java b/compiler/backend/src/org/jetbrains/jet/codegen/intrinsics/RangeTo.java index 31a62043d59..e5a539e5683 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/intrinsics/RangeTo.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/intrinsics/RangeTo.java @@ -18,12 +18,12 @@ package org.jetbrains.jet.codegen.intrinsics; import com.intellij.psi.PsiElement; import org.jetbrains.annotations.NotNull; -import org.jetbrains.org.objectweb.asm.Type; -import org.jetbrains.org.objectweb.asm.commons.InstructionAdapter; import org.jetbrains.jet.codegen.ExpressionCodegen; import org.jetbrains.jet.codegen.StackValue; import org.jetbrains.jet.lang.psi.JetBinaryExpression; import org.jetbrains.jet.lang.psi.JetExpression; +import org.jetbrains.org.objectweb.asm.Type; +import org.jetbrains.org.objectweb.asm.commons.InstructionAdapter; import java.util.List; @@ -58,7 +58,7 @@ public class RangeTo extends IntrinsicMethod { codegen.gen(expression.getRight(), type); } - v.invokespecial(returnType.getInternalName(), "", Type.getMethodDescriptor(Type.VOID_TYPE, type, type)); + v.invokespecial(returnType.getInternalName(), "", Type.getMethodDescriptor(Type.VOID_TYPE, type, type), false); return returnType; } 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 a309e324e47..a55a4ce447c 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/intrinsics/StringPlus.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/intrinsics/StringPlus.java @@ -18,11 +18,11 @@ package org.jetbrains.jet.codegen.intrinsics; import com.intellij.psi.PsiElement; import org.jetbrains.annotations.NotNull; -import org.jetbrains.org.objectweb.asm.Type; -import org.jetbrains.org.objectweb.asm.commons.InstructionAdapter; import org.jetbrains.jet.codegen.ExpressionCodegen; import org.jetbrains.jet.codegen.StackValue; import org.jetbrains.jet.lang.psi.JetExpression; +import org.jetbrains.org.objectweb.asm.Type; +import org.jetbrains.org.objectweb.asm.commons.InstructionAdapter; import java.util.List; @@ -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;"); + v.invokestatic("kotlin/jvm/internal/Intrinsics", "stringPlus", "(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/String;", false); return JAVA_STRING_TYPE; } } diff --git a/compiler/preloader/instrumentation/src/org/jetbrains/jet/preloading/instrumentation/InterceptionInstrumenter.java b/compiler/preloader/instrumentation/src/org/jetbrains/jet/preloading/instrumentation/InterceptionInstrumenter.java index b295b852057..b51dfa327d3 100644 --- a/compiler/preloader/instrumentation/src/org/jetbrains/jet/preloading/instrumentation/InterceptionInstrumenter.java +++ b/compiler/preloader/instrumentation/src/org/jetbrains/jet/preloading/instrumentation/InterceptionInstrumenter.java @@ -16,11 +16,11 @@ package org.jetbrains.jet.preloading.instrumentation; +import org.jetbrains.jet.preloading.instrumentation.annotations.*; import org.jetbrains.org.objectweb.asm.*; import org.jetbrains.org.objectweb.asm.commons.InstructionAdapter; import org.jetbrains.org.objectweb.asm.util.Textifier; import org.jetbrains.org.objectweb.asm.util.TraceMethodVisitor; -import org.jetbrains.jet.preloading.instrumentation.annotations.*; import java.io.PrintStream; import java.lang.annotation.Annotation; @@ -580,7 +580,7 @@ public class InterceptionInstrumenter { private static void box(InstructionAdapter ia, Type from, Class boxedClass) { Type boxedType = Type.getType(boxedClass); - ia.invokestatic(boxedType.getInternalName(), "valueOf", "(" + from.getDescriptor() + ")" + boxedType.getDescriptor()); + ia.invokestatic(boxedType.getInternalName(), "valueOf", "(" + from.getDescriptor() + ")" + boxedType.getDescriptor(), false); } public void dump(PrintStream out) {