[NI] Record DFI for callable reference arguments

#KT-31941 Fixed
This commit is contained in:
Mikhail Zarechenskiy
2019-06-17 16:40:50 +03:00
parent 1f70284b18
commit 8fe632f52b
9 changed files with 119 additions and 14 deletions
@@ -20,8 +20,8 @@ fun case_1(x: Any?) {
if (x is String) {
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any & kotlin.Any? & kotlin.String")!>x<!>
val y = if (true) Class::fun_1 else Class::fun_1
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any?")!>x<!>
val z: String = <!TYPE_MISMATCH!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any & kotlin.Any? & kotlin.String")!>x<!>
val z: String = <!DEBUG_INFO_SMARTCAST!>x<!>
}
}
@@ -38,8 +38,8 @@ fun case_2(x: Any?, b: Boolean?) {
false -> Class::fun_2
null -> Class::fun_3
}
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any?")!>x<!>
val z: Any = <!TYPE_MISMATCH!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any & kotlin.Any?")!>x<!>
val z: Any = <!DEBUG_INFO_SMARTCAST!>x<!>
}
/*
@@ -53,8 +53,8 @@ fun case_3(x: Any?, b: Boolean?) {
val y = when (b) {
else -> Class::fun_1
}
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any?")!>x<!>
val z: Int = <!TYPE_MISMATCH!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any & kotlin.Any? & kotlin.Int")!>x<!>
val z: Int = <!DEBUG_INFO_SMARTCAST!>x<!>
}
// TESTCASE NUMBER: 4
@@ -77,8 +77,8 @@ fun case_5(x: Any?, b: Class) {
x as Int
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any & kotlin.Any? & kotlin.Int")!>x<!>
val y = if (true) b::fun_1 else b::fun_1
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any?")!>x<!>
val z: Int = <!TYPE_MISMATCH!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any & kotlin.Any? & kotlin.Int")!>x<!>
val z: Int = <!DEBUG_INFO_SMARTCAST!>x<!>
}
/*
@@ -91,9 +91,9 @@ fun case_6(x: Any?, b: Class) {
val z1 = x
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any & kotlin.Any? & kotlin.Int")!>x<!>
val y = if (true) b::fun_1 else b::fun_1
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any?")!>z1<!>
val z2: Int = <!TYPE_MISMATCH!>z1<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any & kotlin.Any? & kotlin.Int")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any & kotlin.Any? & kotlin.Int")!>z1<!>
val z2: Int = <!DEBUG_INFO_SMARTCAST!>z1<!>
}
/*
@@ -106,8 +106,8 @@ fun case_7(x: Any?) {
if (x is String) {
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any & kotlin.Any? & kotlin.String")!>x<!>
val y = if (true) ::case_7_1 else ::case_7_1
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any?")!>x<!>
val z: String = <!TYPE_MISMATCH!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any & kotlin.Any? & kotlin.String")!>x<!>
val z: String = <!DEBUG_INFO_SMARTCAST!>x<!>
}
}