mirror of
https://github.com/jlengrand/kotlin.git
synced 2026-05-08 15:53:19 +00:00
29 lines
525 B
Kotlin
Vendored
29 lines
525 B
Kotlin
Vendored
// FILE: 1.kt
|
|
// WITH_RUNTIME
|
|
package test
|
|
|
|
object ContentTypeByExtension {
|
|
inline fun processRecords(crossinline operation: (String) -> String) =
|
|
listOf("O", "K").map {
|
|
val ext = B(it)
|
|
operation(ext.toLowerCase())
|
|
}.joinToString("")
|
|
}
|
|
|
|
|
|
|
|
|
|
inline fun A.toLowerCase(): String = (this as B).value
|
|
|
|
open class A
|
|
|
|
open class B(val value: String) : A()
|
|
|
|
// FILE: 2.kt
|
|
|
|
import test.*
|
|
|
|
fun box(): String {
|
|
return ContentTypeByExtension.processRecords { ext -> ext }
|
|
}
|