[FIR2IR] Consolidate type approximation

This commit gets rid of the redundant typeApproximatorConfiguration
in Fir2IrTypeConverter and uses the type approximator for captured
types instead of the manual approximation used before.

This fixes the nullability of approximated captured types, which fixes
a runtime error in WASM.

This also brings K2 IR closer to K1 IR in one test.

#KT-64261 Fixed
This commit is contained in:
Kirill Rakhman
2023-12-21 13:16:33 +01:00
committed by Space Team
parent 52a1ffb312
commit 49ae1b8d01
26 changed files with 281 additions and 22 deletions
@@ -14737,6 +14737,12 @@ public class FirJsCodegenBoxTestGenerated extends AbstractFirJsCodegenBoxTest {
runTest("compiler/testData/codegen/box/fir/smartCastToInvisibleClassMember.kt");
}
@Test
@TestMetadata("starProjectionLambdaNullReturn.kt")
public void testStarProjectionLambdaNullReturn() throws Exception {
runTest("compiler/testData/codegen/box/fir/starProjectionLambdaNullReturn.kt");
}
@Test
@TestMetadata("suppressedInvisibleReferenceQualifier.kt")
public void testSuppressedInvisibleReferenceQualifier() throws Exception {
@@ -14737,6 +14737,12 @@ public class FirJsES6CodegenBoxTestGenerated extends AbstractFirJsES6CodegenBoxT
runTest("compiler/testData/codegen/box/fir/smartCastToInvisibleClassMember.kt");
}
@Test
@TestMetadata("starProjectionLambdaNullReturn.kt")
public void testStarProjectionLambdaNullReturn() throws Exception {
runTest("compiler/testData/codegen/box/fir/starProjectionLambdaNullReturn.kt");
}
@Test
@TestMetadata("suppressedInvisibleReferenceQualifier.kt")
public void testSuppressedInvisibleReferenceQualifier() throws Exception {
@@ -14737,6 +14737,12 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest {
runTest("compiler/testData/codegen/box/fir/smartCastToInvisibleClassMember.kt");
}
@Test
@TestMetadata("starProjectionLambdaNullReturn.kt")
public void testStarProjectionLambdaNullReturn() throws Exception {
runTest("compiler/testData/codegen/box/fir/starProjectionLambdaNullReturn.kt");
}
@Test
@TestMetadata("suppressedInvisibleReferenceQualifier.kt")
public void testSuppressedInvisibleReferenceQualifier() throws Exception {
@@ -14737,6 +14737,12 @@ public class IrJsES6CodegenBoxTestGenerated extends AbstractIrJsES6CodegenBoxTes
runTest("compiler/testData/codegen/box/fir/smartCastToInvisibleClassMember.kt");
}
@Test
@TestMetadata("starProjectionLambdaNullReturn.kt")
public void testStarProjectionLambdaNullReturn() throws Exception {
runTest("compiler/testData/codegen/box/fir/starProjectionLambdaNullReturn.kt");
}
@Test
@TestMetadata("suppressedInvisibleReferenceQualifier.kt")
public void testSuppressedInvisibleReferenceQualifier() throws Exception {