[FIR] Introduce ConeDynamicType

This commit is contained in:
Nikolay Lunyak
2021-12-17 18:09:54 +03:00
committed by teamcity
parent e763197c3e
commit be9e97d044
13 changed files with 66 additions and 63 deletions
@@ -42,7 +42,7 @@ fun test(i: Inv<Nothing>, iUnit: Inv<Unit>) {
}
launch {
@Suppress("UNSUPPORTED")
run<dynamic> <!ARGUMENT_TYPE_MISMATCH!>{ "" }<!>
run<dynamic> { "" }
}
if (iUnit is String) {
@@ -221,18 +221,18 @@ fun case_13() {
val x3 = null as MutableList<Int>
val x4 = select(null as List<Int>, null)
val result_1 = select(x1, <!ARGUMENT_TYPE_MISMATCH!>x2<!>, x3, x4)
val result_2 = select(<!ARGUMENT_TYPE_MISMATCH!>x2<!>, x1)
val result_3 = select(<!ARGUMENT_TYPE_MISMATCH!>x2<!>, x1, x3)
val result_4 = select(x3, <!ARGUMENT_TYPE_MISMATCH!>x2<!>)
val result_5 = select(x4, <!ARGUMENT_TYPE_MISMATCH!>x2<!>)
val result_6 = select(x4, x3, <!ARGUMENT_TYPE_MISMATCH!>x2<!>)
val result_7 = select(A(x1), A(<!ARGUMENT_TYPE_MISMATCH!>x2<!>), A(x3), A(x4))
val result_8 = select(A(<!ARGUMENT_TYPE_MISMATCH!>x2<!>), A(x1))
val result_9 = select(A(<!ARGUMENT_TYPE_MISMATCH!>x2<!>), A(x1), A(x3))
val result_10 = select(A(x3), A(<!ARGUMENT_TYPE_MISMATCH!>x2<!>))
val result_11 = select(A(x4), A(<!ARGUMENT_TYPE_MISMATCH!>x2<!>))
val result_12 = select(A(x4), A(x3), A(<!ARGUMENT_TYPE_MISMATCH!>x2<!>))
val result_1 = select(x1, x2, x3, x4)
val result_2 = select(x2, x1)
val result_3 = select(x2, x1, x3)
val result_4 = select(x3, x2)
val result_5 = select(x4, x2)
val result_6 = select(x4, x3, x2)
val result_7 = select(A(x1), A(x2), A(x3), A(x4))
val result_8 = select(A(x2), A(x1))
val result_9 = select(A(x2), A(x1), A(x3))
val result_10 = select(A(x3), A(x2))
val result_11 = select(A(x4), A(x2))
val result_12 = select(A(x4), A(x3), A(x2))
result_1
result_2
@@ -221,18 +221,18 @@ fun case_13() {
val x3 = null as MutableList<Int>
val x4 = select(null as List<Int>, null)
val result_1 = select(x1, <!ARGUMENT_TYPE_MISMATCH!>x2<!>, x3, x4)
val result_2 = select(<!ARGUMENT_TYPE_MISMATCH!>x2<!>, x1)
val result_3 = select(<!ARGUMENT_TYPE_MISMATCH!>x2<!>, x1, x3)
val result_4 = select(x3, <!ARGUMENT_TYPE_MISMATCH!>x2<!>)
val result_5 = select(x4, <!ARGUMENT_TYPE_MISMATCH!>x2<!>)
val result_6 = select(x4, x3, <!ARGUMENT_TYPE_MISMATCH!>x2<!>)
val result_7 = select(A(x1), A(<!ARGUMENT_TYPE_MISMATCH!>x2<!>), A(x3), A(x4))
val result_8 = select(A(<!ARGUMENT_TYPE_MISMATCH!>x2<!>), A(x1))
val result_9 = select(A(<!ARGUMENT_TYPE_MISMATCH!>x2<!>), A(x1), A(x3))
val result_10 = select(A(x3), A(<!ARGUMENT_TYPE_MISMATCH!>x2<!>))
val result_11 = select(A(x4), A(<!ARGUMENT_TYPE_MISMATCH!>x2<!>))
val result_12 = select(A(x4), A(x3), A(<!ARGUMENT_TYPE_MISMATCH!>x2<!>))
val result_1 = select(x1, x2, x3, x4)
val result_2 = select(x2, x1)
val result_3 = select(x2, x1, x3)
val result_4 = select(x3, x2)
val result_5 = select(x4, x2)
val result_6 = select(x4, x3, x2)
val result_7 = select(A(x1), A(x2), A(x3), A(x4))
val result_8 = select(A(x2), A(x1))
val result_9 = select(A(x2), A(x1), A(x3))
val result_10 = select(A(x3), A(x2))
val result_11 = select(A(x4), A(x2))
val result_12 = select(A(x4), A(x3), A(x2))
result_1
result_2
@@ -1,28 +0,0 @@
// !DIAGNOSTICS: -UNSUPPORTED
// MODULE: m1-common
// FILE: common.kt
expect class Foo {
constructor(p: Any)
fun f1(s: String): Int
fun f2(s: List<String>?): MutableMap<Boolean?, Foo>
fun <T : Set<Number>> f3(t: T): T?
}
// MODULE: m2-js()()(m1-common)
// FILE: js.kt
// TODO: do not suppress UNSUPPORTED once JS files in multi-platform tests are analyzed with JS analyzer facade
actual class <!NO_ACTUAL_CLASS_MEMBER_FOR_EXPECTED_CLASS!>Foo<!> {
<!ACTUAL_WITHOUT_EXPECT!>actual constructor(p: dynamic) {}<!>
<!ACTUAL_WITHOUT_EXPECT!>actual fun f1(s: dynamic): dynamic = null!!<!>
<!ACTUAL_WITHOUT_EXPECT!>actual fun f2(s: dynamic): MutableMap<Boolean?, Foo> = null!!<!>
<!ACTUAL_WITHOUT_EXPECT!>actual fun <T : Set<Number>> f3(t: T): dynamic = null!!<!>
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// !DIAGNOSTICS: -UNSUPPORTED
// MODULE: m1-common
// FILE: common.kt