[FIR2IR] Approximate extension receiver type after type argument substitution

Frontend may leak captured types into type arguments, so they should be
  approximated before using them in fir2ir cast inserter to determine
 a specific type from smartcast

^KT-62863 Fixed
This commit is contained in:
Dmitriy Novozhilov
2023-11-06 14:34:04 +02:00
committed by Space Team
parent d2ebaf4e6c
commit d08567c2c7
22 changed files with 261 additions and 1 deletions
@@ -35109,6 +35109,12 @@ public class FirJsCodegenBoxTestGenerated extends AbstractFirJsCodegenBoxTest {
runTest("compiler/testData/codegen/box/smartCasts/smartcastOnDynamic.kt");
}
@Test
@TestMetadata("smartcastToStarType.kt")
public void testSmartcastToStarType() throws Exception {
runTest("compiler/testData/codegen/box/smartCasts/smartcastToStarType.kt");
}
@Test
@TestMetadata("whenSmartCast.kt")
public void testWhenSmartCast() throws Exception {
@@ -35109,6 +35109,12 @@ public class FirJsES6CodegenBoxTestGenerated extends AbstractFirJsES6CodegenBoxT
runTest("compiler/testData/codegen/box/smartCasts/smartcastOnDynamic.kt");
}
@Test
@TestMetadata("smartcastToStarType.kt")
public void testSmartcastToStarType() throws Exception {
runTest("compiler/testData/codegen/box/smartCasts/smartcastToStarType.kt");
}
@Test
@TestMetadata("whenSmartCast.kt")
public void testWhenSmartCast() throws Exception {
@@ -35109,6 +35109,12 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest {
runTest("compiler/testData/codegen/box/smartCasts/smartcastOnDynamic.kt");
}
@Test
@TestMetadata("smartcastToStarType.kt")
public void testSmartcastToStarType() throws Exception {
runTest("compiler/testData/codegen/box/smartCasts/smartcastToStarType.kt");
}
@Test
@TestMetadata("whenSmartCast.kt")
public void testWhenSmartCast() throws Exception {
@@ -35109,6 +35109,12 @@ public class IrJsES6CodegenBoxTestGenerated extends AbstractIrJsES6CodegenBoxTes
runTest("compiler/testData/codegen/box/smartCasts/smartcastOnDynamic.kt");
}
@Test
@TestMetadata("smartcastToStarType.kt")
public void testSmartcastToStarType() throws Exception {
runTest("compiler/testData/codegen/box/smartCasts/smartcastToStarType.kt");
}
@Test
@TestMetadata("whenSmartCast.kt")
public void testWhenSmartCast() throws Exception {