diff --git a/compiler/fir/raw-fir/raw-fir.common/src/org/jetbrains/kotlin/fir/builder/ConversionUtils.kt b/compiler/fir/raw-fir/raw-fir.common/src/org/jetbrains/kotlin/fir/builder/ConversionUtils.kt index ea464e31fd5..e99b1c79f28 100644 --- a/compiler/fir/raw-fir/raw-fir.common/src/org/jetbrains/kotlin/fir/builder/ConversionUtils.kt +++ b/compiler/fir/raw-fir/raw-fir.common/src/org/jetbrains/kotlin/fir/builder/ConversionUtils.kt @@ -499,7 +499,7 @@ fun FirQualifiedAccess.wrapWithSafeCall(receiver: FirExpression): FirSafeCallExp this.originalReceiverRef = FirExpressionRef().apply { bind(receiver) } - this.source = receiver.source + this.source = receiver.source?.fakeElement(FirFakeSourceElementKind.CheckedSafeCallSubject) } replaceExplicitReceiver(checkedSafeCallSubject) diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirSourceElement.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirSourceElement.kt index b546acbe5c4..fde7bee3463 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirSourceElement.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirSourceElement.kt @@ -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 {