[FIR2IR] Generate @FlexibleMutability annotation on IR types if needed

This commit is contained in:
Dmitriy Novozhilov
2023-05-24 10:11:25 +03:00
committed by Space Team
parent a0484de1a6
commit fdc236296d
24 changed files with 132 additions and 94 deletions
@@ -13,7 +13,7 @@ FILE fqName:<root> fileName:/typeParametersInImplicitCast.kt
VALUE_PARAMETER name:it index:0 type:kotlin.collections.List<T of <root>.problematic>
BLOCK_BODY
RETURN type=kotlin.Nothing from='local final fun <anonymous> (it: kotlin.collections.List<T of <root>.problematic>): kotlin.collections.Iterable<@[FlexibleNullability] T of <root>.problematic?> declared in <root>.problematic'
TYPE_OP type=kotlin.collections.MutableList<@[FlexibleNullability] T of <root>.problematic?> origin=IMPLICIT_NOTNULL typeOperand=kotlin.collections.MutableList<@[FlexibleNullability] T of <root>.problematic?>
CALL 'public/*package*/ open fun id <T> (v: @[FlexibleNullability] kotlin.collections.MutableList<@[FlexibleNullability] T of <root>.ListId.id?>?): @[EnhancedNullability] kotlin.collections.MutableList<@[FlexibleNullability] T of <root>.ListId.id?> declared in <root>.ListId' type=@[EnhancedNullability] kotlin.collections.MutableList<@[FlexibleNullability] T of <root>.problematic?> origin=null
TYPE_OP type=@[FlexibleMutability] kotlin.collections.MutableList<@[FlexibleNullability] T of <root>.problematic?> origin=IMPLICIT_NOTNULL typeOperand=@[FlexibleMutability] kotlin.collections.MutableList<@[FlexibleNullability] T of <root>.problematic?>
CALL 'public/*package*/ open fun id <T> (v: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<@[FlexibleNullability] T of <root>.ListId.id?>?): @[EnhancedNullability] @[FlexibleMutability] kotlin.collections.MutableList<@[FlexibleNullability] T of <root>.ListId.id?> declared in <root>.ListId' type=@[EnhancedNullability] @[FlexibleMutability] kotlin.collections.MutableList<@[FlexibleNullability] T of <root>.problematic?> origin=null
<T>: @[FlexibleNullability] T of <root>.problematic?
v: GET_VAR 'it: kotlin.collections.List<T of <root>.problematic> declared in <root>.problematic.<anonymous>' type=kotlin.collections.List<T of <root>.problematic> origin=null
@@ -1,6 +1,6 @@
fun <T : Any?> problematic(lss: List<List<T>>): List<T> {
return lss.flatMap<List<T>, @FlexibleNullability T?>(transform = local fun <anonymous>(it: List<T>): Iterable<@FlexibleNullability T?> {
return id<@FlexibleNullability T?>(v = it) /*!! MutableList<@FlexibleNullability T?> */
return id<@FlexibleNullability T?>(v = it) /*!! @FlexibleMutability MutableList<@FlexibleNullability T?> */
}
)
}