diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirReifiedChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirReifiedChecker.kt index c4200d1ea11..43b8c3917a6 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirReifiedChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirReifiedChecker.kt @@ -7,7 +7,6 @@ package org.jetbrains.kotlin.fir.analysis.checkers.expression import org.jetbrains.kotlin.KtSourceElement import org.jetbrains.kotlin.diagnostics.DiagnosticReporter -import org.jetbrains.kotlin.diagnostics.KtDiagnosticFactory1 import org.jetbrains.kotlin.diagnostics.chooseFactory import org.jetbrains.kotlin.diagnostics.reportOn import org.jetbrains.kotlin.fir.analysis.checkers.context.CheckerContext @@ -56,24 +55,20 @@ object FirReifiedChecker : FirQualifiedAccessExpressionChecker() { return } - var factory: KtDiagnosticFactory1? = null - - lateinit var symbol: FirTypeParameterSymbol if (typeArgument is ConeTypeParameterType) { - factory = if (isArray) { + val factory = if (isArray) { FirErrors.TYPE_PARAMETER_AS_REIFIED_ARRAY.chooseFactory(context) } else { FirErrors.TYPE_PARAMETER_AS_REIFIED } - symbol = typeArgument.toSymbol(context.session) as FirTypeParameterSymbol + val symbol = typeArgument.lookupTag.typeParameterSymbol + if (!symbol.isReified) { + reporter.reportOn(source, factory, symbol, context) + } } else if (typeArgument != null && typeArgument.cannotBeReified()) { reporter.reportOn(source, FirErrors.REIFIED_TYPE_FORBIDDEN_SUBSTITUTION, typeArgument, context) return } - - if (factory != null && !symbol.isReified) { - reporter.reportOn(source, factory, symbol, context) - } } private fun ConeKotlinType.cannotBeReified(): Boolean {