K2: store imported static qualifiers in dispatch receiver field

This is a partial revert of commit 104fd4c1
#KT-55116 Fixed
This commit is contained in:
Mikhail Glukhikh
2023-01-16 15:57:08 +01:00
committed by Space Team
parent 416d4f57eb
commit aafde418cc
11 changed files with 34 additions and 65 deletions
@@ -22,7 +22,8 @@ import org.jetbrains.kotlin.fir.types.isUnit
object FirStandaloneQualifierChecker : FirResolvedQualifierChecker() {
override fun check(expression: FirResolvedQualifier, context: CheckerContext, reporter: DiagnosticReporter) {
val lastQualifiedAccess = context.qualifiedAccessOrAnnotationCalls.lastOrNull() as? FirQualifiedAccess
if (lastQualifiedAccess?.explicitReceiver === expression) return
// Note: qualifier isn't standalone when it's in receiver (SomeClass.foo) or getClass (SomeClass::class) position
if (lastQualifiedAccess?.explicitReceiver === expression || lastQualifiedAccess?.dispatchReceiver === expression) return
val lastGetClass = context.getClassCalls.lastOrNull()
if (lastGetClass?.argument === expression) return
// Note: if it's real Unit, it will be filtered by ClassKind.OBJECT check below