FIR call resolve: make earlier qualifier resolver reset
This commit is contained in:
@@ -33,9 +33,7 @@ import org.jetbrains.kotlin.fir.resolve.transformers.phasedFir
|
|||||||
import org.jetbrains.kotlin.fir.scopes.FirScope
|
import org.jetbrains.kotlin.fir.scopes.FirScope
|
||||||
import org.jetbrains.kotlin.fir.scopes.ProcessorAction
|
import org.jetbrains.kotlin.fir.scopes.ProcessorAction
|
||||||
import org.jetbrains.kotlin.fir.scopes.impl.FirLocalScope
|
import org.jetbrains.kotlin.fir.scopes.impl.FirLocalScope
|
||||||
import org.jetbrains.kotlin.fir.symbols.StandardClassIds
|
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.*
|
import org.jetbrains.kotlin.fir.symbols.impl.*
|
||||||
import org.jetbrains.kotlin.fir.symbols.invoke
|
|
||||||
import org.jetbrains.kotlin.fir.types.*
|
import org.jetbrains.kotlin.fir.types.*
|
||||||
import org.jetbrains.kotlin.fir.types.impl.FirResolvedTypeRefImpl
|
import org.jetbrains.kotlin.fir.types.impl.FirResolvedTypeRefImpl
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
@@ -203,6 +201,11 @@ class FirCallResolver(
|
|||||||
is FirNamedReferenceWithCandidate -> nameReference.candidateSymbol
|
is FirNamedReferenceWithCandidate -> nameReference.candidateSymbol
|
||||||
else -> null
|
else -> null
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (qualifiedAccess.explicitReceiver == null) {
|
||||||
|
qualifiedResolver.reset()
|
||||||
|
}
|
||||||
|
|
||||||
when {
|
when {
|
||||||
referencedSymbol is FirClassLikeSymbol<*> -> {
|
referencedSymbol is FirClassLikeSymbol<*> -> {
|
||||||
val classId = referencedSymbol.classId
|
val classId = referencedSymbol.classId
|
||||||
@@ -222,9 +225,6 @@ class FirCallResolver(
|
|||||||
resultType = typeForReifiedParameterReference(this)
|
resultType = typeForReifiedParameterReference(this)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
qualifiedAccess.explicitReceiver == null -> {
|
|
||||||
qualifiedResolver.reset()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Suppress("UNCHECKED_CAST")
|
@Suppress("UNCHECKED_CAST")
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ val ss = System
|
|||||||
val sss = X
|
val sss = X
|
||||||
val x = "${System}"
|
val x = "${System}"
|
||||||
val xs = java.lang
|
val xs = java.lang
|
||||||
val xss = java.<!UNRESOLVED_REFERENCE!>lang<!>.<!UNRESOLVED_REFERENCE!>System<!>
|
val xss = java.lang.System
|
||||||
val xsss = foo.X
|
val xsss = foo.X
|
||||||
val xssss = foo
|
val xssss = foo
|
||||||
val f = { System }
|
val f = { System }
|
||||||
|
|||||||
Reference in New Issue
Block a user