[FIR] Resolve array literals in independent context

This commit is contained in:
Dmitriy Novozhilov
2021-04-15 17:12:41 +03:00
parent cc0f28b698
commit 564de2790f
10 changed files with 66 additions and 26 deletions
@@ -7,18 +7,18 @@ fun test() {
val b: Array<Int> = []
val c = [1, 2]
val d: Array<Int> = [1, 2]
val e: Array<String> = [1]
val e: Array<String> = <!INITIALIZER_TYPE_MISMATCH!>[1]<!>
val f: IntArray = [1, 2]
val g = [f]
}
fun check() {
[1, 2] <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!INAPPLICABLE_CANDIDATE!>_<!><Array<Int>>() }
[""] <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!INAPPLICABLE_CANDIDATE!>_<!><Array<String>>() }
[1, 2] checkType { _<Array<Int>>() }
[""] checkType { _<Array<String>>() }
val f: IntArray = [1]
[f] <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!INAPPLICABLE_CANDIDATE!>_<!><Array<IntArray>>() }
[f] checkType { _<Array<IntArray>>() }
[1, ""] <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!INAPPLICABLE_CANDIDATE!>_<!><Array<Any>>() }
[1, ""] checkType { <!INAPPLICABLE_CANDIDATE!>_<!><Array<Any>>() }
}
@@ -12,7 +12,7 @@ fun basicTypes() {
}
fun basicTypesWithErrors() {
val a: IntArray = [1.0]
val b: ShortArray = [1.0]
val c: CharArray = ["a"]
}
val a: IntArray = <!INITIALIZER_TYPE_MISMATCH!>[1.0]<!>
val b: ShortArray = <!INITIALIZER_TYPE_MISMATCH!>[1.0]<!>
val c: CharArray = <!INITIALIZER_TYPE_MISMATCH!>["a"]<!>
}
@@ -10,7 +10,7 @@ fun test() {
takeArray([""])
val v = [""]
[""]
[1, 2, 3].<!UNRESOLVED_REFERENCE!>size<!>
[1, 2, 3].size
}
fun baz(arg: Array<Int> = []) {
@@ -1,12 +1,12 @@
// !WITH_NEW_INFERENCE
fun test(): Array<Int> {
[1, 2]
[1, 2]<!NO_GET_METHOD!>[0]<!>
[1, 2].<!UNRESOLVED_REFERENCE!>get<!>(0)
[1, 2][0]
[1, 2].get(0)
foo([""])
val p = [1, 2] + [3, 4]
val p = [1, 2] <!UNRESOLVED_REFERENCE!>+<!> [3, 4]
return [1, 2]
}