Fir2Ir: do not skip building static fake overrides for enums

Fake overrides are needed at least for static fields inherited from Java
interfaces. Not static methods though, because they are not inherited.

 #KT-57302 Fixed
This commit is contained in:
Alexander Udalov
2023-03-20 23:49:46 +01:00
committed by Space Team
parent c046bedfc2
commit 1bc299508a
8 changed files with 48 additions and 1 deletions
@@ -94,7 +94,6 @@ class FakeOverrideGenerator(
)
}
}
if (firClass.isEnumClass) return@buildList // F/O for values/valueOf/entries aren't needed, for other members aren't possible
val staticScope = firClass.scopeProvider.getStaticMemberScopeForCallables(firClass, session, scopeSession)
if (staticScope != null) {
generateFakeOverridesForName(
@@ -49303,6 +49303,12 @@ public class FirLightTreeBlackBoxCodegenTestGenerated extends AbstractFirLightTr
runTest("compiler/testData/codegen/box/statics/anonymousInitializerInClassObject.kt");
}
@Test
@TestMetadata("enumWithInheritedStaticField.kt")
public void testEnumWithInheritedStaticField() throws Exception {
runTest("compiler/testData/codegen/box/statics/enumWithInheritedStaticField.kt");
}
@Test
@TestMetadata("fields.kt")
public void testFields() throws Exception {
@@ -49303,6 +49303,12 @@ public class FirPsiBlackBoxCodegenTestGenerated extends AbstractFirPsiBlackBoxCo
runTest("compiler/testData/codegen/box/statics/anonymousInitializerInClassObject.kt");
}
@Test
@TestMetadata("enumWithInheritedStaticField.kt")
public void testEnumWithInheritedStaticField() throws Exception {
runTest("compiler/testData/codegen/box/statics/enumWithInheritedStaticField.kt");
}
@Test
@TestMetadata("fields.kt")
public void testFields() throws Exception {