FIR2IR: Repeat the K1 behavior: SAM conversion with 'in' projection

It would be more consistently to prohibit the behavior from the unmuted
test (see KT-52428), but it was decided to postpone the breaking change.

Unfortunately, it didn't work to make a test where for computing
star projections we would need to substitute other type parameters
because effectively, it's not allowed to have SAM conversion when
star projections/wildcard is based on a type parameter which bounds
use other type parameters.

^KT-53552 In progress
This commit is contained in:
Denis.Zharkov
2023-02-15 11:54:17 +01:00
committed by Space Team
parent 45eefab811
commit 05ca001310
22 changed files with 158 additions and 53 deletions
@@ -3,21 +3,21 @@ fun test() {
a.someFunction(hello = local fun <anonymous>(it: @FlexibleNullability String?) {
return Unit
}
/*-> @FlexibleNullability Hello<@FlexibleNullability String?>? */)
/*-> @FlexibleNullability Hello<out @FlexibleNullability String?>? */)
a.plus(hello = local fun <anonymous>(it: @FlexibleNullability String?) {
return Unit
}
/*-> @FlexibleNullability Hello<@FlexibleNullability String?>? */) /*~> Unit */
/*-> @FlexibleNullability Hello<out @FlexibleNullability String?>? */) /*~> Unit */
a.get(hello = local fun <anonymous>(it: @FlexibleNullability String?) {
return Unit
}
/*-> @FlexibleNullability Hello<@FlexibleNullability String?>? */)
/*-> @FlexibleNullability Hello<out @FlexibleNullability String?>? */)
a = a.plus(hello = local fun <anonymous>(it: @FlexibleNullability String?) {
return Unit
}
/*-> @FlexibleNullability Hello<@FlexibleNullability String?>? */)
/*-> @FlexibleNullability Hello<out @FlexibleNullability String?>? */)
a.set(i = 0, hello = local fun <anonymous>(it: @FlexibleNullability String?) {
return Unit
}
/*-> @FlexibleNullability Hello<@FlexibleNullability String?>? */)
/*-> @FlexibleNullability Hello<out @FlexibleNullability String?>? */)
}