From 8b7657405294038358b5086b9b7e73cd3457cac7 Mon Sep 17 00:00:00 2001 From: Mikhail Pyltsin Date: Mon, 15 Jan 2024 12:16:22 +0100 Subject: [PATCH] [java-actions] IDEA-343025 "Move initializer to constructor" shouldn't be available for implicitly declared class - disable for ImplicitClass GitOrigin-RevId: 1cd67fd89726eb19ccedb5227715a7d95c2c7c50 --- .../impl/MoveInitializerToConstructorAction.java | 1 + .../beforeImplicitClass.java | 10 ++++++++++ 2 files changed, 11 insertions(+) create mode 100644 java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/moveInitializerToConstructor/beforeImplicitClass.java diff --git a/java/java-impl/src/com/intellij/codeInsight/intention/impl/MoveInitializerToConstructorAction.java b/java/java-impl/src/com/intellij/codeInsight/intention/impl/MoveInitializerToConstructorAction.java index a711b94af18b..788728c30051 100644 --- a/java/java-impl/src/com/intellij/codeInsight/intention/impl/MoveInitializerToConstructorAction.java +++ b/java/java-impl/src/com/intellij/codeInsight/intention/impl/MoveInitializerToConstructorAction.java @@ -24,6 +24,7 @@ public final class MoveInitializerToConstructorAction extends BaseMoveInitialize protected boolean isAvailable(@NotNull PsiField field) { if (!super.isAvailable(field)) return false; PsiClass containingClass = field.getContainingClass(); + if (containingClass instanceof PsiImplicitClass) return false; assert containingClass != null; PsiMethod[] constructors = containingClass.getConstructors(); if (constructors.length > 0 && ContainerUtil.all(constructors, c -> c instanceof SyntheticElement)) return false; diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/moveInitializerToConstructor/beforeImplicitClass.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/moveInitializerToConstructor/beforeImplicitClass.java new file mode 100644 index 000000000000..61872c22ec4c --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/moveInitializerToConstructor/beforeImplicitClass.java @@ -0,0 +1,10 @@ +// "Move initializer to constructor" "false" +private final Integer i = 2; + +void main() { + foo(i); +} + +void foo(Integer i) { + System.out.println(i); +} \ No newline at end of file