From e836aa498028125decb9a6ff6748d7262c083808 Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Thu, 3 Mar 2016 13:41:25 +0100 Subject: [PATCH] invert boolean: leave final fields without initializer as is (IDEA-152514) --- .../invertBoolean/JavaInvertBooleanDelegate.java | 2 +- .../FinalBooleanFieldWithoutInitializer.java | 8 ++++++++ .../FinalBooleanFieldWithoutInitializer_after.java | 8 ++++++++ 3 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 java/java-tests/testData/refactoring/invertBoolean/FinalBooleanFieldWithoutInitializer.java create mode 100644 java/java-tests/testData/refactoring/invertBoolean/FinalBooleanFieldWithoutInitializer_after.java diff --git a/java/java-impl/src/com/intellij/refactoring/invertBoolean/JavaInvertBooleanDelegate.java b/java/java-impl/src/com/intellij/refactoring/invertBoolean/JavaInvertBooleanDelegate.java index 695c8366f498..bfce10125b1f 100644 --- a/java/java-impl/src/com/intellij/refactoring/invertBoolean/JavaInvertBooleanDelegate.java +++ b/java/java-impl/src/com/intellij/refactoring/invertBoolean/JavaInvertBooleanDelegate.java @@ -182,7 +182,7 @@ public class JavaInvertBooleanDelegate extends InvertBooleanDelegate { @Override public void invertElementInitializer(final PsiElement element) { - if (element instanceof PsiField && ((PsiField)element).getInitializer() == null) { + if (element instanceof PsiField && ((PsiField)element).getInitializer() == null && !((PsiField)element).hasModifierProperty(PsiModifier.FINAL)) { ((PsiField)element).setInitializer(JavaPsiFacade.getElementFactory(element.getProject()).createExpressionFromText("true", element)); } else if (element instanceof PsiVariable) { final PsiExpression initializer = ((PsiVariable)element).getInitializer(); diff --git a/java/java-tests/testData/refactoring/invertBoolean/FinalBooleanFieldWithoutInitializer.java b/java/java-tests/testData/refactoring/invertBoolean/FinalBooleanFieldWithoutInitializer.java new file mode 100644 index 000000000000..4dffe6cf8af9 --- /dev/null +++ b/java/java-tests/testData/refactoring/invertBoolean/FinalBooleanFieldWithoutInitializer.java @@ -0,0 +1,8 @@ +class Test { + private final boolean notInitialized; + + public Test() { + notInitialized = true; + } + +} \ No newline at end of file diff --git a/java/java-tests/testData/refactoring/invertBoolean/FinalBooleanFieldWithoutInitializer_after.java b/java/java-tests/testData/refactoring/invertBoolean/FinalBooleanFieldWithoutInitializer_after.java new file mode 100644 index 000000000000..1898a4144c8d --- /dev/null +++ b/java/java-tests/testData/refactoring/invertBoolean/FinalBooleanFieldWithoutInitializer_after.java @@ -0,0 +1,8 @@ +class Test { + private final boolean notInitializedInverted; + + public Test() { + notInitializedInverted = false; + } + +} \ No newline at end of file