[JS IR BE] Arrays, varargs

This commit is contained in:
Anton Bannykh
2018-09-12 14:31:22 +03:00
parent e24f68c357
commit 2e709a81fa
470 changed files with 761 additions and 585 deletions
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
// WITH_RUNTIME
import kotlin.test.assertEquals
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
operator fun Array<String>.get(index1: Int, index2: Int) = this[index1 + index2]
operator fun Array<String>.set(index1: Int, index2: Int, elem: String) {
this[index1 + index2] = elem
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
operator fun Array<String>.get(index1: Int, index2: Int) = this[index1 + index2]
operator fun Array<String>.set(index1: Int, index2: Int, elem: String) {
this[index1 + index2] = elem
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
//test [], get and iterator calls
fun test(createIntNotLong: Boolean): String {
val a = if (createIntNotLong) IntArray(5) else LongArray(5)
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
fun box(): String {
val s = IntArray(1)
s[0] = 5
@@ -1,5 +1,5 @@
// !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR, JS_IR
// IGNORE_BACKEND: JVM_IR
inline class Z(val data: Int)
@@ -1,6 +1,6 @@
// !LANGUAGE: +InlineClasses
// WITH_UNSIGNED
// IGNORE_BACKEND: JVM_IR, JS_IR
// IGNORE_BACKEND: JVM_IR
inline class Data(val data: Array<UInt>)
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
operator fun ArrayList<String>.get(index1: Int, index2: Int) = this[index1 + index2]
operator fun ArrayList<String>.set(index1: Int, index2: Int, elem: String) {
this[index1 + index2] = elem
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
operator fun ArrayList<String>.get(index1: Int, index2: Int) = this[index1 + index2]
operator fun ArrayList<String>.set(index1: Int, index2: Int, elem: String) {
this[index1 + index2] = elem
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
fun box(): String {
for (x in BooleanArray(5)) {
if (x != false) return "Fail $x"
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
fun box(): String {
for (x in ByteArray(5)) {
if (x != 0.toByte()) return "Fail $x"
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
fun box(): String {
for (x in CharArray(5)) {
if (x != 0.toChar()) return "Fail $x"
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
fun box(): String {
for (x in DoubleArray(5)) {
if (x != 0.toDouble()) return "Fail $x"
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
fun box(): String {
for (x in FloatArray(5)) {
if (x != 0.toFloat()) return "Fail $x"
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
fun box(): String {
for (x in IntArray(5)) {
if (x != 0) return "Fail $x"
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
fun box(): String {
for (x in LongArray(5)) {
if (x != 0.toLong()) return "Fail $x"
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
fun box(): String {
for (x in ShortArray(5)) {
if (x != 0.toShort()) return "Fail $x"
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
// WITH_RUNTIME
abstract class Table<T>(
val content: Array<Array<T>>
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
fun test(y: Array<in Array<String>>) {
y[0] = kotlin.arrayOf("OK")
}
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
fun box(): String {
val x : Array<Array<*>> = arrayOf(arrayOf(1))
val y : Array<in Array<String>> = x
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
// WITH_RUNTIME
fun box(): String {
-1
View File
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
// WITH_RUNTIME
fun box(): String {
-1
View File
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
// WITH_RUNTIME
fun box(): String {
-1
View File
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
fun box(): String {
val x = Array<Int>(5, { it } ).iterator()
var i = 0
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
fun box(): String {
val a = BooleanArray(5)
val x = a.iterator()
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
fun box(): String {
val a = ByteArray(5)
val x = a.iterator()
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
fun box(): String {
val a = ByteArray(5)
val x = a.iterator()
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
fun box(): String {
val a = CharArray(5)
val x = a.iterator()
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
fun box(): String {
val a = DoubleArray(5)
val x = a.iterator()
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
fun box(): String {
val a = FloatArray(5)
val x = a.iterator()
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
fun box(): String {
val a = IntArray(5)
val x = a.iterator()
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
fun box(): String {
val a = LongArray(5)
val x = a.iterator()
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
fun box(): String {
val a = LongArray(5)
val x = a.iterator()
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
fun box(): String {
val a = ShortArray(5)
val x = a.iterator()
-1
View File
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
var result = 0
fun <T> Iterator<T>.foreach(action: (T) -> Unit) {
-1
View File
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
//KT-2997 Automatically cast error (Array)
fun foo(a: Any): Int {
-1
View File
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
fun box () : String {
val s = ArrayList<String>()
s.add("foo")
-1
View File
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
fun fill(dest : Array<in String>, v : String) {
dest[0] = v
}
-1
View File
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
operator fun String.get(vararg value: Any) : String {
return if (value[0] == 44 && value[1] == "example") "OK" else "fail"
}
-1
View File
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
fun box(): String {
val array = intArrayOf(11, 12, 13)
val p = array.get(0)
-1
View File
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
package array_test
fun box() : String {
-1
View File
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
// WITH_RUNTIME
fun box() : String {
-1
View File
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
fun test(b: Boolean): String {
val a = if (b) IntArray(5) else LongArray(5)
if (a is IntArray) {
-1
View File
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
val <T> Array<T>.length : Int get() = this.size
fun box() = if(arrayOfNulls<Int>(10).length == 10) "OK" else "fail"
-1
View File
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
fun box() : String {
val data = Array<Array<Boolean>>(3) { Array<Boolean>(4, {false}) }
for(d in data) {
-1
View File
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
operator fun IntArray.set(index: Long, elem: Int) { this[index.toInt()] = elem }
operator fun IntArray.get(index: Long) = this[index.toInt()]
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
// WITH_RUNTIME
import kotlin.test.assertEquals
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
class C(val i: Int) {
operator fun component1() = i + 1
operator fun component2() = i + 2
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
class C(val i: Int) {
}
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
class C(val i: Int) {
}
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
class C(val i: Int) {
}
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
class C(val i: Int) {
operator fun component1() = i + 1
operator fun component2() = i + 2
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
operator fun Int.component1() = this + 1
operator fun Int.component2() = this + 2
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
operator fun Int.component1() = this + 1
operator fun Int.component2() = this + 2
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
class M {
operator fun Int.component1() = this + 1
operator fun Int.component2() = this + 2
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
class M {
operator fun Int.component1() = this + 1
operator fun Int.component2() = this + 2
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
fun box(): String {
val array = arrayOf(doubleArrayOf(-1.0))
for (node in array) {
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
fun box(): String {
val a = Array(2) { DoubleArray(3) }
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
fun box(): String {
val transform = transform(Array(1) { BooleanArray(1) })
if (!transform[0][0]) return "OK"
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
operator fun Long.component1() = this + 1
operator fun Long.component2() = this + 2
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
operator fun Long.component1() = this + 1
operator fun Long.component2() = this + 2
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
class M {
operator fun Long.component1() = this + 1
operator fun Long.component2() = this + 2
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
class M {
operator fun Long.component1() = this + 1
operator fun Long.component2() = this + 2
@@ -1,5 +1,4 @@
// IGNORE_BACKEND: JVM_IR
// IGNORE_BACKEND: JS_IR
typealias ArrayS = Array<String>
fun testArray() {
-1
View File
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
class A() {
class B(val i: Int) {
}
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
// WITH_RUNTIME
import kotlin.test.*
-1
View File
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
interface ISized {
val size : Int
}
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
// WITH_RUNTIME
import kotlin.test.assertEquals
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
// WITH_RUNTIME
import kotlin.test.assertEquals
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
// WITH_RUNTIME
inline fun <T> put(
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
// WITH_RUNTIME
import kotlin.test.assertEquals
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
// WITH_RUNTIME
abstract class A {
-1
View File
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
// IGNORE_BACKEND: NATIVE
open class BaseStringList: ArrayList<String>() {
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
// WITH_RUNTIME
interface A {
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
// KT-6042 java.lang.UnsupportedOperationException with ArrayList
// IGNORE_BACKEND: NATIVE
class A : ArrayList<String>()
@@ -1,5 +1,4 @@
// !LANGUAGE: +NewInference
// IGNORE_BACKEND: JS_IR
// WITH_RUNTIME
class Foo
@@ -1,5 +1,4 @@
// IGNORE_BACKEND: JVM_IR
// IGNORE_BACKEND: JS_IR
// LANGUAGE_VERSION: 1.2
var result = ""
@@ -1,5 +1,4 @@
// IGNORE_BACKEND: JVM_IR
// IGNORE_BACKEND: JS_IR
val Array<String>.firstElement: String get() = get(0)
fun box(): String {
@@ -1,5 +1,4 @@
// KT-25514 Support usage of function reference with vararg where function of array is expected in new inference
// IGNORE_BACKEND: JS_IR
fun foo(x: Int, vararg y: String): String = y[0]
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
interface A {
fun foo(): Any?
fun bar(): String
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
interface A {
fun foo(): Any?
}
-1
View File
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
fun <T> Array<T>.getLength(): Int {
return this.size
}
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
class Box<T>(val value: T)
fun <T> run(vararg z: T): Box<T> {
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
fun box(): String {
val x: CharSequence = ""
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
// WITH_RUNTIME
class World() {
public val items: ArrayList<Item> = ArrayList<Item>()
-1
View File
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
public class StockMarketTableModel() {
public fun getColumnCount() : Int {
-1
View File
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
public inline fun Int.times(body : () -> Unit) {
var count = this;
while (count > 0) {
-1
View File
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
public interface LoggerAware {
public val logger: StringBuilder
}
-1
View File
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
fun launch(f : () -> Unit) {
f()
}
-1
View File
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
class MyNumber(val i: Int) {
operator fun inc(): MyNumber = MyNumber(i+1)
}
-1
View File
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
class mInt(val i : Int) {
override fun toString() : String = "mint: $i"
operator fun plus(i : Int) = mInt(this.i + i)
-1
View File
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
// WITH_RUNTIME
fun testFun1(str: String): String {
-1
View File
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
// WITH_RUNTIME
fun box() : String {
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
class ArrayWrapper<T>() {
val contents = ArrayList<T>()
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
class ArrayWrapper<T>() {
val contents = ArrayList<T>()
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
class ArrayWrapper<T>() {
val contents = ArrayList<T>()
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
class ArrayWrapper<T>() {
val contents = ArrayList<T>()
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JS_IR
// WITH_RUNTIME
class ArrayWrapper<T>() {
val contents = ArrayList<T>()
@@ -1,5 +1,4 @@
// IGNORE_BACKEND: JVM_IR
// IGNORE_BACKEND: JS_IR
open class Base(val callback: () -> String)
class Outer {
@@ -1,5 +1,4 @@
// IGNORE_BACKEND: JVM_IR
// IGNORE_BACKEND: JS_IR
open class Base(val callback: () -> String)
class Outer {

Some files were not shown because too many files have changed in this diff Show More