invoke register on java class, not on name
This commit is contained in:
+34
-31
@@ -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.JetStandardLibrary;
|
||||||
import org.jetbrains.jet.lang.types.lang.PrimitiveType;
|
import org.jetbrains.jet.lang.types.lang.PrimitiveType;
|
||||||
|
|
||||||
|
import java.util.Iterator;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -48,7 +49,7 @@ public class JavaToKotlinTypesMap {
|
|||||||
|
|
||||||
private JavaToKotlinTypesMap() {
|
private JavaToKotlinTypesMap() {
|
||||||
init();
|
init();
|
||||||
initPrimitive();
|
initPrimitives();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
@@ -70,41 +71,43 @@ public class JavaToKotlinTypesMap {
|
|||||||
private void init() {
|
private void init() {
|
||||||
JetStandardLibrary standardLibrary = JetStandardLibrary.getInstance();
|
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()) {
|
for (JvmPrimitiveType jvmPrimitiveType : JvmPrimitiveType.values()) {
|
||||||
PrimitiveType primitiveType = jvmPrimitiveType.getPrimitiveType();
|
PrimitiveType primitiveType = jvmPrimitiveType.getPrimitiveType();
|
||||||
register(jvmPrimitiveType.getWrapper().getFqName(), standardLibrary.getPrimitiveClassDescriptor(primitiveType));
|
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()) {
|
for (JvmPrimitiveType jvmPrimitiveType : JvmPrimitiveType.values()) {
|
||||||
PrimitiveType primitiveType = jvmPrimitiveType.getPrimitiveType();
|
PrimitiveType primitiveType = jvmPrimitiveType.getPrimitiveType();
|
||||||
primitiveTypesMap.put(jvmPrimitiveType.getName(), JetStandardLibrary.getInstance().getPrimitiveJetType(primitiveType));
|
primitiveTypesMap.put(jvmPrimitiveType.getName(), JetStandardLibrary.getInstance().getPrimitiveJetType(primitiveType));
|
||||||
|
|||||||
Reference in New Issue
Block a user