From e6ab2f1c2d5255cfbcbbc19b088c8c86db0d2f4e Mon Sep 17 00:00:00 2001 From: Alexey Sedunov Date: Wed, 27 Apr 2016 15:44:33 +0300 Subject: [PATCH] Change Signature: Do not use local declaration as a context for a type code fragment --- .../ui/KotlinChangeSignatureDialog.kt | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/ui/KotlinChangeSignatureDialog.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/ui/KotlinChangeSignatureDialog.kt index 9d39085554b..180c8cecbd3 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/ui/KotlinChangeSignatureDialog.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/ui/KotlinChangeSignatureDialog.kt @@ -408,12 +408,13 @@ class KotlinChangeSignatureDialog( private fun getTypeCodeFragmentContext(startFrom: PsiElement): KtElement { return startFrom.parents.mapNotNull { - when (it) { - is KtNamedFunction -> it.bodyExpression - is KtPropertyAccessor -> it.bodyExpression - is KtConstructor<*> -> it - is KtClassOrObject -> it - is KtFile -> it + when { + it is KtNamedFunction -> it.bodyExpression + it is KtPropertyAccessor -> it.bodyExpression + it is KtDeclaration && KtPsiUtil.isLocal(it) -> null + it is KtConstructor<*> -> it + it is KtClassOrObject -> it + it is KtFile -> it else -> null } }.first()