Replace "jet" with KotlinBuiltIns.FQ_NAME

#KT-2896 Fixed
This commit is contained in:
Alexander Udalov
2014-02-18 20:28:29 +04:00
parent 0490d4c989
commit 410b7985e1
10 changed files with 36 additions and 26 deletions
@@ -1189,7 +1189,7 @@ public class ExpressionCodegen extends JetVisitor<StackValue, StackValue> implem
}
else {
Type type = expressionType(expression);
Type targetType = type.equals(JET_UNIT_TYPE) ? type : OBJECT_TYPE;
Type targetType = type.equals(UNIT_TYPE) ? type : OBJECT_TYPE;
gen(expression, targetType);
@@ -3319,7 +3319,7 @@ public class ExpressionCodegen extends JetVisitor<StackValue, StackValue> implem
v.iconst(0);
v.store(indexIndex, Type.INT_TYPE);
gen(args.get(1), JET_FUNCTION1_TYPE);
gen(args.get(1), FUNCTION1_TYPE);
Label begin = new Label();
Label end = new Label();
@@ -3331,7 +3331,7 @@ public class ExpressionCodegen extends JetVisitor<StackValue, StackValue> implem
v.dup2();
v.load(indexIndex, Type.INT_TYPE);
v.invokestatic("java/lang/Integer", "valueOf", "(I)Ljava/lang/Integer;");
v.invokeinterface("jet/Function1", "invoke", "(Ljava/lang/Object;)Ljava/lang/Object;");
v.invokeinterface(FUNCTION1_TYPE.getInternalName(), "invoke", "(Ljava/lang/Object;)Ljava/lang/Object;");
v.load(indexIndex, Type.INT_TYPE);
v.iinc(indexIndex, 1);
v.swap();
@@ -37,6 +37,8 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import static org.jetbrains.jet.lang.types.lang.KotlinBuiltIns.BUILT_INS_PACKAGE_FQ_NAME;
public class FunctionTypesUtil {
private static final List<ClassDescriptor> FUNCTIONS;
private static final List<ClassDescriptor> EXTENSION_FUNCTIONS;
@@ -163,10 +165,10 @@ public class FunctionTypesUtil {
public static Type getFunctionTraitClassName(@NotNull FunctionDescriptor descriptor) {
int paramCount = descriptor.getValueParameters().size();
if (descriptor.getReceiverParameter() != null) {
return Type.getObjectType("jet/ExtensionFunction" + paramCount);
return Type.getObjectType(BUILT_INS_PACKAGE_FQ_NAME + "/ExtensionFunction" + paramCount);
}
else {
return Type.getObjectType("jet/Function" + paramCount);
return Type.getObjectType(BUILT_INS_PACKAGE_FQ_NAME + "/Function" + paramCount);
}
}
@@ -29,7 +29,6 @@ import org.jetbrains.jet.codegen.state.JetTypeMapper;
import org.jetbrains.jet.lang.descriptors.*;
import org.jetbrains.jet.lang.psi.JetExpression;
import org.jetbrains.jet.lang.resolve.calls.model.ResolvedCall;
import org.jetbrains.jet.lang.resolve.java.AsmTypeConstants;
import org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverValue;
import org.jetbrains.jet.lexer.JetTokens;
@@ -230,7 +229,7 @@ public abstract class StackValue {
pop(v, fromType);
}
else if (fromType.getSort() == Type.VOID) {
if (toType.equals(JET_UNIT_TYPE) || toType.equals(OBJECT_TYPE)) {
if (toType.equals(UNIT_TYPE) || toType.equals(OBJECT_TYPE)) {
putUnitInstance(v);
}
else if (toType.getSort() == Type.OBJECT || toType.getSort() == Type.ARRAY) {
@@ -240,9 +239,9 @@ public abstract class StackValue {
pushDefaultPrimitiveValueOnStack(toType, v);
}
}
else if (toType.equals(JET_UNIT_TYPE)) {
else if (toType.equals(UNIT_TYPE)) {
if (fromType.equals(getType(Object.class))) {
v.checkcast(JET_UNIT_TYPE);
v.checkcast(UNIT_TYPE);
}
else if (!fromType.equals(getType(Void.class))) {
pop(v, fromType);
@@ -283,7 +282,7 @@ public abstract class StackValue {
}
public static void putUnitInstance(InstructionAdapter v) {
v.visitFieldInsn(GETSTATIC, AsmTypeConstants.JET_UNIT_TYPE.getInternalName(), "VALUE", AsmTypeConstants.JET_UNIT_TYPE.getDescriptor());
v.visitFieldInsn(GETSTATIC, UNIT_TYPE.getInternalName(), "VALUE", UNIT_TYPE.getDescriptor());
}
protected void putAsBoolean(InstructionAdapter v) {
@@ -26,7 +26,8 @@ import org.jetbrains.jet.lang.psi.JetExpression;
import java.util.List;
import static org.jetbrains.jet.lang.resolve.java.AsmTypeConstants.JET_INT_RANGE_TYPE;
import static org.jetbrains.asm4.Type.INT_TYPE;
import static org.jetbrains.jet.lang.resolve.java.AsmTypeConstants.INT_RANGE_TYPE;
public class ArrayIndices extends IntrinsicMethod {
@NotNull
@@ -41,7 +42,7 @@ public class ArrayIndices extends IntrinsicMethod {
) {
receiver.put(receiver.type, v);
v.arraylength();
v.invokestatic("kotlin/jvm/internal/Intrinsics", "arrayIndices", "(I)Ljet/IntRange;");
return JET_INT_RANGE_TYPE;
v.invokestatic("kotlin/jvm/internal/Intrinsics", "arrayIndices", Type.getMethodDescriptor(INT_RANGE_TYPE, INT_TYPE));
return INT_RANGE_TYPE;
}
}
@@ -39,6 +39,7 @@ import java.util.List;
import static org.jetbrains.jet.codegen.AsmUtil.asmDescByFqNameWithoutInnerClasses;
import static org.jetbrains.jet.lang.resolve.java.AsmTypeConstants.getType;
import static org.jetbrains.jet.lang.resolve.java.mapping.PrimitiveTypesUtil.asmTypeForPrimitive;
import static org.jetbrains.jet.lang.types.lang.KotlinBuiltIns.BUILT_INS_PACKAGE_FQ_NAME;
public class ArrayIterator extends IntrinsicMethod {
@NotNull
@@ -66,7 +67,8 @@ public class ArrayIterator extends IntrinsicMethod {
PrimitiveType primitiveType = jvmPrimitiveType.getPrimitiveType();
ClassDescriptor arrayClass = KotlinBuiltIns.getInstance().getPrimitiveArrayClassDescriptor(primitiveType);
if (containingDeclaration.equals(arrayClass)) {
String iteratorDesc = asmDescByFqNameWithoutInnerClasses(new FqName("jet." + primitiveType.getTypeName() + "Iterator"));
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);
return Type.getType(iteratorDesc);
@@ -27,6 +27,8 @@ import org.jetbrains.jet.lang.resolve.java.AsmTypeConstants;
import java.util.List;
import static org.jetbrains.jet.lang.types.lang.KotlinBuiltIns.BUILT_INS_PACKAGE_FQ_NAME;
public class IteratorNext extends IntrinsicMethod {
@NotNull
@Override
@@ -67,7 +69,7 @@ public class IteratorNext extends IntrinsicMethod {
throw new UnsupportedOperationException();
}
receiver.put(AsmTypeConstants.OBJECT_TYPE, v);
v.invokevirtual("jet/" + name + "Iterator", "next" + name, "()" + returnType.getDescriptor());
v.invokevirtual(BUILT_INS_PACKAGE_FQ_NAME + "/" + name + "Iterator", "next" + name, "()" + returnType.getDescriptor());
return returnType;
}
}
@@ -29,7 +29,7 @@ import org.jetbrains.jet.lang.psi.JetExpression;
import java.util.Arrays;
import java.util.List;
import static org.jetbrains.jet.lang.resolve.java.AsmTypeConstants.JET_FUNCTION0_TYPE;
import static org.jetbrains.jet.lang.resolve.java.AsmTypeConstants.FUNCTION0_TYPE;
import static org.jetbrains.jet.lang.resolve.java.AsmTypeConstants.OBJECT_TYPE;
public class StupidSync extends IntrinsicMethod {
@@ -43,8 +43,8 @@ public class StupidSync extends IntrinsicMethod {
@Nullable List<JetExpression> arguments,
StackValue receiver
) {
codegen.pushMethodArguments((JetCallExpression) element, Arrays.asList(OBJECT_TYPE, JET_FUNCTION0_TYPE));
v.invokestatic("kotlin/jvm/internal/Intrinsics", "stupidSync", "(Ljava/lang/Object;Ljet/Function0;)Ljava/lang/Object;");
codegen.pushMethodArguments((JetCallExpression) element, Arrays.asList(OBJECT_TYPE, FUNCTION0_TYPE));
v.invokestatic("kotlin/jvm/internal/Intrinsics", "stupidSync", Type.getMethodDescriptor(OBJECT_TYPE, OBJECT_TYPE, FUNCTION0_TYPE));
return OBJECT_TYPE;
}
}
@@ -17,17 +17,19 @@
package org.jetbrains.jet.cli.jvm.compiler;
import org.jetbrains.jet.lang.resolve.AnalyzerScriptParameter;
import org.jetbrains.jet.lang.resolve.name.FqName;
import org.jetbrains.jet.lang.resolve.name.Name;
import org.jetbrains.jet.lang.types.ref.JetTypeName;
import java.util.Collections;
import java.util.List;
public class CommandLineScriptUtils {
import static org.jetbrains.jet.lang.types.lang.KotlinBuiltIns.BUILT_INS_PACKAGE_FQ_NAME;
public class CommandLineScriptUtils {
private static final Name ARGS_NAME = Name.identifier("args");
private static final JetTypeName ARGS_TYPE = JetTypeName.parse("jet.Array<jet.String>");
private static final JetTypeName ARGS_TYPE =
JetTypeName.parse(BUILT_INS_PACKAGE_FQ_NAME + ".Array<" + BUILT_INS_PACKAGE_FQ_NAME + ".String>");
private CommandLineScriptUtils() {
}
@@ -22,6 +22,8 @@ import org.jetbrains.asm4.Type;
import java.util.HashMap;
import java.util.Map;
import static org.jetbrains.jet.lang.types.lang.KotlinBuiltIns.BUILT_INS_PACKAGE_FQ_NAME;
public class AsmTypeConstants {
private static final Map<Class<?>, Type> TYPES_MAP = new HashMap<Class<?>, Type>();
@@ -29,10 +31,10 @@ public class AsmTypeConstants {
public static final Type JAVA_STRING_TYPE = getType(String.class);
public static final Type JAVA_THROWABLE_TYPE = getType(Throwable.class);
public static final Type JET_UNIT_TYPE = Type.getObjectType("jet/Unit");
public static final Type JET_FUNCTION0_TYPE = Type.getObjectType("jet/Function0");
public static final Type JET_FUNCTION1_TYPE = Type.getObjectType("jet/Function1");
public static final Type JET_INT_RANGE_TYPE = Type.getObjectType("jet/IntRange");
public static final Type UNIT_TYPE = Type.getObjectType(BUILT_INS_PACKAGE_FQ_NAME + "/Unit");
public static final Type FUNCTION0_TYPE = Type.getObjectType(BUILT_INS_PACKAGE_FQ_NAME + "/Function0");
public static final Type FUNCTION1_TYPE = Type.getObjectType(BUILT_INS_PACKAGE_FQ_NAME + "/Function1");
public static final Type INT_RANGE_TYPE = Type.getObjectType(BUILT_INS_PACKAGE_FQ_NAME + "/IntRange");
public static final Type OBJECT_REF_TYPE = Type.getObjectType("kotlin/jvm/internal/Ref$ObjectRef");
@@ -42,7 +42,7 @@ public final class JsDescriptorUtils {
// TODO: maybe we should use external annotations or something else.
private static final Set<String> FAKE_CLASSES = ContainerUtil.immutableSet(
getFqNameSafe(KotlinBuiltIns.getInstance().getAny()).asString(),
"jet.Iterable"
getFqNameSafe(KotlinBuiltIns.getInstance().getIterable()).asString()
);
private JsDescriptorUtils() {