[FE 1.0] Fix reporting of UNINITIALIZED_ENUM_ENTRY on qualified enums
^KT-41124 ^KT-50758 Fixed
This commit is contained in:
committed by
teamcity
parent
50f6825775
commit
bb6c6dc45d
@@ -32,6 +32,7 @@ import org.jetbrains.kotlin.cfg.pseudocode.instructions.eval.AccessTarget
|
||||
import org.jetbrains.kotlin.cfg.pseudocode.instructions.eval.InstructionWithValue
|
||||
import org.jetbrains.kotlin.cfg.pseudocode.instructions.eval.MagicKind
|
||||
import org.jetbrains.kotlin.config.LanguageFeature
|
||||
import org.jetbrains.kotlin.config.LanguageFeature.ProhibitQualifiedAccessToUninitializedEnumEntry
|
||||
import org.jetbrains.kotlin.config.LanguageVersionSettings
|
||||
import org.jetbrains.kotlin.contracts.description.EventOccurrencesRange
|
||||
import org.jetbrains.kotlin.contracts.description.canBeRevisited
|
||||
@@ -283,7 +284,12 @@ class ControlFlowProcessor(
|
||||
generateCall(resolvedCall.variableCall)
|
||||
} else {
|
||||
if (resolvedCall == null) {
|
||||
val qualifier = trace.bindingContext[BindingContext.QUALIFIER, expression]
|
||||
val qualifierExpression =
|
||||
when (languageVersionSettings.supportsFeature(ProhibitQualifiedAccessToUninitializedEnumEntry)) {
|
||||
true -> expression.getTopmostParentQualifiedExpressionForSelector() ?: expression
|
||||
false -> expression
|
||||
}
|
||||
val qualifier = trace.bindingContext[BindingContext.QUALIFIER, qualifierExpression]
|
||||
if (qualifier != null && generateQualifier(expression, qualifier)) return
|
||||
}
|
||||
if (!generateCall(expression) && expression.parent !is KtCallExpression) {
|
||||
|
||||
Reference in New Issue
Block a user