Fix array accessor signatures, add array test to fix.

This commit is contained in:
Nikolay Igotti
2016-11-11 16:20:26 +03:00
parent edf3708515
commit 4b7f67d976
4 changed files with 41 additions and 5 deletions
+7
View File
@@ -206,6 +206,13 @@ task array0(type: RunKonanTest) {
source = "runtime/basic/array0.kt"
}
/*
task array1(type: RunKonanTest) {
goldValue = "42\n1-1\n69\n83\n"
source = "runtime/basic/array1.kt"
}*/
task if_else(type: UnitKonanTest) {
source = "codegen/branching/if_else.kt"
}
@@ -0,0 +1,27 @@
fun main(args : Array<String>) {
val byteArray = ByteArray(5)
byteArray[1] = 2
byteArray[3] = 4
println(byteArray[3].toString() + " " + byteArray[1].toString())
val shortArray = ShortArray(2)
shortArray[0] = -1
shortArray[1] = 1
print(shortArray[1].toString())
print(shortArray[0].toString())
println()
val intArray = IntArray(7)
intArray[1] = 9
intArray[3] = 6
print(intArray[3].toString())
print(intArray[1].toString())
println()
val longArray = LongArray(9)
longArray[8] = 8
longArray[3] = 3
print(longArray[3].toString())
print(longArray[8].toString())
println()
}
+2
View File
@@ -90,6 +90,8 @@ KString Kotlin_String_fromUtf8Array(const ArrayHeader* array) {
KString Kotlin_String_plusImpl(KString thiz, KString other) {
// TODO: support UTF-8
RuntimeAssert(thiz != nullptr, "this cannot be null");
RuntimeAssert(other != nullptr, "other cannot be null");
RuntimeAssert(thiz->type_info() == theStringTypeInfo, "Must be a string");
RuntimeAssert(other->type_info() == theStringTypeInfo, "Must be a string");
uint32_t result_length = thiz->count_ + other->count_;
+5 -5
View File
@@ -72,7 +72,7 @@ class IntArray : Cloneable {
get() = getArrayLength()
@SymbolName("Kotlin_IntArray_get")
external public operator fun get(index: Int): Char
external public operator fun get(index: Int): Int
@SymbolName("Kotlin_IntArray_set")
external public operator fun set(index: Int, value: Int): Unit
@@ -93,7 +93,7 @@ class LongArray : Cloneable {
get() = getArrayLength()
@SymbolName("Kotlin_LongArray_get")
external public operator fun get(index: Int): Char
external public operator fun get(index: Int): Long
@SymbolName("Kotlin_LongArray_set")
external public operator fun set(index: Int, value: Long): Unit
@@ -114,7 +114,7 @@ class FloatArray : Cloneable {
get() = getArrayLength()
@SymbolName("Kotlin_FloatArray_get")
external public operator fun get(index: Int): Char
external public operator fun get(index: Int): Float
@SymbolName("Kotlin_FloatArray_set")
external public operator fun set(index: Int, value: Float): Unit
@@ -135,7 +135,7 @@ class DoubleArray : Cloneable {
get() = getArrayLength()
@SymbolName("Kotlin_DoubleArray_get")
external public operator fun get(index: Int): Char
external public operator fun get(index: Int): Double
@SymbolName("Kotlin_DoubleArray_set")
external public operator fun set(index: Int, value: Double): Unit
@@ -156,7 +156,7 @@ class BooleanArray : Cloneable {
get() = getArrayLength()
@SymbolName("Kotlin_BooleanArray_get")
external public operator fun get(index: Int): Char
external public operator fun get(index: Int): Boolean
@SymbolName("Kotlin_BooleanArray_set")
external public operator fun set(index: Int, value: Boolean): Unit