Make Array.size() a function instead of a property

Also add a deprecated extension property to help migration. This is done to
unify getting size of arrays and collections
This commit is contained in:
Alexander Udalov
2014-11-14 18:02:04 +03:00
parent bc238d5f4c
commit 128c938965
67 changed files with 677 additions and 625 deletions
@@ -28,7 +28,7 @@ class GenerateArrayIterators(out: PrintWriter) : BuiltInsSourceGenerator(out) {
val s = kind.capitalized
out.println("private class Array${s}Iterator(private val array: ${s}Array) : ${s}Iterator() {")
out.println(" private var index = 0")
out.println(" override fun hasNext() = index < array.size")
out.println(" override fun hasNext() = index < array.size()")
out.println(" override fun next$s() = array[index++]")
out.println("}")
out.println()
@@ -26,10 +26,12 @@ class GenerateArrays(out: PrintWriter) : BuiltInsSourceGenerator(out) {
override fun generateBody() {
for (kind in PrimitiveType.values()) {
val s = kind.capitalized
out.println("public class ${s}Array(public val size: Int) : Cloneable {")
out.println("public class ${s}Array(size: Int) : Cloneable {")
out.println(" public fun get(index: Int): $s")
out.println(" public fun set(index: Int, value: $s): Unit")
out.println()
out.println(" public fun size(): Int")
out.println()
out.println(" public fun iterator(): ${s}Iterator")
out.println()
out.println(" public val indices: IntRange")