From ae5e8383054b6a19b010d552eec2273aa31cec76 Mon Sep 17 00:00:00 2001 From: Nikolay Igotti Date: Mon, 14 Nov 2016 13:25:50 +0300 Subject: [PATCH] Add overrides by name. (#54) --- backend.native/tests/build.gradle | 5 +- backend.native/tests/runtime/basic/hello3.kt | 6 +- runtime/src/main/kotlin/kotlin/io/Console.kt | 72 +++++++++++++++++++- 3 files changed, 77 insertions(+), 6 deletions(-) diff --git a/backend.native/tests/build.gradle b/backend.native/tests/build.gradle index edb12e10789..eaba3ff708f 100644 --- a/backend.native/tests/build.gradle +++ b/backend.native/tests/build.gradle @@ -188,11 +188,10 @@ task hello2(type: RunKonanTest) { source = "runtime/basic/hello2.kt" } -/* TODO: enable, once can call toString() on Int. task hello3(type: RunKonanTest) { - goldValue = "239" + goldValue = "239\ntrue\n3.14159\nA\n" source = "runtime/basic/hello3.kt" -} */ +} task tostring0(type: RunKonanTest) { goldValue = "127\n255\n239\nA\n1122334455\n112233445566778899\n1E+27\n1E-300\ntrue\nfalse\n" diff --git a/backend.native/tests/runtime/basic/hello3.kt b/backend.native/tests/runtime/basic/hello3.kt index 7eca8690cd0..579dfbe0625 100644 --- a/backend.native/tests/runtime/basic/hello3.kt +++ b/backend.native/tests/runtime/basic/hello3.kt @@ -1,3 +1,7 @@ fun main(args : Array) { - print(239) + println(239) + // TODO: enable, once override by name is implemented. + println(true) + println(3.14159) + println('A') } \ No newline at end of file diff --git a/runtime/src/main/kotlin/kotlin/io/Console.kt b/runtime/src/main/kotlin/kotlin/io/Console.kt index 7114e90cab6..2e9611a14d8 100644 --- a/runtime/src/main/kotlin/kotlin/io/Console.kt +++ b/runtime/src/main/kotlin/kotlin/io/Console.kt @@ -3,14 +3,82 @@ package kotlin.io @kotlin.SymbolName("Kotlin_io_Console_print") external public fun print(message: String) -/* -public fun print(message: Int) { +/* TODO: use something like that. +public fun print(message: T) { print(message.toString()) } */ +public fun print(message: Byte) { + print(message.toString()) +} + +public fun print(message: Short) { + print(message.toString()) +} + +public fun print(message: Char) { + print(message.toString()) +} + +public fun print(message: Int) { + print(message.toString()) +} + +public fun print(message: Long) { + print(message.toString()) +} + +public fun print(message: Float) { + print(message.toString()) +} + +public fun print(message: Double) { + print(message.toString()) +} + +public fun print(message: Boolean) { + print(message.toString()) +} @kotlin.SymbolName("Kotlin_io_Console_println") external public fun println(message: String) +// TODO: enable, once override by name is implemented. +public fun println(message: Byte) { + println(message.toString()) +} + +public fun println(message: Short) { + println(message.toString()) +} + +public fun println(message: Char) { + println(message.toString()) +} + +public fun println(message: Int) { + println(message.toString()) +} + +public fun println(message: Long) { + println(message.toString()) +} + +public fun println(message: Float) { + println(message.toString()) +} + +public fun println(message: Double) { + println(message.toString()) +} + +public fun println(message: Boolean) { + println(message.toString()) +} +/* TODO: use something like that. +public fun println(message: T) { + print(message.toString()) +} */ + @kotlin.SymbolName("Kotlin_io_Console_println0") external public fun println()