[FIR] Expand typealiases in extractNonFatalDiagnostics

^KT-59901 Fixed
This commit is contained in:
Nikolay Lunyak
2023-08-01 13:41:36 +03:00
committed by Space Team
parent c392b0c477
commit 882b7fc9ca
4 changed files with 11 additions and 24 deletions
@@ -338,7 +338,7 @@ class FirCallResolver(
qualifiedAccess.explicitReceiver, qualifiedAccess.explicitReceiver,
referencedSymbol, referencedSymbol,
nonFatalDiagnosticFromExpression, nonFatalDiagnosticFromExpression,
session.languageVersionSettings.apiVersion session
), ),
annotations = qualifiedAccess.annotations annotations = qualifiedAccess.annotations
) )
@@ -6,9 +6,9 @@
package org.jetbrains.kotlin.fir package org.jetbrains.kotlin.fir
import org.jetbrains.kotlin.KtSourceElement import org.jetbrains.kotlin.KtSourceElement
import org.jetbrains.kotlin.config.ApiVersion
import org.jetbrains.kotlin.fir.declarations.FirClass import org.jetbrains.kotlin.fir.declarations.FirClass
import org.jetbrains.kotlin.fir.declarations.fullyExpandedClass import org.jetbrains.kotlin.fir.declarations.fullyExpandedClass
import org.jetbrains.kotlin.fir.declarations.getDeprecationForCallSite
import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic
import org.jetbrains.kotlin.fir.expressions.FirExpression import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.expressions.FirResolvedQualifier import org.jetbrains.kotlin.fir.expressions.FirResolvedQualifier
@@ -72,7 +72,7 @@ fun BodyResolveComponents.resolveRootPartOfQualifier(
explicitReceiver = null, explicitReceiver = null,
it, it,
extraNotFatalDiagnostics = nonFatalDiagnosticsFromExpression, extraNotFatalDiagnostics = nonFatalDiagnosticsFromExpression,
session.languageVersionSettings.apiVersion session
) )
) )
}.apply { }.apply {
@@ -86,8 +86,7 @@ fun BodyResolveComponents.resolveRootPartOfQualifier(
typeArguments, typeArguments,
nonFatalDiagnosticsFromExpression, nonFatalDiagnosticsFromExpression,
this, this,
source, source
session.languageVersionSettings.apiVersion
) )
} }
@@ -125,7 +124,7 @@ fun FirResolvedQualifier.continueQualifier(
explicitReceiver = null, explicitReceiver = null,
nestedClassSymbol, nestedClassSymbol,
extraNotFatalDiagnostics = this@continueQualifier.nonFatalDiagnostics, extraNotFatalDiagnostics = this@continueQualifier.nonFatalDiagnostics,
session.languageVersionSettings.apiVersion session
) )
) )
}.apply { }.apply {
@@ -139,8 +138,7 @@ fun FirResolvedQualifier.continueQualifier(
typeArguments, typeArguments,
nonFatalDiagnosticsFromExpression, nonFatalDiagnosticsFromExpression,
components, components,
source, source
session.languageVersionSettings.apiVersion
) )
} }
@@ -149,8 +147,7 @@ private fun FqName.continueQualifierInPackage(
typeArguments: List<FirTypeProjection>, typeArguments: List<FirTypeProjection>,
nonFatalDiagnosticsFromExpression: List<ConeDiagnostic>?, nonFatalDiagnosticsFromExpression: List<ConeDiagnostic>?,
components: BodyResolveComponents, components: BodyResolveComponents,
source: KtSourceElement?, source: KtSourceElement?
apiVersion: ApiVersion
): FirResolvedQualifier? { ): FirResolvedQualifier? {
val childFqName = this.child(name) val childFqName = this.child(name)
if (components.symbolProvider.getPackage(childFqName) != null) { if (components.symbolProvider.getPackage(childFqName) != null) {
@@ -179,7 +176,7 @@ private fun FqName.continueQualifierInPackage(
explicitReceiver = null, explicitReceiver = null,
symbol, symbol,
extraNotFatalDiagnostics = nonFatalDiagnosticsFromExpression, extraNotFatalDiagnostics = nonFatalDiagnosticsFromExpression,
apiVersion components.session
) )
) )
isFullyQualified = true isFullyQualified = true
@@ -193,12 +190,12 @@ internal fun extractNonFatalDiagnostics(
explicitReceiver: FirExpression?, explicitReceiver: FirExpression?,
symbol: FirClassLikeSymbol<*>, symbol: FirClassLikeSymbol<*>,
extraNotFatalDiagnostics: List<ConeDiagnostic>?, extraNotFatalDiagnostics: List<ConeDiagnostic>?,
apiVersion: ApiVersion session: FirSession,
): List<ConeDiagnostic> { ): List<ConeDiagnostic> {
val prevDiagnostics = (explicitReceiver as? FirResolvedQualifier)?.nonFatalDiagnostics ?: emptyList() val prevDiagnostics = (explicitReceiver as? FirResolvedQualifier)?.nonFatalDiagnostics ?: emptyList()
var result: MutableList<ConeDiagnostic>? = null var result: MutableList<ConeDiagnostic>? = null
val deprecation = symbol.getOwnDeprecation(apiVersion)?.forUseSite() val deprecation = symbol.getDeprecationForCallSite(session)
if (deprecation != null) { if (deprecation != null) {
result = mutableListOf() result = mutableListOf()
result.addAll(prevDiagnostics) result.addAll(prevDiagnostics)
@@ -1,11 +0,0 @@
// !API_VERSION: 1.0
@SinceKotlin("1.1")
object Since_1_1 {
val x = 42
}
typealias Since_1_1_Alias = <!API_NOT_AVAILABLE!>Since_1_1<!>
val test1 = Since_1_1_Alias
val test2 = Since_1_1_Alias.x
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// !API_VERSION: 1.0 // !API_VERSION: 1.0
@SinceKotlin("1.1") @SinceKotlin("1.1")