Create FIR fake source element for checked safe call subject
This commit is contained in:
+1
-1
@@ -499,7 +499,7 @@ fun FirQualifiedAccess.wrapWithSafeCall(receiver: FirExpression): FirSafeCallExp
|
|||||||
this.originalReceiverRef = FirExpressionRef<FirExpression>().apply {
|
this.originalReceiverRef = FirExpressionRef<FirExpression>().apply {
|
||||||
bind(receiver)
|
bind(receiver)
|
||||||
}
|
}
|
||||||
this.source = receiver.source
|
this.source = receiver.source?.fakeElement(FirFakeSourceElementKind.CheckedSafeCallSubject)
|
||||||
}
|
}
|
||||||
|
|
||||||
replaceExplicitReceiver(checkedSafeCallSubject)
|
replaceExplicitReceiver(checkedSafeCallSubject)
|
||||||
|
|||||||
@@ -154,6 +154,9 @@ sealed class FirFakeSourceElementKind : FirSourceElementKind() {
|
|||||||
// fun foo(vararg args: Int) {}
|
// fun foo(vararg args: Int) {}
|
||||||
// fun bar(1, 2, 3) --> [resolved] fun bar(VarargArgument(1, 2, 3))
|
// fun bar(1, 2, 3) --> [resolved] fun bar(VarargArgument(1, 2, 3))
|
||||||
object VarargArgument : FirFakeSourceElementKind()
|
object VarargArgument : FirFakeSourceElementKind()
|
||||||
|
|
||||||
|
// Part of desugared x?.y
|
||||||
|
object CheckedSafeCallSubject : FirFakeSourceElementKind()
|
||||||
}
|
}
|
||||||
|
|
||||||
sealed class FirSourceElement {
|
sealed class FirSourceElement {
|
||||||
|
|||||||
Reference in New Issue
Block a user