Stdlib: Move classes out of class object in FunctionalList

This commit is contained in:
Pavel V. Talanov
2015-02-19 12:10:39 +03:00
parent ffabe19229
commit b012b9d8a3
@@ -38,16 +38,16 @@ public abstract class FunctionalList<T>(public val size: Int) {
override fun hasNext(): Boolean = !cur.empty
}
private class Empty<T>() : FunctionalList<T>(0) {
override val head: T
get() = throw java.util.NoSuchElementException()
override val tail: FunctionalList<T>
get() = throw java.util.NoSuchElementException()
}
private class Standard<T>(override val head: T, override val tail: FunctionalList<T>) : FunctionalList<T>(tail.size + 1)
class object {
private class Empty<T>() : FunctionalList<T>(0) {
override val head: T
get() = throw java.util.NoSuchElementException()
override val tail: FunctionalList<T>
get() = throw java.util.NoSuchElementException()
}
private class Standard<T>(override val head: T, override val tail: FunctionalList<T>) : FunctionalList<T>(tail.size + 1)
public fun <T> emptyList(): FunctionalList<T> = Empty<T>()
public fun <T> of(element: T): FunctionalList<T> = FunctionalList.Standard<T>(element, emptyList())