[FIR2IR] Unwrap substitution overrides during generation of delegated members

^KT-55828 Fixed
This commit is contained in:
Dmitriy Novozhilov
2023-02-28 13:11:28 +02:00
committed by Space Team
parent f44fcc811b
commit ca2492e1f8
20 changed files with 1194 additions and 2 deletions
@@ -109,7 +109,7 @@ class DelegatedMemberGenerator(private val components: Fir2IrComponents) : Fir2I
?: return@processAllFunctions
val delegateToSymbol = findDelegateToSymbol(
unwrapped.symbol,
unwrapped.unwrapSubstitutionOverrides().symbol,
delegateToScope::processFunctionsByName,
delegateToScope::processOverriddenFunctions
) ?: return@processAllFunctions
@@ -130,7 +130,7 @@ class DelegatedMemberGenerator(private val components: Fir2IrComponents) : Fir2I
?: return@processAllProperties
val delegateToSymbol = findDelegateToSymbol(
unwrapped.symbol,
unwrapped.unwrapSubstitutionOverrides().symbol,
{ name, processor ->
delegateToScope.processPropertiesByName(name) {
if (it !is FirPropertySymbol) return@processPropertiesByName
@@ -18919,6 +18919,18 @@ public class FirLightTreeBlackBoxCodegenTestGenerated extends AbstractFirLightTr
runTest("compiler/testData/codegen/box/functions/defaultargs7.kt");
}
@Test
@TestMetadata("delegatedPropertyWithMultipleOverriddens_generics.kt")
public void testDelegatedPropertyWithMultipleOverriddens_generics() throws Exception {
runTest("compiler/testData/codegen/box/functions/delegatedPropertyWithMultipleOverriddens_generics.kt");
}
@Test
@TestMetadata("delegatedPropertyWithMultipleOverriddens_noGenerics.kt")
public void testDelegatedPropertyWithMultipleOverriddens_noGenerics() throws Exception {
runTest("compiler/testData/codegen/box/functions/delegatedPropertyWithMultipleOverriddens_noGenerics.kt");
}
@Test
@TestMetadata("ea33909.kt")
public void testEa33909() throws Exception {
@@ -18919,6 +18919,18 @@ public class FirPsiBlackBoxCodegenTestGenerated extends AbstractFirPsiBlackBoxCo
runTest("compiler/testData/codegen/box/functions/defaultargs7.kt");
}
@Test
@TestMetadata("delegatedPropertyWithMultipleOverriddens_generics.kt")
public void testDelegatedPropertyWithMultipleOverriddens_generics() throws Exception {
runTest("compiler/testData/codegen/box/functions/delegatedPropertyWithMultipleOverriddens_generics.kt");
}
@Test
@TestMetadata("delegatedPropertyWithMultipleOverriddens_noGenerics.kt")
public void testDelegatedPropertyWithMultipleOverriddens_noGenerics() throws Exception {
runTest("compiler/testData/codegen/box/functions/delegatedPropertyWithMultipleOverriddens_noGenerics.kt");
}
@Test
@TestMetadata("ea33909.kt")
public void testEa33909() throws Exception {