From 35c276be18961ae638e5c3f6ffdec9889073b5bc Mon Sep 17 00:00:00 2001 From: Svetlana Isakova Date: Fri, 24 Aug 2012 20:44:25 +0400 Subject: [PATCH] removed constants from JetStandardLibraryNames, JetTypeMapper that are used only in KotlinToJavaTypesMapper --- .../jetbrains/jet/codegen/JetTypeMapper.java | 5 --- .../jet/codegen/KotlinToJavaTypesMap.java | 45 +++++++++++++------ .../types/lang/JetStandardLibraryNames.java | 12 ----- 3 files changed, 31 insertions(+), 31 deletions(-) diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/JetTypeMapper.java b/compiler/backend/src/org/jetbrains/jet/codegen/JetTypeMapper.java index 1e26a784248..30a1df93e64 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/JetTypeMapper.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/JetTypeMapper.java @@ -57,12 +57,7 @@ public class JetTypeMapper { public static final Type JAVA_NUMBER_TYPE = Type.getType(Number.class); public static final Type JAVA_STRING_BUILDER_TYPE = Type.getType(StringBuilder.class); public static final Type JAVA_STRING_TYPE = Type.getType(String.class); - public static final Type JAVA_ENUM_TYPE = Type.getType(Enum.class); - public static final Type JAVA_CHAR_SEQUENCE_TYPE = Type.getType(CharSequence.class); - public static final Type JAVA_COMPARABLE_TYPE = Type.getType(Comparable.class); public static final Type JAVA_THROWABLE_TYPE = Type.getType(Throwable.class); - public static final Type JAVA_ITERABLE_TYPE = Type.getType(Iterable.class); - public static final Type JAVA_ITERATOR_TYPE = Type.getType(Iterator.class); public static final Type JAVA_CLASS_TYPE = Type.getType(Class.class); public static final Type JAVA_BOOLEAN_TYPE = Type.getType(Boolean.class); public static final Type JAVA_ARRAY_GENERIC_TYPE = Type.getType(Object[].class); diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/KotlinToJavaTypesMap.java b/compiler/backend/src/org/jetbrains/jet/codegen/KotlinToJavaTypesMap.java index 73421141c33..a323568416f 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/KotlinToJavaTypesMap.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/KotlinToJavaTypesMap.java @@ -21,15 +21,20 @@ import com.google.common.collect.Sets; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.asm4.Type; +import org.jetbrains.jet.lang.descriptors.ClassDescriptor; import org.jetbrains.jet.lang.descriptors.ClassifierDescriptor; +import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor; import org.jetbrains.jet.lang.resolve.DescriptorUtils; import org.jetbrains.jet.lang.resolve.java.JvmClassName; import org.jetbrains.jet.lang.resolve.java.JvmPrimitiveType; import org.jetbrains.jet.lang.resolve.name.FqNameUnsafe; import org.jetbrains.jet.lang.types.JetType; +import org.jetbrains.jet.lang.types.lang.JetStandardClasses; +import org.jetbrains.jet.lang.types.lang.JetStandardLibrary; import org.jetbrains.jet.lang.types.lang.PrimitiveType; import org.jetbrains.jet.lang.types.ref.ClassName; +import java.util.Iterator; import java.util.Map; import java.util.Set; @@ -56,6 +61,7 @@ public class KotlinToJavaTypesMap { private KotlinToJavaTypesMap() { init(); + initPrimitive(); } @Nullable @@ -72,6 +78,16 @@ public class KotlinToJavaTypesMap { return asmTypes.get(className); } + private void register(@NotNull ClassDescriptor kotlinDescriptor, @NotNull Class javaClass) { + register(kotlinDescriptor, Type.getType(javaClass)); + } + + private void register(@NotNull ClassDescriptor kotlinDescriptor, @NotNull Type javaType) { + FqNameUnsafe fqName = DescriptorUtils.getFQName(kotlinDescriptor); + ClassName className = new ClassName(fqName.toSafe(), kotlinDescriptor.getDefaultType().getArguments().size()); + register(className, javaType); + } + private void register(@NotNull ClassName className, @NotNull Type type) { asmTypeNames.add(type.getClassName()); asmTypes.put(className.getFqName().toUnsafe(), type); @@ -82,27 +98,28 @@ public class KotlinToJavaTypesMap { } public void init() { - register(NOTHING, JET_NOTHING_TYPE); + JetStandardLibrary standardLibrary = JetStandardLibrary.getInstance(); + register(JetStandardClasses.getNothing(), JET_NOTHING_TYPE); //todo ????? + register(JetStandardClasses.getAny(), Object.class); + register(standardLibrary.getNumber(), Number.class); + register(standardLibrary.getString(), String.class); + register(standardLibrary.getThrowable(), Throwable.class); + register(standardLibrary.getCharSequence(), CharSequence.class); + register(standardLibrary.getComparable(), Comparable.class); + register(standardLibrary.getEnum(), Enum.class); + register(standardLibrary.getIterable(), Iterable.class); + register(standardLibrary.getIterator(), Iterator.class); + register(standardLibrary.getMutableIterable(), Iterable.class); + register(standardLibrary.getMutableIterator(), Iterator.class); + } + public void initPrimitive() { for (JvmPrimitiveType jvmPrimitiveType : JvmPrimitiveType.values()) { ClassName className = jvmPrimitiveType.getPrimitiveType().getClassName(); register(className, jvmPrimitiveType.getAsmType()); registerNullable(className, jvmPrimitiveType.getWrapper().getAsmType()); } - - register(ANY, OBJECT_TYPE); - register(NUMBER, JAVA_NUMBER_TYPE); - register(STRING, JAVA_STRING_TYPE); - register(CHAR_SEQUENCE, JAVA_CHAR_SEQUENCE_TYPE); - register(THROWABLE, JAVA_THROWABLE_TYPE); - register(COMPARABLE, JAVA_COMPARABLE_TYPE); - register(ENUM, JAVA_ENUM_TYPE); - register(ITERABLE, JAVA_ITERABLE_TYPE); - register(ITERATOR, JAVA_ITERATOR_TYPE); - register(MUTABLE_ITERABLE, JAVA_ITERABLE_TYPE); - register(MUTABLE_ITERATOR, JAVA_ITERATOR_TYPE); - for (JvmPrimitiveType jvmPrimitiveType : JvmPrimitiveType.values()) { PrimitiveType primitiveType = jvmPrimitiveType.getPrimitiveType(); register(primitiveType.getArrayClassName(), jvmPrimitiveType.getAsmArrayType()); diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/types/lang/JetStandardLibraryNames.java b/compiler/frontend/src/org/jetbrains/jet/lang/types/lang/JetStandardLibraryNames.java index e7c2ce67c6b..a277c96b475 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/types/lang/JetStandardLibraryNames.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/types/lang/JetStandardLibraryNames.java @@ -35,19 +35,7 @@ public class JetStandardLibraryNames { typeParameterCount); } - public static final ClassName ANY = classIn("Any", 0); public static final ClassName ARRAY = classIn("Array", 1); public static final ClassName VOLATILE = classIn("volatile", 0); public static final ClassName INT = PrimitiveType.INT.getClassName(); - public static final ClassName COMPARABLE = classIn("Comparable", 1); - public static final ClassName ITERABLE = classIn("Iterable", 1); - public static final ClassName ITERATOR = classIn("Iterator", 1); - public static final ClassName MUTABLE_ITERABLE = classIn("MutableIterable", 1); - public static final ClassName MUTABLE_ITERATOR = classIn("MutableIterator", 1); - public static final ClassName NOTHING = classIn("Nothing", 0); - public static final ClassName STRING = classIn("String", 0); - public static final ClassName CHAR_SEQUENCE = classIn("CharSequence", 0); - public static final ClassName NUMBER = classIn("Number", 0); - public static final ClassName THROWABLE = classIn("Throwable", 0); - public static final ClassName ENUM = classIn("Enum", 1); }