classDescriptorMap used instead of classTypeMap

in JavaTypeTransformer
so 'getKotlinAnalog' now is used instead of 'unwrapPrimitive'

classTypeMap removed,
=> removed now unnecessary numberType, throwableType, etc. from JetStandardLibrary
This commit is contained in:
Svetlana Isakova
2012-07-20 16:35:00 +04:00
parent a4bb47a73f
commit 084566aac4
3 changed files with 15 additions and 151 deletions
@@ -58,9 +58,7 @@ public class JavaTypeTransformer {
private Map<String, JetType> primitiveTypesMap;
private Map<FqName, JetType> classTypesMap;
private HashMap<FqName, ClassDescriptor> classDescriptorMap;
private Map<FqName, ClassDescriptor> classDescriptorMap;
@NotNull
@@ -159,13 +157,11 @@ public class JavaTypeTransformer {
// 'L extends List<T>' in Java is a List<T> in Kotlin, not a List<T?>
boolean nullable = !EnumSet.of(SUPERTYPE_ARGUMENT, SUPERTYPE).contains(howThisTypeIsUsed);
JetType jetAnalog = getKotlinAnalog(new FqName(psiClass.getQualifiedName()));
if (jetAnalog != null) {
return TypeUtils.makeNullableAsSpecified(jetAnalog, nullable);
}
ClassDescriptor classData = getKotlinAnalog(new FqName(psiClass.getQualifiedName()));
final ClassDescriptor classData =
resolver.resolveClass(new FqName(psiClass.getQualifiedName()), DescriptorSearchRule.INCLUDE_KOTLIN);
if (classData == null) {
classData = resolver.resolveClass(new FqName(psiClass.getQualifiedName()), DescriptorSearchRule.INCLUDE_KOTLIN);
}
if (classData == null) {
return ErrorUtils.createErrorType("Unresolved java class: " + classType.getPresentableText());
}
@@ -240,52 +236,34 @@ public class JavaTypeTransformer {
PrimitiveType primitiveType = jvmPrimitiveType.getPrimitiveType();
primitiveTypesMap.put(jvmPrimitiveType.getName(), JetStandardLibrary.getInstance().getPrimitiveJetType(primitiveType));
primitiveTypesMap.put("[" + jvmPrimitiveType.getName(), JetStandardLibrary.getInstance().getPrimitiveArrayJetType(primitiveType));
primitiveTypesMap.put(jvmPrimitiveType.getWrapper().getFqName().getFqName(), JetStandardLibrary.getInstance().getNullablePrimitiveJetType(primitiveType));
primitiveTypesMap.put(jvmPrimitiveType.getWrapper().getFqName().getFqName(), JetStandardLibrary.getInstance().getNullablePrimitiveJetType(
primitiveType));
}
primitiveTypesMap.put("void", JetStandardClasses.getUnitType());
}
return primitiveTypesMap;
}
public Map<FqName, JetType> getClassTypesMap() {
if (classTypesMap == null) {
classTypesMap = new HashMap<FqName, JetType>();
for (JvmPrimitiveType jvmPrimitiveType : JvmPrimitiveType.values()) {
PrimitiveType primitiveType = jvmPrimitiveType.getPrimitiveType();
classTypesMap.put(jvmPrimitiveType.getWrapper().getFqName(), JetStandardLibrary.getInstance().getNullablePrimitiveJetType(primitiveType));
}
classTypesMap.put(new FqName("java.lang.Object"), JetStandardClasses.getNullableAnyType());
classTypesMap.put(new FqName("java.lang.String"), JetStandardLibrary.getInstance().getNullableStringType());
classTypesMap.put(new FqName("java.lang.CharSequence"), JetStandardLibrary.getInstance().getNullableCharSequenceType());
classTypesMap.put(new FqName("java.lang.Throwable"), JetStandardLibrary.getInstance().getNullableThrowableType());
classTypesMap.put(new FqName("java.lang.Number"), JetStandardLibrary.getInstance().getNullableNumberType());
}
return classTypesMap;
}
@Nullable
public JetType getKotlinAnalog(@NotNull FqName fqName) {
return getClassTypesMap().get(fqName);
}
private Map<FqName, ClassDescriptor> getPrimitiveWrappersClassDescriptorMap() {
public Map<FqName, ClassDescriptor> getClassDescriptorMap() {
if (classDescriptorMap == null) {
classDescriptorMap = new HashMap<FqName, ClassDescriptor>();
for (JvmPrimitiveType jvmPrimitiveType : JvmPrimitiveType.values()) {
PrimitiveType primitiveType = jvmPrimitiveType.getPrimitiveType();
classDescriptorMap.put(jvmPrimitiveType.getWrapper().getFqName(), JetStandardLibrary.getInstance().getPrimitiveClassDescriptor(primitiveType));
}
classDescriptorMap.put(new FqName("java.lang.Object"), JetStandardClasses.getAny());
classDescriptorMap.put(new FqName("java.lang.String"), JetStandardLibrary.getInstance().getString());
classDescriptorMap.put(new FqName("java.lang.CharSequence"), JetStandardLibrary.getInstance().getCharSequence());
classDescriptorMap.put(new FqName("java.lang.Throwable"), JetStandardLibrary.getInstance().getThrowable());
classDescriptorMap.put(new FqName("java.lang.Number"), JetStandardLibrary.getInstance().getNumber());
}
return classDescriptorMap;
}
@Nullable
public ClassDescriptor unwrapPrimitive(@NotNull FqName fqName) {
return getPrimitiveWrappersClassDescriptorMap().get(fqName);
public ClassDescriptor getKotlinAnalog(@NotNull FqName fqName) {
return getClassDescriptorMap().get(fqName);
}
/**
@@ -94,12 +94,8 @@ public abstract class JetTypeJetSignatureReader extends JetSignatureExceptionsAd
);
this.classDescriptor = null;
if (this.classDescriptor == null && !forceReal) {
this.classDescriptor = this.javaSemanticServices.getTypeTransformer().unwrapPrimitive(ourName);
}
if (this.classDescriptor == null && ourName.equals(new FqName("java.lang.Object")) && !forceReal) {
this.classDescriptor = JetStandardClasses.getAny();
if (!forceReal) {
classDescriptor = javaSemanticServices.getTypeTransformer().getKotlinAnalog(ourName);
}
if (classDescriptor == null) {