[FIR] Properly setup source element for FirSafeCallExpression

This commit is contained in:
Dmitriy Novozhilov
2021-06-21 15:15:40 +03:00
committed by teamcityserver
parent 26b9948e5f
commit f18e38a49f
2 changed files with 6 additions and 2 deletions
@@ -494,9 +494,11 @@ class ExpressionsConverter(
(firSelector as? FirQualifiedAccess)?.let { (firSelector as? FirQualifiedAccess)?.let {
if (isSafe) { if (isSafe) {
@OptIn(FirImplementationDetail::class)
it.replaceSource(dotQualifiedExpression.toFirSourceElement(FirFakeSourceElementKind.DesugaredSafeCallExpression))
return it.wrapWithSafeCall( return it.wrapWithSafeCall(
firReceiver!!, firReceiver!!,
dotQualifiedExpression.toFirSourceElement(FirFakeSourceElementKind.DesugaredSafeCallExpression) dotQualifiedExpression.toFirSourceElement()
) )
} }
@@ -2085,9 +2085,11 @@ open class RawFirBuilder(
val receiver = expression.receiverExpression.toFirExpression("Incorrect receiver expression") val receiver = expression.receiverExpression.toFirExpression("Incorrect receiver expression")
if (expression is KtSafeQualifiedExpression) { if (expression is KtSafeQualifiedExpression) {
@OptIn(FirImplementationDetail::class)
firSelector.replaceSource(expression.toFirSourceElement(FirFakeSourceElementKind.DesugaredSafeCallExpression))
return firSelector.wrapWithSafeCall( return firSelector.wrapWithSafeCall(
receiver, receiver,
expression.toFirSourceElement(FirFakeSourceElementKind.DesugaredSafeCallExpression) expression.toFirSourceElement()
) )
} }