Create FIR fake source element for checked safe call subject

This commit is contained in:
Mikhail Glukhikh
2020-11-18 13:58:06 +03:00
parent 2592eed0e7
commit 558ac1678e
2 changed files with 4 additions and 1 deletions
@@ -499,7 +499,7 @@ fun FirQualifiedAccess.wrapWithSafeCall(receiver: FirExpression): FirSafeCallExp
this.originalReceiverRef = FirExpressionRef<FirExpression>().apply {
bind(receiver)
}
this.source = receiver.source
this.source = receiver.source?.fakeElement(FirFakeSourceElementKind.CheckedSafeCallSubject)
}
replaceExplicitReceiver(checkedSafeCallSubject)
@@ -154,6 +154,9 @@ sealed class FirFakeSourceElementKind : FirSourceElementKind() {
// fun foo(vararg args: Int) {}
// fun bar(1, 2, 3) --> [resolved] fun bar(VarargArgument(1, 2, 3))
object VarargArgument : FirFakeSourceElementKind()
// Part of desugared x?.y
object CheckedSafeCallSubject : FirFakeSourceElementKind()
}
sealed class FirSourceElement {