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