FirReifiedChecker: minor cleanup
This commit is contained in:
+5
-10
@@ -7,7 +7,6 @@ package org.jetbrains.kotlin.fir.analysis.checkers.expression
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.KtSourceElement
|
import org.jetbrains.kotlin.KtSourceElement
|
||||||
import org.jetbrains.kotlin.diagnostics.DiagnosticReporter
|
import org.jetbrains.kotlin.diagnostics.DiagnosticReporter
|
||||||
import org.jetbrains.kotlin.diagnostics.KtDiagnosticFactory1
|
|
||||||
import org.jetbrains.kotlin.diagnostics.chooseFactory
|
import org.jetbrains.kotlin.diagnostics.chooseFactory
|
||||||
import org.jetbrains.kotlin.diagnostics.reportOn
|
import org.jetbrains.kotlin.diagnostics.reportOn
|
||||||
import org.jetbrains.kotlin.fir.analysis.checkers.context.CheckerContext
|
import org.jetbrains.kotlin.fir.analysis.checkers.context.CheckerContext
|
||||||
@@ -56,24 +55,20 @@ object FirReifiedChecker : FirQualifiedAccessExpressionChecker() {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
var factory: KtDiagnosticFactory1<FirTypeParameterSymbol>? = null
|
|
||||||
|
|
||||||
lateinit var symbol: FirTypeParameterSymbol
|
|
||||||
if (typeArgument is ConeTypeParameterType) {
|
if (typeArgument is ConeTypeParameterType) {
|
||||||
factory = if (isArray) {
|
val factory = if (isArray) {
|
||||||
FirErrors.TYPE_PARAMETER_AS_REIFIED_ARRAY.chooseFactory(context)
|
FirErrors.TYPE_PARAMETER_AS_REIFIED_ARRAY.chooseFactory(context)
|
||||||
} else {
|
} else {
|
||||||
FirErrors.TYPE_PARAMETER_AS_REIFIED
|
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()) {
|
} else if (typeArgument != null && typeArgument.cannotBeReified()) {
|
||||||
reporter.reportOn(source, FirErrors.REIFIED_TYPE_FORBIDDEN_SUBSTITUTION, typeArgument, context)
|
reporter.reportOn(source, FirErrors.REIFIED_TYPE_FORBIDDEN_SUBSTITUTION, typeArgument, context)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if (factory != null && !symbol.isReified) {
|
|
||||||
reporter.reportOn(source, factory, symbol, context)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun ConeKotlinType.cannotBeReified(): Boolean {
|
private fun ConeKotlinType.cannotBeReified(): Boolean {
|
||||||
|
|||||||
Reference in New Issue
Block a user