diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/psiutils/WeakestTypeFinder.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/psiutils/WeakestTypeFinder.java index ae9a154b1b94..1440c58e5113 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/psiutils/WeakestTypeFinder.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/psiutils/WeakestTypeFinder.java @@ -417,11 +417,18 @@ public class WeakestTypeFinder { final PsiClass aClass2 = method2.getContainingClass(); if (aClass1 == null || aClass2 == null || aClass1.equals(aClass2)) { return 0; - } else if (aClass1.isInheritor(aClass2, true)) { + } else if (aClass1.isInterface() && !aClass2.isInterface()) { return -1; - } else { + } else if (!aClass1.isInterface() && aClass2.isInterface()) { return 1; + } else if (aClass1.isInheritor(aClass2, true)) { + return 1; + } else if (aClass2.isInheritor(aClass1, true)) { + return -1; } + final String name1 = aClass1.getName(); + final String name2 = aClass2.getName(); + return name1.compareTo(name2); } }); return result; diff --git a/plugins/InspectionGadgets/test/com/siyeh/igtest/abstraction/declare_collection_as_interface/DeclareCollectionAsInterface.java b/plugins/InspectionGadgets/test/com/siyeh/igtest/abstraction/declare_collection_as_interface/DeclareCollectionAsInterface.java index 8095fdcab236..e5c11992d86c 100644 --- a/plugins/InspectionGadgets/test/com/siyeh/igtest/abstraction/declare_collection_as_interface/DeclareCollectionAsInterface.java +++ b/plugins/InspectionGadgets/test/com/siyeh/igtest/abstraction/declare_collection_as_interface/DeclareCollectionAsInterface.java @@ -5,7 +5,7 @@ import java.util.*; public class DeclareCollectionAsInterface { private HashMap m_mapThree = new HashMap(2); - private HashMap m_setOne = new HashMap(2); + private HashMap m_setOne = new HashMap(2); private Map m_setTwo = new HashMap(2); public DeclareCollectionAsInterface() @@ -16,13 +16,13 @@ public class DeclareCollectionAsInterface public void fooBar() { - final HashMap map1 = new HashMap(2); + final HashMap map1 = new HashMap(2); final Map map2 = new HashMap(2); map1.put("foo", "foo"); map2.put("bar", "bar"); } - public void fooBaz(HashMap set1, Map set2) + public void fooBaz(HashMap set1, Map set2) { set1.put("foo", "foo"); set2.put("bar", "bar"); @@ -49,10 +49,10 @@ public class DeclareCollectionAsInterface } void makeItRight() { - ArrayList list22 = new ArrayList(); + ArrayList list22 = new ArrayList(); System.out.println(list22.get(0)); - ArrayList list33 = new ArrayList(); + ArrayList list33 = new ArrayList(); System.out.println(list33.get(0)); }