From 47aa0cba7dbc9b50c596cf87a0ec16e0d4925581 Mon Sep 17 00:00:00 2001 From: Alexey Sedunov Date: Wed, 24 Dec 2014 15:25:34 +0300 Subject: [PATCH] Change Signature: Do not fail on dynamic calls. Show error messages instead #KT-6529 Fixed --- .../JetChangeSignatureHandler.java | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/idea/src/org/jetbrains/jet/plugin/refactoring/changeSignature/JetChangeSignatureHandler.java b/idea/src/org/jetbrains/jet/plugin/refactoring/changeSignature/JetChangeSignatureHandler.java index 14a7e9b8aeb..1acf4b065c7 100644 --- a/idea/src/org/jetbrains/jet/plugin/refactoring/changeSignature/JetChangeSignatureHandler.java +++ b/idea/src/org/jetbrains/jet/plugin/refactoring/changeSignature/JetChangeSignatureHandler.java @@ -41,9 +41,11 @@ import org.jetbrains.jet.lang.descriptors.FunctionDescriptor; import org.jetbrains.jet.lang.descriptors.ValueParameterDescriptor; import org.jetbrains.jet.lang.psi.*; import org.jetbrains.jet.lang.resolve.BindingContext; +import org.jetbrains.jet.lang.resolve.calls.tasks.TasksPackage; import org.jetbrains.jet.lang.resolve.java.descriptor.JavaCallableMemberDescriptor; -import org.jetbrains.jet.plugin.codeInsight.DescriptorToDeclarationUtil; import org.jetbrains.jet.plugin.caches.resolve.ResolvePackage; +import org.jetbrains.jet.plugin.codeInsight.CodeInsightUtils; +import org.jetbrains.jet.plugin.codeInsight.DescriptorToDeclarationUtil; import org.jetbrains.jet.plugin.refactoring.JetRefactoringBundle; import java.util.Collection; @@ -114,6 +116,19 @@ public class JetChangeSignatureHandler implements ChangeSignatureHandler { return; } + if (TasksPackage.isDynamic(functionDescriptor)) { + if (editor != null) { + CodeInsightUtils.showErrorHint( + project, + editor, + "Change signature is not applicable to dynamically invoked functions", + "Change Signature", + null + ); + } + return; + } + runChangeSignature(project, functionDescriptor, emptyConfiguration(), bindingContext, context, null); }