/**
* A simple class to illustrate multiple dispatch.
*/
class Weird(var name: String) {
inline fun <T: Weird> T.withContext(): String {
return this@Weird.name
}
}
fun main(args: Array<String>) {
val x = Weird("this-context")
println(with(x) {
Weird("this-argument").withContext()
})
}