diff --git a/plugins/kotlin/refactorings/kotlin.refactorings.k2/src/org/jetbrains/kotlin/idea/k2/refactoring/changeSignature/KotlinChangeSignatureUsageProcessor.kt b/plugins/kotlin/refactorings/kotlin.refactorings.k2/src/org/jetbrains/kotlin/idea/k2/refactoring/changeSignature/KotlinChangeSignatureUsageProcessor.kt index 46328049c8d0..973e3018d391 100644 --- a/plugins/kotlin/refactorings/kotlin.refactorings.k2/src/org/jetbrains/kotlin/idea/k2/refactoring/changeSignature/KotlinChangeSignatureUsageProcessor.kt +++ b/plugins/kotlin/refactorings/kotlin.refactorings.k2/src/org/jetbrains/kotlin/idea/k2/refactoring/changeSignature/KotlinChangeSignatureUsageProcessor.kt @@ -315,7 +315,8 @@ class KotlinChangeSignatureUsageProcessor : ChangeSignatureUsageProcessor { receiverTypeText, element as KtCallableDeclaration, changeInfo.method, - Variance.IN_VARIANCE + Variance.IN_VARIANCE, + true ) else null (element as KtCallableDeclaration).setReceiverTypeReference(receiverTypeRef)?.let { shortenReferences(it) } } diff --git a/plugins/kotlin/refactorings/kotlin.refactorings.k2/src/org/jetbrains/kotlin/idea/k2/refactoring/changeSignature/KotlinTypeInfo.kt b/plugins/kotlin/refactorings/kotlin.refactorings.k2/src/org/jetbrains/kotlin/idea/k2/refactoring/changeSignature/KotlinTypeInfo.kt index db63b063336b..723d7e4d873c 100644 --- a/plugins/kotlin/refactorings/kotlin.refactorings.k2/src/org/jetbrains/kotlin/idea/k2/refactoring/changeSignature/KotlinTypeInfo.kt +++ b/plugins/kotlin/refactorings/kotlin.refactorings.k2/src/org/jetbrains/kotlin/idea/k2/refactoring/changeSignature/KotlinTypeInfo.kt @@ -27,7 +27,8 @@ internal fun KtPsiFactory.createType( typeText: String, inheritedCallable: KtDeclaration?, baseFunction: PsiElement, - variance: Variance + variance: Variance, + isReceiver: Boolean = false ): KtTypeReference { if (inheritedCallable != null) { allowAnalysisFromWriteAction { @@ -52,16 +53,14 @@ internal fun KtPsiFactory.createType( } val ktSubstitutor = createSubstitutor(inheritedCallable, baseFunction) - if (ktSubstitutor != null) { - val ktType = createTypeCodeFragment(typeText, baseFunction).getContentElement()?.getKtType() - if (ktType != null) { - val type = ktSubstitutor.substitute(ktType) - val substitutedType = type.render(position = variance) - if (type is KtDefinitelyNotNullType) { - return createType("($substitutedType)") - } - return createType(substitutedType) + val ktType = createTypeCodeFragment(typeText, baseFunction).getContentElement()?.getKtType() + if (ktType != null) { + val type = ktSubstitutor?.substitute(ktType) ?: ktType + val substitutedType = type.render(position = variance) + if (isReceiver && type is KtDefinitelyNotNullType) { + return createType("($substitutedType)") } + return createType(substitutedType) } } }