Allow interpreting code extension property

This commit is contained in:
Ivan Kylchik
2021-11-16 16:11:44 +03:00
parent 7113523e34
commit 6a0802a1be
2 changed files with 4 additions and 0 deletions
@@ -197,6 +197,9 @@ internal fun interpretUnaryFunction(name: String, type: String, a: Any?): Any? {
"CHECK_NOT_NULL" -> when (type) {
"T0?" -> return a!!
}
"code" -> when (type) {
"Char" -> return (a as Char).code
}
}
throw InterpreterMethodNotFoundError("Unknown function: $name($type)")
}
@@ -55,6 +55,7 @@ fun generateMap(): String {
val irNullCheck = irBuiltIns.checkNotNullSymbol.owner
this += Operation(irNullCheck.name.asString(), listOf("T0?"), customExpression = "a!!")
this += Operation("toString", listOf("Any?"), customExpression = "a?.toString() ?: \"null\"")
this += Operation("code", listOf("Char"), customExpression = "(a as Char).code")
// TODO next operation can be dropped after serialization introduction
this += Operation("toString", listOf("Unit"), customExpression = "Unit.toString()")
})