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 095349d0079c..b0448f91ef46 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 @@ -57,7 +57,8 @@ public class MoveInitializerToConstructorAction extends BaseMoveInitializerToMet PsiClassInitializer[] initializers = containingClass.getInitializers(); PsiElement[] elements = Arrays.stream(containingClass.getFields()) - .filter(f -> f.hasInitializer()).map(f -> f.getInitializer()) + .map(f -> f.getInitializer()) + .filter(Objects::nonNull) .toArray(PsiElement[]::new); return ReferencesSearch.search(field, new LocalSearchScope(ArrayUtil.mergeArrays(elements, initializers))).findFirst() == null; } diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/moveInitializerToConstructor/afterImplicitEnum.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/moveInitializerToConstructor/afterImplicitEnum.java new file mode 100644 index 000000000000..27561d89fba8 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/moveInitializerToConstructor/afterImplicitEnum.java @@ -0,0 +1,9 @@ +// "Move initializer to constructor" "true" +enum C { + foo; + private final String myExtension; + + C() { + myExtension = null; + } +} \ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/moveInitializerToConstructor/beforeImplicitEnum.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/moveInitializerToConstructor/beforeImplicitEnum.java new file mode 100644 index 000000000000..27356878822b --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/moveInitializerToConstructor/beforeImplicitEnum.java @@ -0,0 +1,8 @@ +// "Move initializer to constructor" "true" +enum C { + foo; + private final String myExtension = null; + + C() { + } +} \ No newline at end of file