[FIR2IR] Don't generate fake overrides for clashing synthetic properties

If a synthetic prop clashes with a real property (e.g. @JvmField
property from parent Kotlin class), don't generate fake override for the
synthetic property. This fixes a CONFLICTING_INHERITED_JVM_DECLARATIONS
error in a mixed hierarchy.

^KT-56538 Fixed
This commit is contained in:
Kirill Rakhman
2023-02-13 18:03:32 +01:00
committed by Space Team
parent d84490dcfa
commit 7f8dc56d36
6 changed files with 67 additions and 6 deletions
@@ -0,0 +1,33 @@
// TARGET_BACKEND: JVM
// WITH_STDLIB
// ISSUE: KT-56538
// FILE: SerializableScheme.java
public interface SerializableScheme {
String getSchemeState();
}
// FILE: NewInspectionProfile.kt
abstract class NewInspectionProfile : SerializableScheme {
@JvmField
internal var schemeState: String? = "OK"
override fun getSchemeState(): String? = schemeState
}
// FILE: InspectionProfileImpl.java
public class InspectionProfileImpl extends NewInspectionProfile {
}
// FILE: InspectionProfileModifiableModel.kt
class InspectionProfileModifiableModel : InspectionProfileImpl()
// FILE: test.kt
fun box(): String {
return InspectionProfileModifiableModel().schemeState.toString()
}