K2: generate implicit dispatch receivers for static members called

#KT-55371 Fixed
#KT-55372 Fixed
This commit is contained in:
Mikhail Glukhikh
2023-01-16 16:59:33 +01:00
committed by Space Team
parent 9cfcf057ef
commit 4167a69e30
17 changed files with 328 additions and 27 deletions
@@ -5,6 +5,7 @@
package org.jetbrains.kotlin.fir.analysis.checkers.expression
import org.jetbrains.kotlin.KtFakeSourceElementKind
import org.jetbrains.kotlin.fir.analysis.checkers.context.CheckerContext
import org.jetbrains.kotlin.diagnostics.DiagnosticReporter
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors
@@ -36,7 +37,10 @@ object FirVisibilityQualifierChecker : FirResolvedQualifierChecker() {
val firFile = context.containingFile ?: return
val firClassLikeDeclaration = symbol.fir
if (!context.session.visibilityChecker.isClassLikeVisible(
// Note: errors on implicit receiver are already reported in coneDiagnosticToFirDiagnostic
// See e.g. diagnostics/tests/visibility/packagePrivateStaticViaInternal.fir.kt
if (expression.source?.kind != KtFakeSourceElementKind.ImplicitReceiver &&
!context.session.visibilityChecker.isClassLikeVisible(
firClassLikeDeclaration, context.session, firFile, context.containingDeclarations,
)
) {