[FIR] Don't lose flexible types during capturing from expression

This commit is contained in:
Dmitriy Novozhilov
2022-11-22 13:13:37 +02:00
committed by Space Team
parent 06e88b559a
commit eb8ce449e3
11 changed files with 69 additions and 40 deletions
@@ -0,0 +1,14 @@
// WITH_STDLIB
// WITH_REFLECT
// FULL_JDK
import java.lang.reflect.Field
@Suppress("INVISIBLE_MEMBER", "INVISIBLE_REFERENCE")
fun <@kotlin.internal.OnlyInputTypes T> assertEquals(expected: T, actual: T): T = actual
fun test(field: Field) {
<!DEBUG_INFO_EXPRESSION_TYPE("java.lang.Class<out kotlin.Any>?")!>assertEquals(
<!DEBUG_INFO_EXPRESSION_TYPE("java.lang.Class<*>..java.lang.Class<*>?!")!>field.type<!>,
<!DEBUG_INFO_EXPRESSION_TYPE("java.lang.Class<kotlin.Long>?")!>Long::class.javaPrimitiveType<!>
)<!>
}
@@ -0,0 +1,14 @@
// WITH_STDLIB
// WITH_REFLECT
// FULL_JDK
import java.lang.reflect.Field
@Suppress("INVISIBLE_MEMBER", "INVISIBLE_REFERENCE")
fun <@kotlin.internal.OnlyInputTypes T> assertEquals(expected: T, actual: T): T = actual
fun test(field: Field) {
<!DEBUG_INFO_EXPRESSION_TYPE("java.lang.Class<out kotlin.Any>?")!>assertEquals(
<!DEBUG_INFO_EXPRESSION_TYPE("(java.lang.Class<*>..java.lang.Class<*>?)")!>field.type<!>,
<!DEBUG_INFO_EXPRESSION_TYPE("java.lang.Class<kotlin.Long>?")!>Long::class.javaPrimitiveType<!>
)<!>
}
@@ -0,0 +1,5 @@
package
@kotlin.Suppress(names = {"INVISIBLE_MEMBER", "INVISIBLE_REFERENCE"}) public fun </*0*/ @kotlin.internal.OnlyInputTypes T> assertEquals(/*0*/ expected: T, /*1*/ actual: T): T
public fun test(/*0*/ field: java.lang.reflect.Field): kotlin.Unit