From ba929cc8ea5196d95f5d474eabced09a43b9c536 Mon Sep 17 00:00:00 2001 From: Bas Leijdekkers Date: Mon, 30 Mar 2015 17:19:17 +0200 Subject: [PATCH] sort 'default' modifier correctly in "Missorted modifiers" inspection --- .../style/MissortedModifiersInspection.java | 17 +++--- .../MissortedModifiers.java | 54 +++++++++++++++++++ .../MissortedModifiersInspectionTest.java | 36 +++++++++++++ 3 files changed, 99 insertions(+), 8 deletions(-) create mode 100644 plugins/InspectionGadgets/test/com/siyeh/igtest/style/missorted_modifiers/MissortedModifiers.java create mode 100644 plugins/InspectionGadgets/testsrc/com/siyeh/ig/style/MissortedModifiersInspectionTest.java diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/MissortedModifiersInspection.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/MissortedModifiersInspection.java index ebb7d494e008..e4770a2788a2 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/MissortedModifiersInspection.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/MissortedModifiersInspection.java @@ -1,5 +1,5 @@ /* - * Copyright 2003-2007 Dave Griffith, Bas Leijdekkers + * Copyright 2003-2015 Dave Griffith, Bas Leijdekkers * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -221,13 +221,14 @@ public class MissortedModifiersInspection extends BaseInspection implements Clea s_modifierOrder.put(PsiModifier.PROTECTED, Integer.valueOf(1)); s_modifierOrder.put(PsiModifier.PRIVATE, Integer.valueOf(2)); s_modifierOrder.put(PsiModifier.ABSTRACT, Integer.valueOf(3)); - s_modifierOrder.put(PsiModifier.STATIC, Integer.valueOf(4)); - s_modifierOrder.put(PsiModifier.FINAL, Integer.valueOf(5)); - s_modifierOrder.put(PsiModifier.TRANSIENT, Integer.valueOf(6)); - s_modifierOrder.put(PsiModifier.VOLATILE, Integer.valueOf(7)); - s_modifierOrder.put(PsiModifier.SYNCHRONIZED, Integer.valueOf(8)); - s_modifierOrder.put(PsiModifier.NATIVE, Integer.valueOf(9)); - s_modifierOrder.put(PsiModifier.STRICTFP, Integer.valueOf(10)); + s_modifierOrder.put(PsiModifier.DEFAULT, Integer.valueOf(4)); + s_modifierOrder.put(PsiModifier.STATIC, Integer.valueOf(5)); + s_modifierOrder.put(PsiModifier.FINAL, Integer.valueOf(6)); + s_modifierOrder.put(PsiModifier.TRANSIENT, Integer.valueOf(7)); + s_modifierOrder.put(PsiModifier.VOLATILE, Integer.valueOf(8)); + s_modifierOrder.put(PsiModifier.SYNCHRONIZED, Integer.valueOf(9)); + s_modifierOrder.put(PsiModifier.NATIVE, Integer.valueOf(10)); + s_modifierOrder.put(PsiModifier.STRICTFP, Integer.valueOf(11)); } @Override diff --git a/plugins/InspectionGadgets/test/com/siyeh/igtest/style/missorted_modifiers/MissortedModifiers.java b/plugins/InspectionGadgets/test/com/siyeh/igtest/style/missorted_modifiers/MissortedModifiers.java new file mode 100644 index 000000000000..d6c0da1ba0c8 --- /dev/null +++ b/plugins/InspectionGadgets/test/com/siyeh/igtest/style/missorted_modifiers/MissortedModifiers.java @@ -0,0 +1,54 @@ +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Target; +import java.util.Hashtable; + + +class MissortedModifiers { + private native static int foo2(); + + static private int m_bar = 4; + static public int m_baz = 4; + static final public int m_baz2 = 4; + static final int m_baz3 = 4; + + static public void foo(){} + + static public class Foo + { + + } + + public @Deprecated void foo3(){}; + + private transient static Hashtable mAttributeMeta; + + interface A { + + default public double f() { + return 0.0; + } + } + + final public class TestQuickFix + { + protected final static String A = "a"; + protected final static String B = "b"; + protected final static String C = "c"; + protected final static String D = "d"; + } + + //@Type(type = "org.joda.time.contrib.hibernate.PersistentYearMonthDay") + //@Column(name = "current_month") + final + public + @Nullable + // commment + @NotNull + int //@Temporal(TemporalType.DATE) + x() {return -1;} +} +@Target(ElementType.TYPE_USE) +@interface ReadOnly {} \ No newline at end of file diff --git a/plugins/InspectionGadgets/testsrc/com/siyeh/ig/style/MissortedModifiersInspectionTest.java b/plugins/InspectionGadgets/testsrc/com/siyeh/ig/style/MissortedModifiersInspectionTest.java new file mode 100644 index 000000000000..2add51330fc9 --- /dev/null +++ b/plugins/InspectionGadgets/testsrc/com/siyeh/ig/style/MissortedModifiersInspectionTest.java @@ -0,0 +1,36 @@ +/* + * Copyright 2000-2015 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.siyeh.ig.style; + +import com.intellij.codeInspection.InspectionProfileEntry; +import com.siyeh.ig.LightInspectionTestCase; +import org.jetbrains.annotations.Nullable; + +/** + * @author Bas Leijdekkers + */ +public class MissortedModifiersInspectionTest extends LightInspectionTestCase { + + public void testMissortedModifiers() { + doTest(); + } + + @Nullable + @Override + protected InspectionProfileEntry getInspection() { + return new MissortedModifiersInspection(); + } +}