[FIR] Insert SAM conversion expressions during completion

#KT-62847 Fixed
This commit is contained in:
Kirill Rakhman
2023-11-15 12:24:31 +01:00
committed by Space Team
parent 0b28e770b2
commit dd1d36816b
68 changed files with 611 additions and 268 deletions
@@ -0,0 +1,42 @@
fun test3(f1: Function1<String, String>, f2: Function1<Int, String>): D<@FlexibleNullability Int?, @FlexibleNullability String?> {
return C<@FlexibleNullability String?>(jxx = f1 /*-> J<@FlexibleNullability String?, @FlexibleNullability String?> */).D<@FlexibleNullability Int?>(jxy = f2 /*-> J<@FlexibleNullability String?, @FlexibleNullability Int?> */)
}
class Outer<T1 : Any?> {
constructor(j11: J<T1, T1>) /* primary */ {
super/*Any*/()
/* <init>() */
}
val j11: J<T1, T1>
field = j11
get
inner class Inner<T2 : Any?> {
constructor(j12: J<T1, T2>) /* primary */ {
super/*Any*/()
/* <init>() */
}
val j12: J<T1, T2>
field = j12
get
}
}
fun test4(f: Function1<String, String>, g: Function1<Any, String>): Inner<@FlexibleNullability Any?, @FlexibleNullability String?> {
return Outer<@FlexibleNullability String?>(j11 = f /*-> J<@FlexibleNullability String?, @FlexibleNullability String?> */).Inner<@FlexibleNullability Any?>(j12 = g /*-> J<@FlexibleNullability String?, @FlexibleNullability Any?> */)
}
fun testGenericJavaCtor1(f: Function1<String, Int>): G<@FlexibleNullability String?> {
return G<@FlexibleNullability String?, @FlexibleNullability Int?>(x = f /*-> J<@FlexibleNullability Int?, @FlexibleNullability String?> */)
}
fun testGenericJavaCtor2(x: Any) {
x as Function1<String, Int> /*~> Unit */
G<@FlexibleNullability String?, @FlexibleNullability Int?>(x = x /*as Function1<String, Int> */ /*-> J<@FlexibleNullability Int?, @FlexibleNullability String?> */) /*~> Unit */
}