K2: Update substituted member candidate if it contains type variables

See the comment at updateSubstitutedMemberIfReceiverContainsTypeVariable

It became necessary after delegate inference is rewritten, since before
that happened, stub types were being left there and FIR2IR handled
them accidentally properly because stub types are equal to anything.

But that wasn't really correct even there because stub types are not
intended to leak out of the FIR

^KT-61060
This commit is contained in:
Denis.Zharkov
2023-08-08 12:33:05 +02:00
committed by Space Team
parent 0f6a51fd97
commit 034671ad78
36 changed files with 272 additions and 45 deletions
@@ -12536,6 +12536,12 @@ public class FirNativeCodegenBoxTestGenerated extends AbstractNativeCodegenBoxTe
runTest("compiler/testData/codegen/box/delegatedProperty/kt9712.kt");
}
@Test
@TestMetadata("noTypeVariablesLeft.kt")
public void testNoTypeVariablesLeft() throws Exception {
runTest("compiler/testData/codegen/box/delegatedProperty/noTypeVariablesLeft.kt");
}
@Test
@TestMetadata("privateVar.kt")
public void testPrivateVar() throws Exception {
@@ -12826,6 +12826,12 @@ public class FirNativeCodegenBoxTestNoPLGenerated extends AbstractNativeCodegenB
runTest("compiler/testData/codegen/box/delegatedProperty/kt9712.kt");
}
@Test
@TestMetadata("noTypeVariablesLeft.kt")
public void testNoTypeVariablesLeft() throws Exception {
runTest("compiler/testData/codegen/box/delegatedProperty/noTypeVariablesLeft.kt");
}
@Test
@TestMetadata("privateVar.kt")
public void testPrivateVar() throws Exception {
@@ -12392,6 +12392,12 @@ public class NativeCodegenBoxTestGenerated extends AbstractNativeCodegenBoxTest
runTest("compiler/testData/codegen/box/delegatedProperty/kt9712.kt");
}
@Test
@TestMetadata("noTypeVariablesLeft.kt")
public void testNoTypeVariablesLeft() throws Exception {
runTest("compiler/testData/codegen/box/delegatedProperty/noTypeVariablesLeft.kt");
}
@Test
@TestMetadata("privateVar.kt")
public void testPrivateVar() throws Exception {
@@ -12537,6 +12537,12 @@ public class NativeCodegenBoxTestNoPLGenerated extends AbstractNativeCodegenBoxT
runTest("compiler/testData/codegen/box/delegatedProperty/kt9712.kt");
}
@Test
@TestMetadata("noTypeVariablesLeft.kt")
public void testNoTypeVariablesLeft() throws Exception {
runTest("compiler/testData/codegen/box/delegatedProperty/noTypeVariablesLeft.kt");
}
@Test
@TestMetadata("privateVar.kt")
public void testPrivateVar() throws Exception {