diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/JetTypeMapper.java b/compiler/backend/src/org/jetbrains/jet/codegen/JetTypeMapper.java index b7cca4de60c..28287eda721 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/JetTypeMapper.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/JetTypeMapper.java @@ -68,6 +68,8 @@ public class JetTypeMapper { public static final Type JL_ENUM_TYPE = Type.getObjectType("java/lang/Enum"); public static final Type JL_CHAR_SEQUENCE_TYPE = Type.getObjectType("java/lang/CharSequence"); private static final Type JL_COMPARABLE_TYPE = Type.getObjectType("java/lang/Comparable"); + private static final Type JL_ITERABLE_TYPE = Type.getObjectType("java/lang/Iterable"); + private static final Type JL_ITERATOR_TYPE = Type.getObjectType("java/util/Iterator"); public static final Type JL_CLASS_TYPE = Type.getObjectType("java/lang/Class"); public static final Type JL_BOOLEAN_TYPE = Type.getObjectType("java/lang/Boolean"); @@ -148,6 +150,8 @@ public class JetTypeMapper { register(JetStandardLibraryNames.THROWABLE, TYPE_THROWABLE, TYPE_THROWABLE); register(JetStandardLibraryNames.COMPARABLE, JL_COMPARABLE_TYPE, JL_COMPARABLE_TYPE); register(JetStandardLibraryNames.ENUM, JL_ENUM_TYPE, JL_ENUM_TYPE); + register(JetStandardLibraryNames.ITERABLE, JL_ITERABLE_TYPE, JL_ITERABLE_TYPE); + register(JetStandardLibraryNames.ITERATOR, JL_ITERATOR_TYPE, JL_ITERATOR_TYPE); for (JvmPrimitiveType jvmPrimitiveType : JvmPrimitiveType.values()) { PrimitiveType primitiveType = jvmPrimitiveType.getPrimitiveType(); @@ -444,7 +448,7 @@ public class JetTypeMapper { // TODO: enable and fix tests //throw new IllegalStateException("must not map known type to IMPL when not compiling builtins: " + jetType); } - // fall through + return mapKnownAsmType(jetType, known, signatureVisitor); } else { throw new IllegalStateException("unknown kind: " + kind); diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/intrinsics/ArrayIterator.java b/compiler/backend/src/org/jetbrains/jet/codegen/intrinsics/ArrayIterator.java index 1e60efce96d..12d5c00c57b 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/intrinsics/ArrayIterator.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/intrinsics/ArrayIterator.java @@ -57,7 +57,7 @@ public class ArrayIterator implements IntrinsicMethod { assert funDescriptor != null; ClassDescriptor containingDeclaration = (ClassDescriptor) funDescriptor.getContainingDeclaration().getOriginal(); if (JetStandardLibraryNames.ARRAY.is(containingDeclaration)) { - v.invokestatic("jet/runtime/ArrayIterator", "iterator", "([Ljava/lang/Object;)Ljet/Iterator;"); + v.invokestatic("jet/runtime/ArrayIterator", "iterator", "([Ljava/lang/Object;)Ljava/util/Iterator;"); return StackValue.onStack(JetTypeMapper.TYPE_ITERATOR); } else {