Delete JvmClassName.getAsmType()
This commit is contained in:
@@ -90,7 +90,7 @@ public class AsmUtil {
|
|||||||
for (JvmPrimitiveType primitiveType : JvmPrimitiveType.values()) {
|
for (JvmPrimitiveType primitiveType : JvmPrimitiveType.values()) {
|
||||||
Type asmType = asmTypeForPrimitive(primitiveType);
|
Type asmType = asmTypeForPrimitive(primitiveType);
|
||||||
typeBySortBuilder.put(asmType.getSort(), primitiveType);
|
typeBySortBuilder.put(asmType.getSort(), primitiveType);
|
||||||
typeByWrapperBuilder.put(primitiveType.getWrapper().getAsmType(), asmType);
|
typeByWrapperBuilder.put(asmTypeByFqNameWithoutInnerClasses(primitiveType.getWrapperFqName()), asmType);
|
||||||
}
|
}
|
||||||
primitiveTypeByAsmSort = typeBySortBuilder.build();
|
primitiveTypeByAsmSort = typeBySortBuilder.build();
|
||||||
primitiveTypeByBoxedType = typeByWrapperBuilder.build();
|
primitiveTypeByBoxedType = typeByWrapperBuilder.build();
|
||||||
@@ -102,7 +102,7 @@ public class AsmUtil {
|
|||||||
@NotNull
|
@NotNull
|
||||||
public static Type boxType(@NotNull Type type) {
|
public static Type boxType(@NotNull Type type) {
|
||||||
JvmPrimitiveType jvmPrimitiveType = primitiveTypeByAsmSort.get(type.getSort());
|
JvmPrimitiveType jvmPrimitiveType = primitiveTypeByAsmSort.get(type.getSort());
|
||||||
return jvmPrimitiveType != null ? jvmPrimitiveType.getWrapper().getAsmType() : type;
|
return jvmPrimitiveType != null ? asmTypeByFqNameWithoutInnerClasses(jvmPrimitiveType.getWrapperFqName()) : type;
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
|
|||||||
@@ -30,7 +30,6 @@ import org.jetbrains.jet.lang.descriptors.*;
|
|||||||
import org.jetbrains.jet.lang.psi.JetExpression;
|
import org.jetbrains.jet.lang.psi.JetExpression;
|
||||||
import org.jetbrains.jet.lang.resolve.calls.model.ResolvedCall;
|
import org.jetbrains.jet.lang.resolve.calls.model.ResolvedCall;
|
||||||
import org.jetbrains.jet.lang.resolve.java.AsmTypeConstants;
|
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.lang.resolve.scopes.receivers.ReceiverValue;
|
||||||
import org.jetbrains.jet.lexer.JetTokens;
|
import org.jetbrains.jet.lexer.JetTokens;
|
||||||
|
|
||||||
@@ -252,11 +251,8 @@ public abstract class StackValue {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (fromType.getSort() == Type.OBJECT) {
|
else if (fromType.getSort() == Type.OBJECT) {
|
||||||
if (toType.getSort() == Type.BOOLEAN) {
|
if (toType.getSort() == Type.BOOLEAN || toType.getSort() == Type.CHAR) {
|
||||||
coerce(fromType, JvmPrimitiveType.BOOLEAN.getWrapper().getAsmType(), v);
|
coerce(fromType, boxType(toType), v);
|
||||||
}
|
|
||||||
else if (toType.getSort() == Type.CHAR) {
|
|
||||||
coerce(fromType, JvmPrimitiveType.CHAR.getWrapper().getAsmType(), v);
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
coerce(fromType, getType(Number.class), v);
|
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.descriptors.ClassifierDescriptor;
|
||||||
import org.jetbrains.jet.lang.resolve.DescriptorUtils;
|
import org.jetbrains.jet.lang.resolve.DescriptorUtils;
|
||||||
import org.jetbrains.jet.lang.resolve.java.AsmTypeConstants;
|
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.java.JvmPrimitiveType;
|
||||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||||
import org.jetbrains.jet.lang.resolve.name.FqNameUnsafe;
|
import org.jetbrains.jet.lang.resolve.name.FqNameUnsafe;
|
||||||
@@ -62,7 +63,9 @@ public class KotlinToJavaTypesMap extends JavaToKotlinClassMapBuilder {
|
|||||||
FqName fqName = builtInsFqName.child(primitiveType.getTypeName());
|
FqName fqName = builtInsFqName.child(primitiveType.getTypeName());
|
||||||
|
|
||||||
register(fqName, asmType);
|
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()));
|
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 com.intellij.openapi.util.text.StringUtil;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.asm4.Type;
|
|
||||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||||
|
|
||||||
public class JvmClassName {
|
public class JvmClassName {
|
||||||
@@ -73,7 +72,6 @@ public class JvmClassName {
|
|||||||
|
|
||||||
private final String internalName;
|
private final String internalName;
|
||||||
private FqName fqName;
|
private FqName fqName;
|
||||||
private Type asmType;
|
|
||||||
|
|
||||||
private JvmClassName(@NotNull String internalName) {
|
private JvmClassName(@NotNull String internalName) {
|
||||||
this.internalName = internalName;
|
this.internalName = internalName;
|
||||||
@@ -92,14 +90,6 @@ public class JvmClassName {
|
|||||||
return internalName;
|
return internalName;
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
|
||||||
public Type getAsmType() {
|
|
||||||
if (asmType == null) {
|
|
||||||
asmType = Type.getType("L" + internalName + ';');
|
|
||||||
}
|
|
||||||
return asmType;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return getInternalName();
|
return getInternalName();
|
||||||
|
|||||||
+10
-5
@@ -16,6 +16,8 @@
|
|||||||
|
|
||||||
package org.jetbrains.jet.lang.resolve.java;
|
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;
|
import org.jetbrains.jet.lang.types.lang.PrimitiveType;
|
||||||
|
|
||||||
public enum JvmPrimitiveType {
|
public enum JvmPrimitiveType {
|
||||||
@@ -31,23 +33,26 @@ public enum JvmPrimitiveType {
|
|||||||
|
|
||||||
private final PrimitiveType primitiveType;
|
private final PrimitiveType primitiveType;
|
||||||
private final String name;
|
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.primitiveType = primitiveType;
|
||||||
this.name = name;
|
this.name = name;
|
||||||
this.wrapper = JvmClassName.byFqNameWithoutInnerClasses(wrapperClassName);
|
this.wrapperFqName = new FqName(wrapperClassName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
public PrimitiveType getPrimitiveType() {
|
public PrimitiveType getPrimitiveType() {
|
||||||
return primitiveType;
|
return primitiveType;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
public String getName() {
|
public String getName() {
|
||||||
return name;
|
return name;
|
||||||
}
|
}
|
||||||
|
|
||||||
public JvmClassName getWrapper() {
|
@NotNull
|
||||||
return wrapper;
|
public FqName getWrapperFqName() {
|
||||||
|
return wrapperFqName;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-3
@@ -69,11 +69,12 @@ public class JavaToKotlinClassMap extends JavaToKotlinClassMapBuilder implements
|
|||||||
for (JvmPrimitiveType jvmPrimitiveType : JvmPrimitiveType.values()) {
|
for (JvmPrimitiveType jvmPrimitiveType : JvmPrimitiveType.values()) {
|
||||||
PrimitiveType primitiveType = jvmPrimitiveType.getPrimitiveType();
|
PrimitiveType primitiveType = jvmPrimitiveType.getPrimitiveType();
|
||||||
String name = jvmPrimitiveType.getName();
|
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.getPrimitiveJetType(primitiveType));
|
||||||
primitiveTypesMap.put("[" + name, builtIns.getPrimitiveArrayJetType(primitiveType));
|
primitiveTypesMap.put("[" + name, builtIns.getPrimitiveArrayJetType(primitiveType));
|
||||||
primitiveTypesMap.put(jvmPrimitiveType.getWrapper().getFqName().asString(), builtIns.getNullablePrimitiveJetType(
|
primitiveTypesMap.put(wrapperFqName.asString(), builtIns.getNullablePrimitiveJetType(primitiveType));
|
||||||
primitiveType));
|
|
||||||
}
|
}
|
||||||
primitiveTypesMap.put("void", KotlinBuiltIns.getInstance().getUnitType());
|
primitiveTypesMap.put("void", KotlinBuiltIns.getInstance().getUnitType());
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user