Minor fixes in FirTypeParameterInQualifiedAccessChecker

This commit is contained in:
Mikhail Glukhikh
2021-03-11 12:46:14 +03:00
parent 0b9598d880
commit 599a0d9c2b
@@ -16,7 +16,7 @@ import org.jetbrains.kotlin.fir.resolve.diagnostics.ConeTypeParameterInQualified
import org.jetbrains.kotlin.fir.types.FirErrorTypeRef import org.jetbrains.kotlin.fir.types.FirErrorTypeRef
import org.jetbrains.kotlin.fir.types.FirTypeRef import org.jetbrains.kotlin.fir.types.FirTypeRef
object FirTypeParameterInQualifiedAccessChecker: FirQualifiedAccessChecker() { object FirTypeParameterInQualifiedAccessChecker : FirQualifiedAccessChecker() {
override fun check(expression: FirQualifiedAccessExpression, context: CheckerContext, reporter: DiagnosticReporter) { override fun check(expression: FirQualifiedAccessExpression, context: CheckerContext, reporter: DiagnosticReporter) {
checkExplicitReceiver(expression, context, reporter) checkExplicitReceiver(expression, context, reporter)
checkExpressionItself(expression, context, reporter) checkExpressionItself(expression, context, reporter)
@@ -42,14 +42,15 @@ object FirTypeParameterInQualifiedAccessChecker: FirQualifiedAccessChecker() {
context: CheckerContext, context: CheckerContext,
reporter: DiagnosticReporter reporter: DiagnosticReporter
) { ) {
val explicitReceiver = expression.explicitReceiver
val typeParameterSymbol = val typeParameterSymbol =
expression.explicitReceiver?.typeRef?.coneTypeParameterInQualifiedAccess?.symbol (explicitReceiver as? FirResolvedReifiedParameterReference)?.symbol
?: (expression.explicitReceiver as? FirResolvedReifiedParameterReference)?.symbol ?: explicitReceiver?.typeRef?.coneTypeParameterInQualifiedAccess?.symbol
?: return ?: return
if (expression is FirCallableReferenceAccess) { if (expression is FirCallableReferenceAccess) {
reporter.reportOn(expression.source, FirErrors.CALLABLE_REFERENCE_LHS_NOT_A_CLASS, context) reporter.reportOn(expression.source, FirErrors.CALLABLE_REFERENCE_LHS_NOT_A_CLASS, context)
} else { } else {
reporter.reportOn(expression.explicitReceiver?.source, FirErrors.TYPE_PARAMETER_ON_LHS_OF_DOT, typeParameterSymbol, context) reporter.reportOn(explicitReceiver?.source, FirErrors.TYPE_PARAMETER_ON_LHS_OF_DOT, typeParameterSymbol, context)
} }
} }