Delete JvmClassName.getAsmType()

This commit is contained in:
Alexander Udalov
2013-10-02 19:48:48 +04:00
parent 521496b188
commit fc78971aea
6 changed files with 22 additions and 27 deletions
@@ -90,7 +90,7 @@ public class AsmUtil {
for (JvmPrimitiveType primitiveType : JvmPrimitiveType.values()) {
Type asmType = asmTypeForPrimitive(primitiveType);
typeBySortBuilder.put(asmType.getSort(), primitiveType);
typeByWrapperBuilder.put(primitiveType.getWrapper().getAsmType(), asmType);
typeByWrapperBuilder.put(asmTypeByFqNameWithoutInnerClasses(primitiveType.getWrapperFqName()), asmType);
}
primitiveTypeByAsmSort = typeBySortBuilder.build();
primitiveTypeByBoxedType = typeByWrapperBuilder.build();
@@ -102,7 +102,7 @@ public class AsmUtil {
@NotNull
public static Type boxType(@NotNull Type type) {
JvmPrimitiveType jvmPrimitiveType = primitiveTypeByAsmSort.get(type.getSort());
return jvmPrimitiveType != null ? jvmPrimitiveType.getWrapper().getAsmType() : type;
return jvmPrimitiveType != null ? asmTypeByFqNameWithoutInnerClasses(jvmPrimitiveType.getWrapperFqName()) : type;
}
@NotNull
@@ -30,7 +30,6 @@ 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.java.JvmPrimitiveType;
import org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverValue;
import org.jetbrains.jet.lexer.JetTokens;
@@ -252,11 +251,8 @@ public abstract class StackValue {
}
}
else if (fromType.getSort() == Type.OBJECT) {
if (toType.getSort() == Type.BOOLEAN) {
coerce(fromType, JvmPrimitiveType.BOOLEAN.getWrapper().getAsmType(), v);
}
else if (toType.getSort() == Type.CHAR) {
coerce(fromType, JvmPrimitiveType.CHAR.getWrapper().getAsmType(), v);
if (toType.getSort() == Type.BOOLEAN || toType.getSort() == Type.CHAR) {
coerce(fromType, boxType(toType), v);
}
else {
coerce(fromType, getType(Number.class), v);
@@ -23,6 +23,7 @@ import org.jetbrains.jet.lang.descriptors.ClassDescriptor;
import org.jetbrains.jet.lang.descriptors.ClassifierDescriptor;
import org.jetbrains.jet.lang.resolve.DescriptorUtils;
import org.jetbrains.jet.lang.resolve.java.AsmTypeConstants;
import org.jetbrains.jet.lang.resolve.java.JvmClassName;
import org.jetbrains.jet.lang.resolve.java.JvmPrimitiveType;
import org.jetbrains.jet.lang.resolve.name.FqName;
import org.jetbrains.jet.lang.resolve.name.FqNameUnsafe;
@@ -62,7 +63,9 @@ public class KotlinToJavaTypesMap extends JavaToKotlinClassMapBuilder {
FqName fqName = builtInsFqName.child(primitiveType.getTypeName());
register(fqName, asmType);
registerNullable(fqName, jvmPrimitiveType.getWrapper().getAsmType());
JvmClassName wrapperName = JvmClassName.byFqNameWithoutInnerClasses(jvmPrimitiveType.getWrapperFqName());
registerNullable(fqName, Type.getObjectType(wrapperName.getInternalName()));
register(builtInsFqName.child(primitiveType.getArrayTypeName()), Type.getType("[" + asmType.getDescriptor()));
}