From f9b836e1442521472f34548dc66a41b734d38189 Mon Sep 17 00:00:00 2001 From: Alexey Sedunov Date: Wed, 8 Jul 2015 12:31:24 +0300 Subject: [PATCH] Change Signature: Error reporting for Java class without an explicit constructor --- .../changeSignature/JetChangeSignatureHandler.kt | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/JetChangeSignatureHandler.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/JetChangeSignatureHandler.kt index 84ad0cce76c..811b31f661a 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/JetChangeSignatureHandler.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/JetChangeSignatureHandler.kt @@ -18,13 +18,16 @@ package org.jetbrains.kotlin.idea.refactoring.changeSignature import com.intellij.openapi.actionSystem.CommonDataKeys import com.intellij.openapi.actionSystem.DataContext +import com.intellij.openapi.application.ApplicationManager import com.intellij.openapi.editor.Editor import com.intellij.openapi.editor.ScrollType import com.intellij.openapi.project.Project +import com.intellij.psi.PsiClass import com.intellij.psi.PsiElement import com.intellij.psi.PsiFile import com.intellij.psi.PsiMethod import com.intellij.psi.util.PsiTreeUtil +import com.intellij.refactoring.BaseRefactoringProcessor import com.intellij.refactoring.HelpID import com.intellij.refactoring.RefactoringBundle import com.intellij.refactoring.changeSignature.ChangeSignatureHandler @@ -126,6 +129,16 @@ public class JetChangeSignatureHandler : ChangeSignatureHandler { if (callableDescriptor is JavaCallableMemberDescriptor) { val declaration = DescriptorToSourceUtilsIde.getAnyDeclaration(project, callableDescriptor) + if (declaration is PsiClass) { + val message = RefactoringBundle.getCannotRefactorMessage( + RefactoringBundle.message("error.wrong.caret.position.method.or.class.name") + ) + CommonRefactoringUtil.showErrorHint(project, + editor, + message, + ChangeSignatureHandler.REFACTORING_NAME, "refactoring.changeSignature") + return + } assert(declaration is PsiMethod) { "PsiMethod expected: $callableDescriptor" } ChangeSignatureUtil.invokeChangeSignatureOn(declaration as PsiMethod, project) return