"trait" instead of "trait class"
virtual -> open "final" introduced "wraps" dropped
This commit is contained in:
@@ -21,7 +21,7 @@ fun countOnes(x : INumber) = if (x == 0) 0 else mostSignificantBit(x) + countOne
|
||||
|
||||
fun Int.matchMask(mask : Int) = this and mask == mask
|
||||
|
||||
virtual class INumber<T : this> : IComparable<T> {
|
||||
open class INumber<T : this> : IComparable<T> {
|
||||
val bits : Int
|
||||
[operator] fun plus(other : T) : T
|
||||
[operator] fun shl(bits : Int) : T
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
virtual class IPushPop<T> {
|
||||
open class IPushPop<T> {
|
||||
val isEmpty : Boolean
|
||||
fun push(item : T)
|
||||
fun pop() : T
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
virtual class Builder<E, R> {
|
||||
open class Builder<E, R> {
|
||||
[operator] fun plusAssign(item : E)
|
||||
fun result() : R
|
||||
}
|
||||
|
||||
virtual class Buildable {
|
||||
open class Buildable {
|
||||
fun newBuilder<E, R>() : Builder<E, R>
|
||||
}
|
||||
|
||||
|
||||
@@ -2,11 +2,11 @@
|
||||
These declarations are "shallow" in the sense that they are not really compiled, only the type-checker uses them
|
||||
*/
|
||||
|
||||
virtual class ReadOnlyArray<out T> : ISized {
|
||||
open class ReadOnlyArray<out T> : ISized {
|
||||
[operator] fun get(index : Int) : T
|
||||
}
|
||||
|
||||
virtual class WriteOnlyArray<in T> : ISized { // This is needed to keep IIterator's <T> covariant
|
||||
open class WriteOnlyArray<in T> : ISized { // This is needed to keep IIterator's <T> covariant
|
||||
[operator] fun set(index : Int, value : T)
|
||||
}
|
||||
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
virtual class IEquality {
|
||||
open class IEquality {
|
||||
fun equals(other : Any) : Boolean
|
||||
= (this as java.lang.Object).equals(other as java.lang.Object)
|
||||
}
|
||||
|
||||
virtual class IHashable : IEquality {
|
||||
open class IHashable : IEquality {
|
||||
val hashCode : Integer
|
||||
get() = (this as java.lang.Object).hashCode()
|
||||
|
||||
}
|
||||
|
||||
virtual class IMap<K, V> {
|
||||
open class IMap<K, V> {
|
||||
fun get(key : K) : V
|
||||
fun set(key : K, value : V) : V
|
||||
fun remove(key : K) : V
|
||||
@@ -21,7 +21,7 @@ class HashableWrapper wraps (val obj : Any) : IHashable
|
||||
|
||||
[inline] fun Any.hashable() : HashableWrapper = new HashableWrapper(this)
|
||||
|
||||
virtual class IHashingStrategy<K> {
|
||||
open class IHashingStrategy<K> {
|
||||
fun equals(a : K, b : K) : Boolean
|
||||
fun hashCode(a : K) : Integer
|
||||
}
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
virtual class IIterable<out T> {
|
||||
open class IIterable<out T> {
|
||||
fun iterator() : IIterator<T>
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
virtual class IIterator<out T> {
|
||||
open class IIterator<out T> {
|
||||
fun next() : T
|
||||
val hasNext : Boolean
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
virtual class IList<out T> : IIterable<T>, ISized {
|
||||
open class IList<out T> : IIterable<T>, ISized {
|
||||
[operator] fun get(index : Int) : T
|
||||
val isEmpty : Boolean
|
||||
}
|
||||
@@ -1,3 +1,3 @@
|
||||
virtual class IMutableIterable<out T> : IIterable<T> {
|
||||
open class IMutableIterable<out T> : IIterable<T> {
|
||||
fun mutableIterator() : IMutableIterator<T>
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
virtual class IMutableIterator<out T> : IIterator<T> {
|
||||
open class IMutableIterator<out T> : IIterator<T> {
|
||||
fun remove() : T
|
||||
|
||||
/*
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
virtual class IMutableList<T> : IList<T>, IMutableIterable<T> {
|
||||
open class IMutableList<T> : IList<T>, IMutableIterable<T> {
|
||||
fun set(index : Int, value : T) : T
|
||||
fun add(index : Int, value : T)
|
||||
fun remove(index : Int) : T
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
virtual class IMutableSet<T> : ISet<T>, IMutableIterable<T> {
|
||||
open class IMutableSet<T> : ISet<T>, IMutableIterable<T> {
|
||||
fun add(item : T) : Boolean
|
||||
fun remove(item : T) : Boolean
|
||||
}
|
||||
@@ -1,3 +1,3 @@
|
||||
virtual class ISet<T> : IIterable<T>, ISized {
|
||||
open class ISet<T> : IIterable<T>, ISized {
|
||||
fun contains(item : T) : Boolean
|
||||
}
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
virtual class ISized {
|
||||
open class ISized {
|
||||
val size : Int
|
||||
}
|
||||
@@ -1,8 +1,8 @@
|
||||
virtual class IAdder<in T> {
|
||||
open class IAdder<in T> {
|
||||
fun add(item : T) : Boolean
|
||||
}
|
||||
|
||||
virtual class ICloseable {
|
||||
open class ICloseable {
|
||||
fun close()
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
virtual class IMap<in K, out V> {
|
||||
open class IMap<in K, out V> {
|
||||
|
||||
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
virtual class IPriorityQueue<T> {
|
||||
open class IPriorityQueue<T> {
|
||||
fun extract() : T
|
||||
fun add(item : T)
|
||||
val isEmpty : Boolean
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
virtual class IComparable<in T> {
|
||||
open class IComparable<in T> {
|
||||
fun compareTo(other : T) : Int
|
||||
}
|
||||
Reference in New Issue
Block a user