From 30d31444342f74cd6defd7e11ff3c1fa4f0c2f9d Mon Sep 17 00:00:00 2001 From: Svetlana Isakova Date: Fri, 24 Aug 2012 21:30:58 +0400 Subject: [PATCH] invoke register on java class, not on name --- .../resolve/java/JavaToKotlinTypesMap.java | 65 ++++++++++--------- 1 file changed, 34 insertions(+), 31 deletions(-) diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaToKotlinTypesMap.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaToKotlinTypesMap.java index dc6faaa1331..c0e136755d9 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaToKotlinTypesMap.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaToKotlinTypesMap.java @@ -26,6 +26,7 @@ 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 java.util.Iterator; import java.util.Map; /** @@ -48,7 +49,7 @@ public class JavaToKotlinTypesMap { private JavaToKotlinTypesMap() { init(); - initPrimitive(); + initPrimitives(); } @Nullable @@ -70,41 +71,43 @@ public class JavaToKotlinTypesMap { private void init() { JetStandardLibrary standardLibrary = JetStandardLibrary.getInstance(); + register(Object.class, JetStandardClasses.getAny()); + register(String.class, standardLibrary.getString()); + register(CharSequence.class, standardLibrary.getCharSequence()); + register(Throwable.class, standardLibrary.getThrowable()); + register(Number.class, standardLibrary.getNumber()); + register(Comparable.class, standardLibrary.getComparable()); + register(Enum.class, standardLibrary.getEnum()); + register(Iterable.class, standardLibrary.getIterable()); + register(Iterator.class, standardLibrary.getIterator()); + + registerCovariant(Iterable.class, standardLibrary.getMutableIterable()); + registerCovariant(Iterator.class, standardLibrary.getMutableIterator()); + } + + private void register(@NotNull Class javaClass, @NotNull ClassDescriptor kotlinDescriptor) { + register(new FqName(javaClass.getName()), kotlinDescriptor); + } + + private void register(@NotNull FqName javaClassName, @NotNull ClassDescriptor kotlinDescriptor) { + classDescriptorMap.put(javaClassName, kotlinDescriptor); + } + + private void registerCovariant(@NotNull Class javaClass, @NotNull ClassDescriptor kotlinDescriptor) { + registerCovariant(new FqName(javaClass.getName()), kotlinDescriptor); + } + + private void registerCovariant(@NotNull FqName javaClassName, @NotNull ClassDescriptor kotlinDescriptor) { + classDescriptorMapForCovariantPositions.put(javaClassName, kotlinDescriptor); + } + + private void initPrimitives() { + JetStandardLibrary standardLibrary = JetStandardLibrary.getInstance(); for (JvmPrimitiveType jvmPrimitiveType : JvmPrimitiveType.values()) { PrimitiveType primitiveType = jvmPrimitiveType.getPrimitiveType(); register(jvmPrimitiveType.getWrapper().getFqName(), standardLibrary.getPrimitiveClassDescriptor(primitiveType)); } - register("java.lang.Object", JetStandardClasses.getAny()); - register("java.lang.String", standardLibrary.getString()); - register("java.lang.CharSequence", standardLibrary.getCharSequence()); - register("java.lang.Throwable", standardLibrary.getThrowable()); - register("java.lang.Number", standardLibrary.getNumber()); - register("java.lang.Comparable", standardLibrary.getComparable()); - register("java.lang.Enum", standardLibrary.getEnum()); - register("java.lang.Iterable", standardLibrary.getIterable()); - register("java.util.Iterator", standardLibrary.getIterator()); - registerCovariant("java.lang.Iterable", standardLibrary.getMutableIterable()); - registerCovariant("java.util.Iterator", standardLibrary.getMutableIterator()); - } - - private void register(String className, ClassDescriptor classDescriptor) { - register(new FqName(className), classDescriptor); - } - - private void register(FqName fqName, ClassDescriptor classDescriptor) { - classDescriptorMap.put(fqName, classDescriptor); - } - - private void registerCovariant(String className, ClassDescriptor classDescriptor) { - registerCovariant(new FqName(className), classDescriptor); - } - - private void registerCovariant(FqName fqName, ClassDescriptor classDescriptor) { - classDescriptorMapForCovariantPositions.put(fqName, classDescriptor); - } - - private void initPrimitive() { for (JvmPrimitiveType jvmPrimitiveType : JvmPrimitiveType.values()) { PrimitiveType primitiveType = jvmPrimitiveType.getPrimitiveType(); primitiveTypesMap.put(jvmPrimitiveType.getName(), JetStandardLibrary.getInstance().getPrimitiveJetType(primitiveType));