Delete JvmClassName.getAsmType()
This commit is contained in:
@@ -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);
|
||||
|
||||
+4
-1
@@ -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()));
|
||||
}
|
||||
|
||||
@@ -18,7 +18,6 @@ package org.jetbrains.jet.lang.resolve.java;
|
||||
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.asm4.Type;
|
||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||
|
||||
public class JvmClassName {
|
||||
@@ -73,7 +72,6 @@ public class JvmClassName {
|
||||
|
||||
private final String internalName;
|
||||
private FqName fqName;
|
||||
private Type asmType;
|
||||
|
||||
private JvmClassName(@NotNull String internalName) {
|
||||
this.internalName = internalName;
|
||||
@@ -92,14 +90,6 @@ public class JvmClassName {
|
||||
return internalName;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public Type getAsmType() {
|
||||
if (asmType == null) {
|
||||
asmType = Type.getType("L" + internalName + ';');
|
||||
}
|
||||
return asmType;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return getInternalName();
|
||||
|
||||
+10
-5
@@ -16,6 +16,8 @@
|
||||
|
||||
package org.jetbrains.jet.lang.resolve.java;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||
import org.jetbrains.jet.lang.types.lang.PrimitiveType;
|
||||
|
||||
public enum JvmPrimitiveType {
|
||||
@@ -31,23 +33,26 @@ public enum JvmPrimitiveType {
|
||||
|
||||
private final PrimitiveType primitiveType;
|
||||
private final String name;
|
||||
private final JvmClassName wrapper;
|
||||
private final FqName wrapperFqName;
|
||||
|
||||
private JvmPrimitiveType(PrimitiveType primitiveType, String name, String wrapperClassName) {
|
||||
private JvmPrimitiveType(@NotNull PrimitiveType primitiveType, @NotNull String name, @NotNull String wrapperClassName) {
|
||||
this.primitiveType = primitiveType;
|
||||
this.name = name;
|
||||
this.wrapper = JvmClassName.byFqNameWithoutInnerClasses(wrapperClassName);
|
||||
this.wrapperFqName = new FqName(wrapperClassName);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public PrimitiveType getPrimitiveType() {
|
||||
return primitiveType;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public JvmClassName getWrapper() {
|
||||
return wrapper;
|
||||
@NotNull
|
||||
public FqName getWrapperFqName() {
|
||||
return wrapperFqName;
|
||||
}
|
||||
}
|
||||
|
||||
+4
-3
@@ -69,11 +69,12 @@ public class JavaToKotlinClassMap extends JavaToKotlinClassMapBuilder implements
|
||||
for (JvmPrimitiveType jvmPrimitiveType : JvmPrimitiveType.values()) {
|
||||
PrimitiveType primitiveType = jvmPrimitiveType.getPrimitiveType();
|
||||
String name = jvmPrimitiveType.getName();
|
||||
register(jvmPrimitiveType.getWrapper().getFqName(), builtIns.getPrimitiveClassDescriptor(primitiveType));
|
||||
FqName wrapperFqName = jvmPrimitiveType.getWrapperFqName();
|
||||
|
||||
register(wrapperFqName, builtIns.getPrimitiveClassDescriptor(primitiveType));
|
||||
primitiveTypesMap.put(name, builtIns.getPrimitiveJetType(primitiveType));
|
||||
primitiveTypesMap.put("[" + name, builtIns.getPrimitiveArrayJetType(primitiveType));
|
||||
primitiveTypesMap.put(jvmPrimitiveType.getWrapper().getFqName().asString(), builtIns.getNullablePrimitiveJetType(
|
||||
primitiveType));
|
||||
primitiveTypesMap.put(wrapperFqName.asString(), builtIns.getNullablePrimitiveJetType(primitiveType));
|
||||
}
|
||||
primitiveTypesMap.put("void", KotlinBuiltIns.getInstance().getUnitType());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user