FIR: fix incorrect handling of suspend function typealiases again

The previous attempt stopped this code from throwing an exception during
serialization, but the arity is still wrong so an exception is now throw
when reading the serialized type.

^KT-50997 Fixed
This commit is contained in:
pyos
2022-08-23 14:44:43 +02:00
committed by Mikhail Glukhikh
parent 3a60e2cde5
commit acce055fc4
11 changed files with 61 additions and 2 deletions
@@ -49409,6 +49409,12 @@ public class FirBlackBoxCodegenTestGenerated extends AbstractFirBlackBoxCodegenT
runTest("compiler/testData/codegen/box/typealias/genericTypeAliasConstructor2.kt");
}
@Test
@TestMetadata("incorrectTypeOfTypealiasForSuspendFTMM.kt")
public void testIncorrectTypeOfTypealiasForSuspendFTMM() throws Exception {
runTest("compiler/testData/codegen/box/typealias/incorrectTypeOfTypealiasForSuspendFTMM.kt");
}
@Test
@TestMetadata("incorrectTypeOfTypealiasForSuspendFunctionalType.kt")
public void testIncorrectTypeOfTypealiasForSuspendFunctionalType() throws Exception {
@@ -112,9 +112,9 @@ fun ConeKotlinType.suspendFunctionTypeToFunctionTypeWithContinuation(session: Fi
val kind =
if (isKFunctionType(session)) FunctionClassKind.KFunction
else FunctionClassKind.Function
val functionalTypeId = ClassId(kind.packageFqName, kind.numberedClassName(typeArguments.size))
val fullyExpandedType = type.fullyExpandedType(session)
val typeArguments = fullyExpandedType.typeArguments
val functionalTypeId = ClassId(kind.packageFqName, kind.numberedClassName(typeArguments.size))
val lastTypeArgument = typeArguments.last()
return ConeClassLikeTypeImpl(
ConeClassLikeLookupTagImpl(functionalTypeId),