[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
@@ -14713,6 +14713,12 @@ public class FirWasmCodegenBoxTestGenerated extends AbstractFirWasmCodegenBoxTes
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 {
@@ -14713,6 +14713,12 @@ public class K1WasmCodegenBoxTestGenerated extends AbstractK1WasmCodegenBoxTest
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 {