IR: fix thisReceiver parameter type for function classes

Incorrect builder was used at line 269, which led to non-sensible type
in `IrClass.thisReceiver` for function types, such as
`SuspendFunction1<SuspendFunction1, SuspendFunction1>` in the linked
issue.

Avoid creating types manually completely to simplify this code and fix
the bug.

 #KT-49168 Fixed
This commit is contained in:
Alexander Udalov
2021-11-09 22:08:48 +01:00
parent 5b9268a108
commit 27cfcb9b3d
12 changed files with 86 additions and 23 deletions
@@ -6752,6 +6752,11 @@ public class IrJsCodegenBoxES6TestGenerated extends AbstractIrJsCodegenBoxES6Tes
runTest("compiler/testData/codegen/box/coroutines/kt46813.kt");
}
@TestMetadata("kt49168.kt")
public void testKt49168() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/kt49168.kt");
}
@TestMetadata("lastExpressionIsLoop.kt")
public void testLastExpressionIsLoop() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/lastExpressionIsLoop.kt");
@@ -5981,6 +5981,11 @@ public class IrCodegenBoxWasmTestGenerated extends AbstractIrCodegenBoxWasmTest
runTest("compiler/testData/codegen/box/coroutines/kt46813.kt");
}
@TestMetadata("kt49168.kt")
public void testKt49168() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/kt49168.kt");
}
@TestMetadata("lastExpressionIsLoop.kt")
public void testLastExpressionIsLoop() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/lastExpressionIsLoop.kt");
@@ -6998,6 +6998,12 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest {
runTest("compiler/testData/codegen/box/coroutines/kt46813.kt");
}
@Test
@TestMetadata("kt49168.kt")
public void testKt49168() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/kt49168.kt");
}
@Test
@TestMetadata("lastExpressionIsLoop.kt")
public void testLastExpressionIsLoop() throws Exception {
@@ -6956,6 +6956,12 @@ public class JsCodegenBoxTestGenerated extends AbstractJsCodegenBoxTest {
runTest("compiler/testData/codegen/box/coroutines/kt46813.kt");
}
@Test
@TestMetadata("kt49168.kt")
public void testKt49168() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/kt49168.kt");
}
@Test
@TestMetadata("lastExpressionIsLoop.kt")
public void testLastExpressionIsLoop() throws Exception {