diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightUtil.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightUtil.java index 3a54ada2c167..fbfa4f463cda 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightUtil.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightUtil.java @@ -78,7 +78,7 @@ public class HighlightUtil { private static final Map> ourClassInitializerIncompatibleModifiers; private static final Set ourConstructorNotAllowedModifiers; - @NonNls private static final String SERIAL_VERSION_UID_FIELD_NAME = "serialVersionUID"; + @NonNls public static final String SERIAL_VERSION_UID_FIELD_NAME = "serialVersionUID"; @NonNls private static final String SERIAL_PERSISTENT_FIELDS_FIELD_NAME = "serialPersistentFields"; private static final QuickFixFactory QUICK_FIX_FACTORY = QuickFixFactory.getInstance(); diff --git a/java/java-impl/src/com/intellij/codeInsight/folding/impl/JavaFoldingBuilder.java b/java/java-impl/src/com/intellij/codeInsight/folding/impl/JavaFoldingBuilder.java index d5adb200b0cf..e183c5d8e9da 100644 --- a/java/java-impl/src/com/intellij/codeInsight/folding/impl/JavaFoldingBuilder.java +++ b/java/java-impl/src/com/intellij/codeInsight/folding/impl/JavaFoldingBuilder.java @@ -16,6 +16,7 @@ package com.intellij.codeInsight.folding.impl; import com.intellij.codeInsight.daemon.impl.CollectHighlightsUtil; +import com.intellij.codeInsight.daemon.impl.analysis.HighlightUtil; import com.intellij.codeInsight.folding.JavaCodeFoldingSettings; import com.intellij.codeInsight.generation.OverrideImplementUtil; import com.intellij.lang.ASTNode; @@ -565,8 +566,14 @@ public class JavaFoldingBuilder extends CustomFoldingBuilder implements DumbAwar } private static boolean hasOnlyOneMethod(@NotNull PsiAnonymousClass anonymousClass, boolean checkResolve) { - if (anonymousClass.getFields().length != 0) { - return false; + PsiField[] fields = anonymousClass.getFields(); + if (fields.length != 0) { + if (fields.length == 1 && HighlightUtil.SERIAL_VERSION_UID_FIELD_NAME.equals(fields[0].getName()) && + fields[0].hasModifierProperty(PsiModifier.STATIC)) { + //ok + } else { + return false; + } } if (anonymousClass.getInitializers().length != 0) { return false; diff --git a/java/java-impl/src/com/intellij/codeInspection/deadCode/UnusedDeclarationInspection.java b/java/java-impl/src/com/intellij/codeInspection/deadCode/UnusedDeclarationInspection.java index d4d740f832b7..02dff3f737f1 100644 --- a/java/java-impl/src/com/intellij/codeInspection/deadCode/UnusedDeclarationInspection.java +++ b/java/java-impl/src/com/intellij/codeInspection/deadCode/UnusedDeclarationInspection.java @@ -30,6 +30,7 @@ import com.intellij.analysis.AnalysisScope; import com.intellij.codeInsight.AnnotationUtil; import com.intellij.codeInsight.daemon.GroupNames; import com.intellij.codeInsight.daemon.ImplicitUsageProvider; +import com.intellij.codeInsight.daemon.impl.analysis.HighlightUtil; import com.intellij.codeInsight.intention.IntentionAction; import com.intellij.codeInspection.*; import com.intellij.codeInspection.ex.*; @@ -266,7 +267,7 @@ public class UnusedDeclarationInspection extends FilteringInspectionTool { private static boolean isSerializationImplicitlyUsedField(PsiField field) { @NonNls final String name = field.getName(); - if (!"serialVersionUID".equals(name) && !"serialPersistentFields".equals(name)) return false; + if (!HighlightUtil.SERIAL_VERSION_UID_FIELD_NAME.equals(name) && !"serialPersistentFields".equals(name)) return false; if (!field.hasModifierProperty(PsiModifier.STATIC)) return false; PsiClass aClass = field.getContainingClass(); return aClass == null || isSerializable(aClass, null); diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/folding/JavaFoldingTest.groovy b/java/java-tests/testSrc/com/intellij/codeInsight/folding/JavaFoldingTest.groovy index 341073fbf254..20830a89f107 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/folding/JavaFoldingTest.groovy +++ b/java/java-tests/testSrc/com/intellij/codeInsight/folding/JavaFoldingTest.groovy @@ -174,6 +174,7 @@ class Test { class Test { void test() { new Runnable() { + static final long serialVersionUID = 42L; public void run() { System.out.println(); } diff --git a/plugins/InspectionGadgets/src/com/siyeh/HardcodedMethodConstants.java b/plugins/InspectionGadgets/src/com/siyeh/HardcodedMethodConstants.java index 2d10d5529ec2..5ab72dbf62ce 100644 --- a/plugins/InspectionGadgets/src/com/siyeh/HardcodedMethodConstants.java +++ b/plugins/InspectionGadgets/src/com/siyeh/HardcodedMethodConstants.java @@ -15,6 +15,7 @@ */ package com.siyeh; +import com.intellij.codeInsight.daemon.impl.analysis.HighlightUtil; import org.jetbrains.annotations.NonNls; /** @@ -57,7 +58,7 @@ public class HardcodedMethodConstants { public static final String PRINT_STACK_TRACE = "printStackTrace"; public static final String REMOVE = "remove"; public static final String RUN = "run"; - public static final String SERIAL_VERSION_UID = "serialVersionUID"; + public static final String SERIAL_VERSION_UID = HighlightUtil.SERIAL_VERSION_UID_FIELD_NAME; public static final String SET = "set"; public static final String SIZE = "size"; public static final String STARTS_WITH = "startsWith";