From 6a0e6cffc4afb1b159f2b2b18dcc51c617055063 Mon Sep 17 00:00:00 2001 From: Bas Leijdekkers Date: Tue, 7 Aug 2012 21:21:52 +0200 Subject: [PATCH] IDEA-89838 (Configure inspection "'size() == 0' replaceable with 'isEmpty()'" to not flag inside custom implementations of Collection.) --- .../ig/style/SizeReplaceableByIsEmptyInspection.java | 4 ++++ .../SizeReplaceableByIsEmpty.java | 8 ++++++++ 2 files changed, 12 insertions(+) diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/style/SizeReplaceableByIsEmptyInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/style/SizeReplaceableByIsEmptyInspection.java index 35f57a45f222..0ae7b1cdeb1d 100644 --- a/plugins/InspectionGadgets/src/com/siyeh/ig/style/SizeReplaceableByIsEmptyInspection.java +++ b/plugins/InspectionGadgets/src/com/siyeh/ig/style/SizeReplaceableByIsEmptyInspection.java @@ -22,6 +22,7 @@ import com.intellij.openapi.project.Project; import com.intellij.psi.*; import com.intellij.psi.tree.IElementType; import com.intellij.psi.util.InheritanceUtil; +import com.intellij.psi.util.PsiTreeUtil; import com.intellij.util.IncorrectOperationException; import com.intellij.util.containers.OrderedSet; import com.intellij.util.ui.CheckBox; @@ -209,6 +210,9 @@ public class SizeReplaceableByIsEmptyInspection extends BaseInspection { if (aClass == null) { return null; } + if (PsiTreeUtil.isAncestor(aClass, callExpression, true)) { + return null; + } for (String ignoredType : ignoredTypes) { if (InheritanceUtil.isInheritor(aClass, ignoredType)) { return null; diff --git a/plugins/InspectionGadgets/test/com/siyeh/igtest/style/size_replaceable_by_is_empty/SizeReplaceableByIsEmpty.java b/plugins/InspectionGadgets/test/com/siyeh/igtest/style/size_replaceable_by_is_empty/SizeReplaceableByIsEmpty.java index 343e77fc7330..2f13010fbcd2 100644 --- a/plugins/InspectionGadgets/test/com/siyeh/igtest/style/size_replaceable_by_is_empty/SizeReplaceableByIsEmpty.java +++ b/plugins/InspectionGadgets/test/com/siyeh/igtest/style/size_replaceable_by_is_empty/SizeReplaceableByIsEmpty.java @@ -25,4 +25,12 @@ public class SizeReplaceableByIsEmpty { return false; } } + + abstract class MyList implements java.util.List + { + public boolean isEmpty() + { + return this.size() == 0; + } + } }