diff --git a/idea/src/org/jetbrains/jet/plugin/quickfix/ChangeFunctionSignatureFix.java b/idea/src/org/jetbrains/jet/plugin/quickfix/ChangeFunctionSignatureFix.java index 280567b13fa..63fdb0c1575 100644 --- a/idea/src/org/jetbrains/jet/plugin/quickfix/ChangeFunctionSignatureFix.java +++ b/idea/src/org/jetbrains/jet/plugin/quickfix/ChangeFunctionSignatureFix.java @@ -21,10 +21,7 @@ import com.intellij.psi.PsiNameIdentifierOwner; import com.intellij.psi.util.PsiTreeUtil; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.jetbrains.jet.lang.descriptors.CallableDescriptor; -import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor; -import org.jetbrains.jet.lang.descriptors.FunctionDescriptor; -import org.jetbrains.jet.lang.descriptors.ValueParameterDescriptor; +import org.jetbrains.jet.lang.descriptors.*; import org.jetbrains.jet.lang.diagnostics.Diagnostic; import org.jetbrains.jet.lang.diagnostics.DiagnosticWithParameters1; import org.jetbrains.jet.lang.diagnostics.DiagnosticWithParameters2; @@ -41,6 +38,8 @@ import org.jetbrains.jet.plugin.refactoring.changeSignature.JetParameterInfo; import java.util.List; +import static org.jetbrains.jet.lang.descriptors.CallableMemberDescriptor.Kind.SYNTHESIZED; + public abstract class ChangeFunctionSignatureFix extends JetIntentionAction { protected final PsiElement context; protected final FunctionDescriptor functionDescriptor; @@ -186,6 +185,11 @@ public abstract class ChangeFunctionSignatureFix extends JetIntentionAction2) +} \ No newline at end of file diff --git a/idea/testData/refactoring/changeSignature/SynthesizedBefore.kt b/idea/testData/refactoring/changeSignature/SynthesizedBefore.kt new file mode 100644 index 00000000000..534f3fdfdd8 --- /dev/null +++ b/idea/testData/refactoring/changeSignature/SynthesizedBefore.kt @@ -0,0 +1,5 @@ +data class Data(val i: Int) {} + +fun usage(d: Data) { + d.component1() +} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/jet/plugin/quickfix/QuickFixTestGenerated.java b/idea/tests/org/jetbrains/jet/plugin/quickfix/QuickFixTestGenerated.java index d50f825cfac..40eb97f6be1 100644 --- a/idea/tests/org/jetbrains/jet/plugin/quickfix/QuickFixTestGenerated.java +++ b/idea/tests/org/jetbrains/jet/plugin/quickfix/QuickFixTestGenerated.java @@ -414,6 +414,11 @@ public class QuickFixTestGenerated extends AbstractQuickFixTest { doTest("idea/testData/quickfix/changeSignature/beforeLinearHierarchy.kt"); } + @TestMetadata("beforeNotAvailableForSynthesized.kt") + public void testNotAvailableForSynthesized() throws Exception { + doTest("idea/testData/quickfix/changeSignature/beforeNotAvailableForSynthesized.kt"); + } + @TestMetadata("beforeRemoveConstructorParameter.kt") public void testRemoveConstructorParameter() throws Exception { doTest("idea/testData/quickfix/changeSignature/beforeRemoveConstructorParameter.kt"); diff --git a/idea/tests/org/jetbrains/jet/plugin/refactoring/changeSignature/JetChangeSignatureTest.java b/idea/tests/org/jetbrains/jet/plugin/refactoring/changeSignature/JetChangeSignatureTest.java index 9812d8c20a5..84677708e09 100644 --- a/idea/tests/org/jetbrains/jet/plugin/refactoring/changeSignature/JetChangeSignatureTest.java +++ b/idea/tests/org/jetbrains/jet/plugin/refactoring/changeSignature/JetChangeSignatureTest.java @@ -34,6 +34,7 @@ import org.jetbrains.jet.lang.resolve.BindingContext; import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns; import org.jetbrains.jet.plugin.PluginTestCaseBase; import org.jetbrains.jet.plugin.project.AnalyzerFacadeWithCache; +import org.jetbrains.jet.plugin.refactoring.JetRefactoringBundle; import java.io.File; import java.util.ArrayList; @@ -80,6 +81,17 @@ public class JetChangeSignatureTest extends LightCodeInsightTestCase { doTest(changeInfo); } + public void testSynthesized() throws Exception { + try { + getChangeInfo(); + } + catch (CommonRefactoringUtil.RefactoringErrorHintException e) { + assertEquals(JetRefactoringBundle.message("cannot.refactor.synthesized.function", "component1"), e.getMessage()); + return; + } + fail(); + } + public void testPreferContainedInClass() throws Exception { JetChangeInfo changeInfo = getChangeInfo(); assertEquals("param", changeInfo.getNewParameters()[0].getName());