FIR: Use more refined names instead of "safe"

^KT-38444 Fixed
This commit is contained in:
Denis Zharkov
2020-06-02 12:42:23 +03:00
parent 6507656496
commit 4a4dce1766
14 changed files with 35 additions and 25 deletions
@@ -71,7 +71,7 @@ class FirDoubleColonExpressionResolver(
private fun shouldTryResolveLHSAsExpression(expression: FirCallableReferenceAccess): Boolean {
val lhs = expression.explicitReceiver ?: return false
return lhs.canBeConsideredProperExpression() && !expression.safe
return lhs.canBeConsideredProperExpression() && !expression.hasQuestionMarkAtLHS
}
private fun shouldTryResolveLHSAsType(expression: FirCallableReferenceAccess): Boolean {
@@ -172,7 +172,7 @@ class FirDoubleColonExpressionResolver(
else -> ConeStarProjection
}
},
isNullable = expression.safe
isNullable = resolvedExpression.isNullableLHSForCallableReference
)
return DoubleColonLHS.Type(type)
@@ -511,8 +511,8 @@ class FirExpressionsResolveTransformer(transformer: FirBodyResolveTransformer) :
callableReferenceAccess.annotations.forEach { it.accept(this, data) }
val explicitReceiver = callableReferenceAccess.explicitReceiver
val transformedLHS = explicitReceiver?.transformSingle(this, ResolutionMode.ContextIndependent)?.apply {
if (this is FirResolvedQualifier && callableReferenceAccess.safe) {
replaceSafe(true)
if (this is FirResolvedQualifier && callableReferenceAccess.hasQuestionMarkAtLHS) {
replaceIsNullableLHSForCallableReference(true)
}
}