diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/CallAndReferenceGenerator.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/CallAndReferenceGenerator.kt index 1d3d6493a40..b7d85a7ec1a 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/CallAndReferenceGenerator.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/CallAndReferenceGenerator.kt @@ -219,7 +219,7 @@ internal class CallAndReferenceGenerator( is IrVariableSymbol -> IrSetVariableImpl(startOffset, endOffset, type, symbol, assignedValue, origin) else -> generateErrorCallExpression(startOffset, endOffset, calleeReference) } - }.applyReceivers(variableAssignment) + }.applyTypeArguments(variableAssignment).applyReceivers(variableAssignment) } fun convertToIrConstructorCall(annotationCall: FirAnnotationCall): IrExpression { diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirCallCompletionResultsWriterTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirCallCompletionResultsWriterTransformer.kt index 9926c2c5fbd..63d3cf8e7f9 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirCallCompletionResultsWriterTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirCallCompletionResultsWriterTransformer.kt @@ -135,6 +135,7 @@ class FirCallCompletionResultsWriterTransformer( ): CompositeTransformResult { val calleeReference = variableAssignment.calleeReference as? FirNamedReferenceWithCandidate ?: return variableAssignment.compose() + val typeArguments = computeTypeArguments(variableAssignment, calleeReference.candidate) return variableAssignment.transformCalleeReference( StoreCalleeReference, buildResolvedNamedReference { @@ -142,7 +143,9 @@ class FirCallCompletionResultsWriterTransformer( name = calleeReference.name resolvedSymbol = calleeReference.candidateSymbol }, - ).compose() + ).apply { + replaceTypeArguments(typeArguments) + }.compose() } override fun transformFunctionCall(functionCall: FirFunctionCall, data: ExpectedArgumentType?): CompositeTransformResult { diff --git a/compiler/testData/ir/irText/regressions/integerCoercionToT.fir.txt b/compiler/testData/ir/irText/regressions/integerCoercionToT.fir.txt index f9828625ce4..a0cc133be32 100644 --- a/compiler/testData/ir/irText/regressions/integerCoercionToT.fir.txt +++ b/compiler/testData/ir/irText/regressions/integerCoercionToT.fir.txt @@ -90,7 +90,7 @@ FILE fqName: fileName:/integerCoercionToT.kt VALUE_PARAMETER name:cv index:1 type:.CInt32VarX BLOCK_BODY CALL 'public final fun (value: T_INT of .): kotlin.Unit declared in ' type=kotlin.Unit origin=EQ - : + : kotlin.Int $receiver: GET_VAR 'cv: .CInt32VarX declared in .foo' type=.CInt32VarX origin=null value: CALL 'public final fun (): kotlin.Int declared in .IdType' type=kotlin.Int origin=GET_PROPERTY $this: GET_VAR 'value: .IdType declared in .foo' type=.IdType origin=null