FIR resolve (minor): provide source element for resolved qualifier
This commit is contained in:
@@ -185,7 +185,7 @@ class FirCallResolver(
|
|||||||
if (qualifiedAccess.explicitReceiver == null &&
|
if (qualifiedAccess.explicitReceiver == null &&
|
||||||
(reducedCandidates.size <= 1 && result.currentApplicability < CandidateApplicability.SYNTHETIC_RESOLVED)
|
(reducedCandidates.size <= 1 && result.currentApplicability < CandidateApplicability.SYNTHETIC_RESOLVED)
|
||||||
) {
|
) {
|
||||||
qualifiedResolver.tryResolveAsQualifier()?.let { return it }
|
qualifiedResolver.tryResolveAsQualifier(qualifiedAccess.source)?.let { return it }
|
||||||
}
|
}
|
||||||
|
|
||||||
val referencedSymbol = when (nameReference) {
|
val referencedSymbol = when (nameReference) {
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ class FirQualifiedNameResolver(components: BodyResolveComponents) : BodyResolveC
|
|||||||
null
|
null
|
||||||
}
|
}
|
||||||
|
|
||||||
fun tryResolveAsQualifier(): FirResolvedQualifier? {
|
fun tryResolveAsQualifier(source: FirSourceElement?): FirResolvedQualifier? {
|
||||||
val symbolProvider = session.firSymbolProvider
|
val symbolProvider = session.firSymbolProvider
|
||||||
var qualifierParts = qualifierStack.asReversed().map { it.asString() }
|
var qualifierParts = qualifierStack.asReversed().map { it.asString() }
|
||||||
var resolved: PackageOrClass?
|
var resolved: PackageOrClass?
|
||||||
@@ -59,7 +59,7 @@ class FirQualifiedNameResolver(components: BodyResolveComponents) : BodyResolveC
|
|||||||
if (resolved != null) {
|
if (resolved != null) {
|
||||||
qualifierPartsToDrop = qualifierParts.size - 1
|
qualifierPartsToDrop = qualifierParts.size - 1
|
||||||
return FirResolvedQualifierImpl(
|
return FirResolvedQualifierImpl(
|
||||||
null /* TODO */,
|
source,
|
||||||
resolved.packageFqName,
|
resolved.packageFqName,
|
||||||
resolved.relativeClassFqName
|
resolved.relativeClassFqName
|
||||||
).apply { resultType = typeForQualifier(this) }
|
).apply { resultType = typeForQualifier(this) }
|
||||||
|
|||||||
Reference in New Issue
Block a user