FIR call resolve: make earlier qualifier resolver reset

This commit is contained in:
Mikhail Glukhikh
2019-12-17 15:57:25 +03:00
parent 684bdc44bb
commit c6db5abb14
2 changed files with 6 additions and 6 deletions
@@ -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.ProcessorAction
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.invoke
import org.jetbrains.kotlin.fir.types.*
import org.jetbrains.kotlin.fir.types.impl.FirResolvedTypeRefImpl
import org.jetbrains.kotlin.name.Name
@@ -203,6 +201,11 @@ class FirCallResolver(
is FirNamedReferenceWithCandidate -> nameReference.candidateSymbol
else -> null
}
if (qualifiedAccess.explicitReceiver == null) {
qualifiedResolver.reset()
}
when {
referencedSymbol is FirClassLikeSymbol<*> -> {
val classId = referencedSymbol.classId
@@ -222,9 +225,6 @@ class FirCallResolver(
resultType = typeForReifiedParameterReference(this)
}
}
qualifiedAccess.explicitReceiver == null -> {
qualifiedResolver.reset()
}
}
@Suppress("UNCHECKED_CAST")
@@ -7,7 +7,7 @@ val ss = System
val sss = X
val x = "${System}"
val xs = java.lang
val xss = java.<!UNRESOLVED_REFERENCE!>lang<!>.<!UNRESOLVED_REFERENCE!>System<!>
val xss = java.lang.System
val xsss = foo.X
val xssss = foo
val f = { System }