13 lines
419 B
Kotlin
13 lines
419 B
Kotlin
/**
|
|
These declarations are "shallow" in the sense that they are not really compiled, only the type-checker uses them
|
|
*/
|
|
|
|
open class ReadOnlyArray<out T> : ISized {
|
|
[operator] fun get(index : Int) : T
|
|
}
|
|
|
|
open class WriteOnlyArray<in T> : ISized { // This is needed to keep IIterator's <T> covariant
|
|
[operator] fun set(index : Int, value : T)
|
|
}
|
|
|
|
class MutableArray<T> : ReadOnlyArray<T>, WriteOnlyArray<T> {/*...*/} |