IC Mangling: Correctly mangle functions with generic return type

if the type's parent is inline class.
 #KT-43050 Fixed
 #KT-26130 Fixed
 #KT-32384 Fixed
This commit is contained in:
Ilmir Usmanov
2020-12-23 23:23:21 +01:00
parent f8cca288ab
commit 9c67d8f89e
7 changed files with 55 additions and 7 deletions
@@ -35,7 +35,7 @@ fun requiresFunctionNameManglingForParameterTypes(descriptor: CallableMemberDesc
fun requiresFunctionNameManglingForReturnType(descriptor: CallableMemberDescriptor): Boolean {
if (descriptor.containingDeclaration !is ClassDescriptor) return false
val returnType = descriptor.returnType ?: return false
return returnType.isInlineClassType()
return returnType.isInlineClassType() || returnType.isTypeParameterWithUpperBoundThatRequiresMangling()
}
fun DeclarationDescriptor.isInlineClassThatRequiresMangling(): Boolean =