[FIR] Missing NESTED_CLASS_ACCESSED_VIA_INSTANCE_REFERENCE

^KT-59433 Fixed
This commit is contained in:
Vladimir Sukharev
2023-10-11 00:33:33 +02:00
committed by Space Team
parent da1fa8fce4
commit 16dfc6df71
11 changed files with 45 additions and 2 deletions
@@ -352,7 +352,7 @@ class FirCallResolver(
referencedSymbol,
qualifiedAccess.source,
qualifiedAccess.typeArguments,
diagnostic,
diagnostic ?: extractNestedClassAccessDiagnostic(nameReference.source, qualifiedAccess.explicitReceiver, referencedSymbol),
nonFatalDiagnostics = extractNonFatalDiagnostics(
nameReference.source,
qualifiedAccess.explicitReceiver,
@@ -21,6 +21,7 @@ import org.jetbrains.kotlin.fir.resolve.BodyResolveComponents
import org.jetbrains.kotlin.fir.resolve.calls.getSingleVisibleClassifier
import org.jetbrains.kotlin.fir.resolve.createCurrentScopeList
import org.jetbrains.kotlin.fir.resolve.diagnostics.ConeDeprecated
import org.jetbrains.kotlin.fir.resolve.diagnostics.ConeNestedClassAccessedViaInstanceReference
import org.jetbrains.kotlin.fir.resolve.setTypeOfQualifier
import org.jetbrains.kotlin.fir.symbols.impl.FirClassLikeSymbol
import org.jetbrains.kotlin.name.ClassId
@@ -184,6 +185,16 @@ private fun FqName.continueQualifierInPackage(
}
}
internal fun extractNestedClassAccessDiagnostic(
source: KtSourceElement?,
explicitReceiver: FirExpression?,
symbol: FirClassLikeSymbol<*>
): ConeDiagnostic? {
if ((explicitReceiver as? FirResolvedQualifier)?.typeArguments?.isNotEmpty() == true)
return ConeNestedClassAccessedViaInstanceReference(source!!, symbol)
return null
}
internal fun extractNonFatalDiagnostics(
source: KtSourceElement?,
explicitReceiver: FirExpression?,