From f761cebead50e54d65dcad52c7ae1bae4da420d3 Mon Sep 17 00:00:00 2001 From: Bas Leijdekkers Date: Thu, 6 Feb 2014 14:03:18 +0100 Subject: [PATCH] better warning message & more tests --- .../siyeh/InspectionGadgetsBundle.properties | 2 +- ...ionsMustHaveInitialCapacityInspection.java | 40 ---------------- ...MustHaveInitialCapacityInspectionTest.java | 48 ++++++++++++++++++- 3 files changed, 47 insertions(+), 43 deletions(-) delete mode 100644 plugins/InspectionGadgets/test/com/siyeh/igtest/performance/CollectionsMustHaveInitialCapacityInspection.java diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/InspectionGadgetsBundle.properties b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/InspectionGadgetsBundle.properties index 98a4c8270127..2ed2a1ce9f00 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/InspectionGadgetsBundle.properties +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/InspectionGadgetsBundle.properties @@ -1050,7 +1050,7 @@ string.buffer.replaceable.by.string.builder.problem.descriptor=StringBuffe string.buffer.replaceable.by.string.problem.descriptor={0} #ref can be replaced with ''String'' #loc new.string.buffer.replaceable.by.string.problem.descriptor=#ref can be replaced with 'String' #loc string.replaceable.by.string.buffer.problem.descriptor=Non-constant String #ref should probably be declared as ''StringBuilder'' #loc -collections.must.have.initial.capacity.problem.descriptor=#ref without initial capacity #loc +collections.must.have.initial.capacity.problem.descriptor=new #ref() without initial capacity #loc string.concatenation.in.loops.problem.descriptor=String concatenation #ref in loop #loc string.concatenation.inside.string.buffer.append.problem.descriptor=String concatenation as argument to {0}.#ref() call #loc boolean.constructor.problem.descriptor=Boolean constructor call #loc diff --git a/plugins/InspectionGadgets/test/com/siyeh/igtest/performance/CollectionsMustHaveInitialCapacityInspection.java b/plugins/InspectionGadgets/test/com/siyeh/igtest/performance/CollectionsMustHaveInitialCapacityInspection.java deleted file mode 100644 index 56e19ae5e399..000000000000 --- a/plugins/InspectionGadgets/test/com/siyeh/igtest/performance/CollectionsMustHaveInitialCapacityInspection.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.siyeh.igtest.performance; - -import java.io.IOException; -import java.util.*; - -public class CollectionsMustHaveInitialCapacityInspection -{ - public CollectionsMustHaveInitialCapacityInspection() - { - } - - public void foo() throws IOException - { - // new HashMap(); - // new HashMap(3); - - new HashMap(); - new HashMap(3); - - new WeakHashMap(); - new WeakHashMap(3); - - new HashSet(); - new HashSet(3); - - new Hashtable(); - new Hashtable(3); - - new BitSet(); - new BitSet(3); - - new Vector(); - new Vector(3); - - new ArrayList(); - new ArrayList(3); - - - } -} \ No newline at end of file diff --git a/plugins/InspectionGadgets/testsrc/com/siyeh/ig/performance/CollectionsMustHaveInitialCapacityInspectionTest.java b/plugins/InspectionGadgets/testsrc/com/siyeh/ig/performance/CollectionsMustHaveInitialCapacityInspectionTest.java index 256456a1e785..20460ad73040 100644 --- a/plugins/InspectionGadgets/testsrc/com/siyeh/ig/performance/CollectionsMustHaveInitialCapacityInspectionTest.java +++ b/plugins/InspectionGadgets/testsrc/com/siyeh/ig/performance/CollectionsMustHaveInitialCapacityInspectionTest.java @@ -31,11 +31,55 @@ public class CollectionsMustHaveInitialCapacityInspectionTest extends LightInspe protected String[] getEnvironmentClasses() { return new String[] { "package java.util.concurrent;" + - "public class ConcurrentHashMap {}" + "public class ConcurrentHashMap {}", + "package java.util;" + + "public class WeakHashMap {" + + " public WeakHashMap() {}" + + " public WeakHashMap(int c) {}" + + "}", + "package java.util;" + + "public class HashSet {" + + " public HashSet() {}" + + " public HashSet(int c) {}" + + "}", + "package java.util;" + + "public class BitSet {" + + " public BitSet() {}" + + " public BitSet(int c) {}" + + "}", + "package java.util;" + + "public class Vector {" + + " public Vector() {}" + + " public Vector(int c) {}" + + "}" }; } public void testSimple() { - doStatementTest("new /*'java.util.concurrent.ConcurrentHashMap' without initial capacity*/java.util.concurrent.ConcurrentHashMap/**/();"); + doStatementTest("new /*'new java.util.concurrent.ConcurrentHashMap()' without initial capacity*/java.util.concurrent.ConcurrentHashMap/**/();"); + } + + public void testMore() { + doTest("import java.util.*;" + + "class X {" + + " void m() {" + + " new /*'new HashMap()' without initial capacity*/HashMap/**/();" + + " new HashMap(3);" + + " new /*'new HashMap()' without initial capacity*/HashMap/**/();" + + " new HashMap(3);" + + " new /*'new WeakHashMap()' without initial capacity*/WeakHashMap/**/();" + + " new WeakHashMap(3);" + + " new /*'new HashSet()' without initial capacity*/HashSet/**/();" + + " new HashSet(3);" + + " new /*'new Hashtable()' without initial capacity*/Hashtable/**/();" + + " new Hashtable(3);" + + " new /*'new BitSet()' without initial capacity*/BitSet/**/();" + + " new BitSet(3);" + + " new /*'new Vector()' without initial capacity*/Vector/**/();" + + " new Vector(3);" + + " new /*'new ArrayList()' without initial capacity*/ArrayList/**/();" + + " new ArrayList(3);" + + " }" + + "}"); } }