From 9d087ce5bd49ca7cbb41f31db4a8703bc51fac17 Mon Sep 17 00:00:00 2001 From: Denis Zharkov Date: Fri, 2 Oct 2015 14:59:20 +0300 Subject: [PATCH] Convert `size()` functions in builtins to properties Just like it will work itself out :) --- compiler/testData/builtin-classes.txt | 24 ++++++++++++++-------- core/builtins/native/kotlin/Collections.kt | 8 ++++---- 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/compiler/testData/builtin-classes.txt b/compiler/testData/builtin-classes.txt index 8b775707d69..5611beca4ab 100644 --- a/compiler/testData/builtin-classes.txt +++ b/compiler/testData/builtin-classes.txt @@ -272,11 +272,12 @@ public interface Cloneable { } public interface Collection : kotlin.Iterable { + public abstract val size: kotlin.Int + public abstract fun (): kotlin.Int public abstract operator fun contains(/*0*/ o: kotlin.Any?): kotlin.Boolean public abstract fun containsAll(/*0*/ c: kotlin.Collection): kotlin.Boolean public abstract fun isEmpty(): kotlin.Boolean public abstract override /*1*/ fun iterator(): kotlin.Iterator - public abstract fun size(): kotlin.Int } public interface Comparable { @@ -744,6 +745,8 @@ public interface Iterator { } public interface List : kotlin.Collection { + public abstract override /*1*/ val size: kotlin.Int + public abstract override /*1*/ fun (): kotlin.Int public abstract override /*1*/ fun contains(/*0*/ o: kotlin.Any?): kotlin.Boolean public abstract override /*1*/ fun containsAll(/*0*/ c: kotlin.Collection): kotlin.Boolean public abstract operator fun get(/*0*/ index: kotlin.Int): E @@ -753,7 +756,6 @@ public interface List : kotlin.Collection { public abstract fun lastIndexOf(/*0*/ o: kotlin.Any?): kotlin.Int public abstract fun listIterator(): kotlin.ListIterator public abstract fun listIterator(/*0*/ index: kotlin.Int): kotlin.ListIterator - public abstract override /*1*/ fun size(): kotlin.Int public abstract fun subList(/*0*/ fromIndex: kotlin.Int, /*1*/ toIndex: kotlin.Int): kotlin.List } @@ -903,13 +905,14 @@ public final class LongRange : kotlin.Range, kotlin.Progression { + public abstract val size: kotlin.Int + public abstract fun (): kotlin.Int public abstract fun containsKey(/*0*/ key: kotlin.Any?): kotlin.Boolean public abstract fun containsValue(/*0*/ value: kotlin.Any?): kotlin.Boolean public abstract fun entrySet(): kotlin.Set> public abstract operator fun get(/*0*/ key: kotlin.Any?): V? public abstract fun isEmpty(): kotlin.Boolean public abstract fun keySet(): kotlin.Set - public abstract fun size(): kotlin.Int public abstract fun values(): kotlin.Collection public interface Entry { @@ -919,6 +922,8 @@ public interface Map { } public interface MutableCollection : kotlin.Collection, kotlin.MutableIterable { + public abstract override /*1*/ /*fake_override*/ val size: kotlin.Int + public abstract override /*1*/ /*fake_override*/ fun (): kotlin.Int public abstract fun add(/*0*/ e: E): kotlin.Boolean public abstract fun addAll(/*0*/ c: kotlin.Collection): kotlin.Boolean public abstract fun clear(): kotlin.Unit @@ -929,7 +934,6 @@ public interface MutableCollection : kotlin.Collection, kotlin.Mutab public abstract fun remove(/*0*/ o: kotlin.Any?): kotlin.Boolean public abstract fun removeAll(/*0*/ c: kotlin.Collection): kotlin.Boolean public abstract fun retainAll(/*0*/ c: kotlin.Collection): kotlin.Boolean - public abstract override /*1*/ /*fake_override*/ fun size(): kotlin.Int } public interface MutableIterable : kotlin.Iterable { @@ -943,6 +947,8 @@ public interface MutableIterator : kotlin.Iterator { } public interface MutableList : kotlin.List, kotlin.MutableCollection { + public abstract override /*2*/ /*fake_override*/ val size: kotlin.Int + public abstract override /*2*/ /*fake_override*/ fun (): kotlin.Int public abstract override /*1*/ fun add(/*0*/ e: E): kotlin.Boolean public abstract fun add(/*0*/ index: kotlin.Int, /*1*/ element: E): kotlin.Unit public abstract override /*1*/ fun addAll(/*0*/ c: kotlin.Collection): kotlin.Boolean @@ -962,7 +968,6 @@ public interface MutableList : kotlin.List, kotlin.MutableCollection public abstract override /*1*/ fun removeAll(/*0*/ c: kotlin.Collection): kotlin.Boolean public abstract override /*1*/ fun retainAll(/*0*/ c: kotlin.Collection): kotlin.Boolean public abstract operator fun set(/*0*/ index: kotlin.Int, /*1*/ element: E): E - public abstract override /*2*/ /*fake_override*/ fun size(): kotlin.Int public abstract override /*1*/ fun subList(/*0*/ fromIndex: kotlin.Int, /*1*/ toIndex: kotlin.Int): kotlin.MutableList } @@ -979,6 +984,8 @@ public interface MutableListIterator : kotlin.ListIterator, kotlin.M } public interface MutableMap : kotlin.Map { + public abstract override /*1*/ /*fake_override*/ val size: kotlin.Int + public abstract override /*1*/ /*fake_override*/ fun (): kotlin.Int public abstract fun clear(): kotlin.Unit public abstract override /*1*/ /*fake_override*/ fun containsKey(/*0*/ key: kotlin.Any?): kotlin.Boolean public abstract override /*1*/ /*fake_override*/ fun containsValue(/*0*/ value: kotlin.Any?): kotlin.Boolean @@ -989,7 +996,6 @@ public interface MutableMap : kotlin.Map { public abstract fun put(/*0*/ key: K, /*1*/ value: V): V? public abstract fun putAll(/*0*/ m: kotlin.Map): kotlin.Unit public abstract fun remove(/*0*/ key: kotlin.Any?): V? - public abstract override /*1*/ /*fake_override*/ fun size(): kotlin.Int public abstract override /*1*/ fun values(): kotlin.MutableCollection public interface MutableEntry : kotlin.Map.Entry { @@ -1000,6 +1006,8 @@ public interface MutableMap : kotlin.Map { } public interface MutableSet : kotlin.Set, kotlin.MutableCollection { + public abstract override /*2*/ /*fake_override*/ val size: kotlin.Int + public abstract override /*2*/ /*fake_override*/ fun (): kotlin.Int public abstract override /*1*/ fun add(/*0*/ e: E): kotlin.Boolean public abstract override /*1*/ fun addAll(/*0*/ c: kotlin.Collection): kotlin.Boolean public abstract override /*1*/ fun clear(): kotlin.Unit @@ -1010,7 +1018,6 @@ public interface MutableSet : kotlin.Set, kotlin.MutableCollection): kotlin.Boolean public abstract override /*1*/ fun retainAll(/*0*/ c: kotlin.Collection): kotlin.Boolean - public abstract override /*2*/ /*fake_override*/ fun size(): kotlin.Int } public final class Nothing { @@ -1069,11 +1076,12 @@ public interface Range> { } public interface Set : kotlin.Collection { + public abstract override /*1*/ val size: kotlin.Int + public abstract override /*1*/ fun (): kotlin.Int public abstract override /*1*/ fun contains(/*0*/ o: kotlin.Any?): kotlin.Boolean public abstract override /*1*/ fun containsAll(/*0*/ c: kotlin.Collection): kotlin.Boolean public abstract override /*1*/ fun isEmpty(): kotlin.Boolean public abstract override /*1*/ fun iterator(): kotlin.Iterator - public abstract override /*1*/ fun size(): kotlin.Int } public final class Short : kotlin.Number, kotlin.Comparable { diff --git a/core/builtins/native/kotlin/Collections.kt b/core/builtins/native/kotlin/Collections.kt index 522481c5d1b..a954886c36c 100644 --- a/core/builtins/native/kotlin/Collections.kt +++ b/core/builtins/native/kotlin/Collections.kt @@ -49,7 +49,7 @@ public interface Collection : Iterable { /** * Returns the size of the collection. */ - public fun size(): Int + public val size: Int /** * Returns `true` if the collection is empty (contains no elements), `false` otherwise. @@ -128,7 +128,7 @@ public interface MutableCollection : Collection, MutableIterable { */ public interface List : Collection { // Query Operations - override fun size(): Int + override val size: Int override fun isEmpty(): Boolean override fun contains(o: Any?): Boolean override fun iterator(): Iterator @@ -232,7 +232,7 @@ public interface MutableList : List, MutableCollection { */ public interface Set : Collection { // Query Operations - override fun size(): Int + override val size: Int override fun isEmpty(): Boolean override fun contains(o: Any?): Boolean override fun iterator(): Iterator @@ -274,7 +274,7 @@ public interface Map { /** * Returns the number of key/value pairs in the map. */ - public fun size(): Int + public val size: Int /** * Returns `true` if the map is empty (contains no elements), `false` otherwise.