// WITH_RUNTIME inline class Z(val x: Int) inline class ZArray(val storage: IntArray) : Collection { override val size: Int get() = storage.size override fun contains(element: Z): Boolean { return storage.contains(element.x) } override fun containsAll(elements: Collection): Boolean { return elements.all { contains(it) } } override fun isEmpty(): Boolean { return storage.isEmpty() } private class ZArrayIterator(val storage: IntArray): Iterator { var index = 0 override fun hasNext(): Boolean = index < storage.size override fun next(): Z = Z(storage[index++]) } override fun iterator(): Iterator = ZArrayIterator(storage) } fun box(): String { val zs = ZArray(IntArray(5)) val testSize = zs.size if (testSize != 5) return "Failed: testSize=$testSize" val testContains = zs.contains(object {} as Any) if (testContains) return "Failed: testContains=$testContains" return "OK" }