Files
kotlin-fork/idea/testData/psi/examples/PolymorphicClassObjects.jet
T
Andrey Breslav a2721d3309 JET-140 Change function type syntax
and tests for
JET-168 Improve the parser for function and tuple types as receiver types
2011-07-06 17:55:41 +04:00

31 lines
513 B
Plaintext

virtual class Builder<E, R> {
[operator] fun plusAssign(item : E)
fun result() : R
}
virtual class Buildable {
fun newBuilder<E, R>() : Builder<E, R>
}
class List<T> {
class object : Buildable {
override fun newBuilder<E, R>() : Builder<E, R>
}
}
extension Map<E, T>
where
T : Iterable<E>,
class object T : Buildable<E, T> for T {
fun map<R>(f : fun (E) : R) : T<R> = {
val builder = T.newBuilder()
for (e in this) {
builder += f(e)
}
builder.result()
}
}