[FIR] Explicitly resolve synthetic property return type if necessary

During implicit body resolve phase, we can encounter a reference to a
not yet resolved Kotlin class that inherits a synthetic property from a
Java class. In that case, resolve the return type in
FirSyntheticPropertiesScope.

#KT-57166 Fixed
This commit is contained in:
Kirill Rakhman
2023-03-08 14:08:01 +01:00
committed by Space Team
parent 6aef11704b
commit 9b89759755
12 changed files with 218 additions and 12 deletions
@@ -0,0 +1,33 @@
// ISSUE: KT-57166
// FILE: Modality.kt
enum class Modality {
FINAL
}
// FILE: ClassDescriptor.java
public interface ClassDescriptor {
@NotNull
Modality getModality();
}
// FILE: DeserializedClassDescriptor.kt
object ProtoEnumFlags {
fun modality(): Modality = Modality.FINAL
}
class DeserializedClassDescriptor : ClassDescriptor {
private val modality = ProtoEnumFlags.modality()
override fun getModality() = modality
}
fun modality(): Modality = Modality.FINAL
class DeserializedClassDescriptor2 : ClassDescriptor {
private val modality = <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM_ERROR!><!DEBUG_INFO_MISSING_UNRESOLVED!>modality<!>()<!>
override fun getModality() = <!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>modality<!>
}