K2: discriminate synthetic 'Enum.entries' during resolve

This commit is contained in:
Mikhail Glukhikh
2022-08-16 16:53:46 +02:00
committed by Space
parent 68ca453467
commit fb1c80a7c9
4 changed files with 8 additions and 11 deletions
@@ -5,6 +5,7 @@
package org.jetbrains.kotlin.fir.resolve.calls
import org.jetbrains.kotlin.KtFakeSourceElementKind
import org.jetbrains.kotlin.config.LanguageFeature
import org.jetbrains.kotlin.descriptors.Modality
import org.jetbrains.kotlin.fir.declarations.*
@@ -510,6 +511,9 @@ internal object DiscriminateSynthetics : CheckerStage() {
if (candidate.symbol is SyntheticSymbol) {
sink.reportDiagnostic(ResolvedWithSynthetic)
}
if (candidate.symbol is FirPropertySymbol && candidate.symbol.source?.kind is KtFakeSourceElementKind.EnumGeneratedDeclaration) {
sink.reportDiagnostic(ResolvedWithSynthetic)
}
}
}
@@ -1,8 +0,0 @@
// !LANGUAGE: +EnumEntries
// FIR_DUMP
enum class Ambiguous {
first, entries;
}
val e = Ambiguous.<!OVERLOAD_RESOLUTION_AMBIGUITY!>entries<!>
@@ -1,4 +1,4 @@
FILE: enumEntriesAmbiguity.fir.kt
FILE: enumEntriesAmbiguity.kt
public final enum class Ambiguous : R|kotlin/Enum<Ambiguous>| {
private constructor(): R|Ambiguous| {
super<R|kotlin/Enum<Ambiguous>|>()
@@ -16,5 +16,5 @@ FILE: enumEntriesAmbiguity.fir.kt
public get(): R|kotlin/enums/EnumEntries<Ambiguous>|
}
public final val e: <ERROR TYPE REF: Ambiguity: entries, [/Ambiguous.entries, /Ambiguous.entries]> = Q|Ambiguous|.<Ambiguity: entries, [/Ambiguous.entries, /Ambiguous.entries]>#
public get(): <ERROR TYPE REF: Ambiguity: entries, [/Ambiguous.entries, /Ambiguous.entries]>
public final val e: R|Ambiguous| = Q|Ambiguous|.R|/Ambiguous.entries|
public get(): R|Ambiguous|
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// !LANGUAGE: +EnumEntries
// FIR_DUMP