diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirBlackBoxCodegenTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirBlackBoxCodegenTestGenerated.java index 4d6c1a3e574..9242cd0a596 100644 --- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirBlackBoxCodegenTestGenerated.java +++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirBlackBoxCodegenTestGenerated.java @@ -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 { diff --git a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/types/InferenceUtils.kt b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/types/InferenceUtils.kt index 10fb93b6522..e7e43162466 100644 --- a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/types/InferenceUtils.kt +++ b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/types/InferenceUtils.kt @@ -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), diff --git a/compiler/testData/codegen/box/typealias/incorrectTypeOfTypealiasForSuspendFTMM.kt b/compiler/testData/codegen/box/typealias/incorrectTypeOfTypealiasForSuspendFTMM.kt new file mode 100644 index 00000000000..bc09d4bba75 --- /dev/null +++ b/compiler/testData/codegen/box/typealias/incorrectTypeOfTypealiasForSuspendFTMM.kt @@ -0,0 +1,13 @@ +// WITH_STDLIB +// ISSUE: KT-50997 (multi-module variant) +// MODULE: lib +// FILE: lib.kt +typealias MySuspendFunction = suspend (String, String) -> Unit + +fun foo(function: MySuspendFunction) {} + +// MODULE: main(lib) +// FILE: main.kt +fun bar() = foo { a, b -> a + b } + +fun box() = "OK" diff --git a/compiler/testData/codegen/box/typealias/incorrectTypeOfTypealiasForSuspendFunctionalType.kt b/compiler/testData/codegen/box/typealias/incorrectTypeOfTypealiasForSuspendFunctionalType.kt index af0588c330c..efc713463d5 100644 --- a/compiler/testData/codegen/box/typealias/incorrectTypeOfTypealiasForSuspendFunctionalType.kt +++ b/compiler/testData/codegen/box/typealias/incorrectTypeOfTypealiasForSuspendFunctionalType.kt @@ -2,4 +2,4 @@ typealias MySuspendFunction = suspend (String) -> Unit fun foo(function: MySuspendFunction) {} -fun box() = "OK" \ No newline at end of file +fun box() = "OK" diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/BlackBoxCodegenTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/BlackBoxCodegenTestGenerated.java index 56affdd8346..4cc22166322 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/BlackBoxCodegenTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/BlackBoxCodegenTestGenerated.java @@ -47897,6 +47897,12 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest { 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 { diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenTestGenerated.java index 44d68c37f63..7258343eed7 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenTestGenerated.java @@ -49409,6 +49409,12 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes 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 { diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java index 8bb7265c47a..afc73b94b16 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java @@ -38869,6 +38869,11 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes runTest("compiler/testData/codegen/box/typealias/genericTypeAliasConstructor2.kt"); } + @TestMetadata("incorrectTypeOfTypealiasForSuspendFTMM.kt") + public void testIncorrectTypeOfTypealiasForSuspendFTMM() throws Exception { + runTest("compiler/testData/codegen/box/typealias/incorrectTypeOfTypealiasForSuspendFTMM.kt"); + } + @TestMetadata("incorrectTypeOfTypealiasForSuspendFunctionalType.kt") public void testIncorrectTypeOfTypealiasForSuspendFunctionalType() throws Exception { runTest("compiler/testData/codegen/box/typealias/incorrectTypeOfTypealiasForSuspendFunctionalType.kt"); diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/JsCodegenBoxTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/JsCodegenBoxTestGenerated.java index 805e7f7a363..521246acdcf 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/JsCodegenBoxTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/JsCodegenBoxTestGenerated.java @@ -35527,6 +35527,12 @@ public class JsCodegenBoxTestGenerated extends AbstractJsCodegenBoxTest { 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 { diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsCodegenBoxTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsCodegenBoxTestGenerated.java index ce849d50d40..a76a0d1728b 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsCodegenBoxTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsCodegenBoxTestGenerated.java @@ -35701,6 +35701,12 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest { 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 { diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/testOld/wasm/semantics/IrCodegenBoxWasmTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/testOld/wasm/semantics/IrCodegenBoxWasmTestGenerated.java index 7fa1f29be76..1d56e37be68 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/testOld/wasm/semantics/IrCodegenBoxWasmTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/testOld/wasm/semantics/IrCodegenBoxWasmTestGenerated.java @@ -31989,6 +31989,11 @@ public class IrCodegenBoxWasmTestGenerated extends AbstractIrCodegenBoxWasmTest runTest("compiler/testData/codegen/box/typealias/genericTypeAliasConstructor2.kt"); } + @TestMetadata("incorrectTypeOfTypealiasForSuspendFTMM.kt") + public void testIncorrectTypeOfTypealiasForSuspendFTMM() throws Exception { + runTest("compiler/testData/codegen/box/typealias/incorrectTypeOfTypealiasForSuspendFTMM.kt"); + } + @TestMetadata("incorrectTypeOfTypealiasForSuspendFunctionalType.kt") public void testIncorrectTypeOfTypealiasForSuspendFunctionalType() throws Exception { runTest("compiler/testData/codegen/box/typealias/incorrectTypeOfTypealiasForSuspendFunctionalType.kt"); diff --git a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/blackboxtest/NativeCodegenBoxTestGenerated.java b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/blackboxtest/NativeCodegenBoxTestGenerated.java index ce2e5d85d1d..c1c1b2c85e0 100644 --- a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/blackboxtest/NativeCodegenBoxTestGenerated.java +++ b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/blackboxtest/NativeCodegenBoxTestGenerated.java @@ -38822,6 +38822,12 @@ public class NativeCodegenBoxTestGenerated extends AbstractNativeCodegenBoxTest 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 {