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:
committed by
Space Team
parent
45eefab811
commit
05ca001310
@@ -61,6 +61,8 @@ class SamTypeApproximator(builtIns: KotlinBuiltIns, languageVersionSettings: Lan
|
||||
return approximatedOriginalTypeToUse.removeExternalProjections(carefulApproximationOfContravariantProjection)
|
||||
}
|
||||
|
||||
// When changing this, please consider also changing the mirroring K2 function at
|
||||
// org.jetbrains.kotlin.fir.backend.generators.AdapterGenerator.removeExternalProjections
|
||||
private fun KotlinType.removeExternalProjections(carefulApproximationOfContravariantProjection: Boolean): KotlinType? {
|
||||
val newArguments = arguments.mapIndexed { i, argument ->
|
||||
if (carefulApproximationOfContravariantProjection && argument.projectionKind == Variance.IN_VARIANCE) {
|
||||
|
||||
Reference in New Issue
Block a user