From 93479e1f9909c23ffcd69dda2f292f968902c86e Mon Sep 17 00:00:00 2001 From: Tagir Valeev Date: Mon, 24 Aug 2020 18:28:39 +0700 Subject: [PATCH] [java-intentions] Remove 'Add constructor parameter' fix for record fields (IDEA-248139) As record instance field declaration is illegal, this action is useless anyway and only adds confusion GitOrigin-RevId: 4a1862f66c5a175fef675705e6af53ef5bae1f78 --- .../quickfix/CreateConstructorParameterFromFieldFix.java | 1 + .../beforeRecord.java | 4 ++++ .../CreateConstructorParameterFromFieldTest.java | 9 +++++++++ 3 files changed, 14 insertions(+) create mode 100644 java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/createConstructorParameterFromField/beforeRecord.java diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateConstructorParameterFromFieldFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateConstructorParameterFromFieldFix.java index 9c6c8228dbf8..7d15c80a8de1 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateConstructorParameterFromFieldFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateConstructorParameterFromFieldFix.java @@ -81,6 +81,7 @@ public class CreateConstructorParameterFromFieldFix implements IntentionAction { && !field.hasModifierProperty(PsiModifier.STATIC) && containingClass != null && !(containingClass instanceof PsiSyntheticClass) + && !containingClass.isRecord() && containingClass.getName() != null; } diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/createConstructorParameterFromField/beforeRecord.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/createConstructorParameterFromField/beforeRecord.java new file mode 100644 index 000000000000..39ae3fccbbb1 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/createConstructorParameterFromField/beforeRecord.java @@ -0,0 +1,4 @@ +// "Add constructor parameter" "false" +record R(int a, int b) { + private String str; +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/quickFix/CreateConstructorParameterFromFieldTest.java b/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/quickFix/CreateConstructorParameterFromFieldTest.java index 261d8f8c1dc2..d422ea91a9d6 100644 --- a/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/quickFix/CreateConstructorParameterFromFieldTest.java +++ b/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/quickFix/CreateConstructorParameterFromFieldTest.java @@ -18,10 +18,19 @@ package com.intellij.java.codeInsight.daemon.quickFix; import com.intellij.codeInsight.daemon.quickFix.LightQuickFixParameterizedTestCase; import com.intellij.codeInspection.deadCode.UnusedDeclarationInspection; import com.intellij.psi.codeStyle.JavaCodeStyleSettings; +import com.intellij.testFramework.LightProjectDescriptor; import com.siyeh.ig.style.MissortedModifiersInspection; import com.siyeh.ig.style.UnqualifiedFieldAccessInspection; +import org.jetbrains.annotations.NotNull; + +import static com.intellij.testFramework.fixtures.LightJavaCodeInsightFixtureTestCase.JAVA_15; public class CreateConstructorParameterFromFieldTest extends LightQuickFixParameterizedTestCase { + @Override + protected @NotNull LightProjectDescriptor getProjectDescriptor() { + return JAVA_15; + } + @Override protected void setUp() throws Exception { super.setUp();