Browse Source

Redundant Collection.addAll() call

Reports Collection.addAll() and Map.putAll() calls after instantiation of a collection using a constructor call without arguments. Such constructs can be replaced with a single call to a parametrized constructor which simplifies code. Also for some collections the replacement might be more performant.

Signed-off-by: Lars Grefer <eclipse@larsgrefer.de>
tags/V1_9_7M1
Lars Grefer 3 years ago
parent
commit
2409bcbc7c
28 changed files with 41 additions and 78 deletions
  1. 1
    2
      ajde.core/src/main/java/org/aspectj/ajde/core/internal/AjdeCoreBuildManager.java
  2. 1
    2
      ajde.core/src/test/java/org/aspectj/ajde/core/tests/ShowWeaveMessagesTest.java
  3. 1
    2
      bcel-builder/src/main/java/org/aspectj/apache/bcel/generic/InstructionHandle.java
  4. 1
    2
      build/src/main/java/org/aspectj/internal/tools/ant/taskdefs/Checklics.java
  5. 1
    2
      build/src/main/java/org/aspectj/internal/tools/build/SampleGatherer.java
  6. 1
    2
      org.aspectj.ajdt.core/src/main/java/org/aspectj/ajdt/ajc/BuildArgParser.java
  7. 1
    2
      org.aspectj.ajdt.core/src/main/java/org/aspectj/ajdt/internal/compiler/lookup/AjLookupEnvironment.java
  8. 1
    2
      org.aspectj.ajdt.core/src/main/java/org/aspectj/ajdt/internal/core/builder/AjBuildConfig.java
  9. 1
    2
      org.aspectj.ajdt.core/src/test/java/org/aspectj/ajdt/internal/compiler/batch/IncrementalCase.java
  10. 1
    2
      org.aspectj.matcher/src/main/java/org/aspectj/weaver/CrosscuttingMembers.java
  11. 1
    2
      org.aspectj.matcher/src/test/java/org/aspectj/weaver/patterns/ParserTestCase.java
  12. 1
    2
      taskdefs/src/main/java/org/aspectj/tools/ant/taskdefs/AjcTask.java
  13. 1
    2
      taskdefs/src/main/java/org/aspectj/tools/ant/taskdefs/compilers/Ajc.java
  14. 1
    2
      testing-drivers/src/test/java/org/aspectj/testing/drivers/Harness.java
  15. 2
    4
      testing/src/test/java/org/aspectj/testing/OutputSpec.java
  16. 1
    2
      testing/src/test/java/org/aspectj/testing/harness/bridge/JavaRun.java
  17. 2
    3
      testing/src/test/java/org/aspectj/testing/util/FileUtil.java
  18. 5
    8
      testing/src/test/java/org/aspectj/testing/util/LangUtil.java
  19. 2
    4
      testing/src/test/java/org/aspectj/testing/util/LangUtilTest.java
  20. 2
    3
      testing/src/test/java/org/aspectj/testing/util/MessageUtilTest.java
  21. 3
    6
      testing/src/test/java/org/aspectj/testing/util/TestDiffs.java
  22. 1
    2
      tests/src/test/java/org/aspectj/systemtest/model/ModelTestCase.java
  23. 1
    2
      util/src/main/java/org/aspectj/util/LangUtil.java
  24. 1
    2
      util/src/test/java/org/aspectj/util/FileUtilTest.java
  25. 2
    4
      weaver/src/main/java/org/aspectj/weaver/bcel/BcelClassWeaver.java
  26. 1
    2
      weaver/src/test/java/org/aspectj/weaver/ReferenceTypeTestCase.java
  27. 2
    4
      weaver/src/test/java/org/aspectj/weaver/bcel/AroundWeaveTestCase.java
  28. 2
    4
      weaver/src/test/java/org/aspectj/weaver/tools/Java15PointcutExpressionTest.java

+ 1
- 2
ajde.core/src/main/java/org/aspectj/ajde/core/internal/AjdeCoreBuildManager.java View File

@@ -225,8 +225,7 @@ public class AjdeCoreBuildManager {
if (projectSourceFiles == null) {
return null;
}
List<String> l = new ArrayList<>();
l.addAll(projectSourceFiles);
List<String> l = new ArrayList<>(projectSourceFiles);
// If the processor options are specified build the command line options for the JDT compiler to see
String processor = compilerConfig.getProcessor();
if (processor != null && processor.length() != 0) {

+ 1
- 2
ajde.core/src/test/java/org/aspectj/ajde/core/tests/ShowWeaveMessagesTest.java View File

@@ -367,8 +367,7 @@ public class ShowWeaveMessagesTest extends AjdeCoreTestCase {
String line = null;
while ((line = fr.readLine()) != null)
fileContents.add(line);
List<String> originalFileContents = new ArrayList<>();
originalFileContents.addAll(fileContents);
List<String> originalFileContents = new ArrayList<>(fileContents);

// See if the messages match
int msgCount = 0;

+ 1
- 2
bcel-builder/src/main/java/org/aspectj/apache/bcel/generic/InstructionHandle.java View File

@@ -170,8 +170,7 @@ public class InstructionHandle implements java.io.Serializable {
}

public Set<InstructionTargeter> getTargetersCopy() {
Set<InstructionTargeter> copy = new HashSet<>();
copy.addAll(targeters);
Set<InstructionTargeter> copy = new HashSet<>(targeters);
return copy;
}


+ 1
- 2
build/src/main/java/org/aspectj/internal/tools/ant/taskdefs/Checklics.java View File

@@ -469,8 +469,7 @@ class HeaderInfo {
this.lastLine = lastLine;
this.file = file;
this.hasLicense = hasLicense;
List<String> newYears = new ArrayList<>();
newYears.addAll(years);
List<String> newYears = new ArrayList<>(years);
Collections.sort(newYears);
this.years = Collections.unmodifiableList(newYears);
if ((null == file) || !file.canWrite()) {

+ 1
- 2
build/src/main/java/org/aspectj/internal/tools/build/SampleGatherer.java View File

@@ -419,8 +419,7 @@ class Samples {
}

List<Sample> getSortedSamples(Comparator<Sample> comparer) {
ArrayList<Sample> result = new ArrayList<>();
result.addAll(samples);
ArrayList<Sample> result = new ArrayList<>(samples);
result.sort(comparer);
return result;
}

+ 1
- 2
org.aspectj.ajdt.core/src/main/java/org/aspectj/ajdt/ajc/BuildArgParser.java View File

@@ -152,8 +152,7 @@ public class BuildArgParser extends Main {

boolean incrementalMode = buildConfig.isIncrementalMode() || buildConfig.isIncrementalFileMode();

List<File> xmlfileList = new ArrayList<>();
xmlfileList.addAll(parser.getXmlFiles());
List<File> xmlfileList = new ArrayList<>(parser.getXmlFiles());

List<File> fileList = new ArrayList<>();
List<File> files = parser.getFiles();

+ 1
- 2
org.aspectj.ajdt.core/src/main/java/org/aspectj/ajdt/internal/compiler/lookup/AjLookupEnvironment.java View File

@@ -250,8 +250,7 @@ public class AjLookupEnvironment extends LookupEnvironment implements AnonymousC
Collections.addAll(typesToProcess, stbs);
}

List<SourceTypeBinding> stb2 = new ArrayList<>();
stb2.addAll(typesToProcess);
List<SourceTypeBinding> stb2 = new ArrayList<>(typesToProcess);

while (typesToProcess.size() > 0) {
// A side effect of weaveIntertypes() is that the processed type is removed from the collection

+ 1
- 2
org.aspectj.ajdt.core/src/main/java/org/aspectj/ajdt/internal/core/builder/AjBuildConfig.java View File

@@ -377,8 +377,7 @@ public class AjBuildConfig implements CompilerConfigurationChangeFlags {
* classpath), and output dir or jar
*/
public List<String> getFullClasspath() {
List<String> full = new ArrayList<>();
full.addAll(getBootclasspath()); // XXX Is it OK that boot classpath overrides inpath/injars/aspectpath?
List<String> full = new ArrayList<>(getBootclasspath()); // XXX Is it OK that boot classpath overrides inpath/injars/aspectpath?
for (File file: inJars) {
full.add(file.getAbsolutePath());
}

+ 1
- 2
org.aspectj.ajdt.core/src/test/java/org/aspectj/ajdt/internal/compiler/batch/IncrementalCase.java View File

@@ -121,8 +121,7 @@ public class IncrementalCase { // XXX NOT bound to junit - bridge tests?
List safeFiles = Collections.unmodifiableList(files);
log("Compiling ", safeFiles, handler);
if (1 == i) {
ArrayList<String> argList = new ArrayList<>();
argList.addAll(getBaseArgs(targetSrc, targetClasses));
ArrayList<String> argList = new ArrayList<>(getBaseArgs(targetSrc, targetClasses));
File[] fra = (File[]) safeFiles.toArray(new File[0]);
// sigh
argList.addAll(

+ 1
- 2
org.aspectj.matcher/src/main/java/org/aspectj/weaver/CrosscuttingMembers.java View File

@@ -293,8 +293,7 @@ public class CrosscuttingMembers {
theseShadowMungers.add(munger);
}
}
Set<ShadowMunger> tempSet = new HashSet<>();
tempSet.addAll(other.shadowMungers);
Set<ShadowMunger> tempSet = new HashSet<>(other.shadowMungers);
Set<ShadowMunger> otherShadowMungers = new HashSet<>();
Set<ShadowMunger> otherInlinedAroundMungers = new HashSet<>();
for (ShadowMunger munger : tempSet) {

+ 1
- 2
org.aspectj.matcher/src/test/java/org/aspectj/weaver/patterns/ParserTestCase.java View File

@@ -700,8 +700,7 @@ public class ParserTestCase extends PatternsTestCase {
WildAnnotationTypePattern watp = (WildAnnotationTypePattern) atp;
Map<String,String> m = watp.annotationValues;
Set<String> keys = m.keySet();
List<String> orderedKeys = new ArrayList<>();
orderedKeys.addAll(keys);
List<String> orderedKeys = new ArrayList<>(keys);
Collections.sort(orderedKeys);
StringBuffer sb = new StringBuffer();
for (Iterator<String> iterator = orderedKeys.iterator(); iterator.hasNext();) {

+ 1
- 2
taskdefs/src/main/java/org/aspectj/tools/ant/taskdefs/AjcTask.java View File

@@ -1159,7 +1159,6 @@ public class AjcTask extends MatchingTask {

// package-private for testing
String[] makeCommand() {
ArrayList result = new ArrayList();
if (0 < ignored.size()) {
for (Object o : ignored) {
logVerbose("ignored: " + o);
@@ -1182,7 +1181,7 @@ public class AjcTask extends MatchingTask {
outjarFixedup = true;
}

result.addAll(cmd.extractArguments());
ArrayList result = new ArrayList(cmd.extractArguments());
addListArgs(result);

String[] command = (String[]) result.toArray(new String[0]);

+ 1
- 2
taskdefs/src/main/java/org/aspectj/tools/ant/taskdefs/compilers/Ajc.java View File

@@ -53,8 +53,7 @@ public class Ajc extends DefaultCompilerAdapter {
"-encoding", "-target" });

private static List<String> finalList(String[] args) {
List<String> result = new ArrayList<>();
result.addAll(Arrays.asList(args));
List<String> result = new ArrayList<>(Arrays.asList(args));
return Collections.unmodifiableList(result);
}


+ 1
- 2
testing-drivers/src/test/java/org/aspectj/testing/drivers/Harness.java View File

@@ -213,8 +213,7 @@ public class Harness {
// read arguments
final ArrayList<String> globals = new ArrayList<>();
final ArrayList<String> files = new ArrayList<>();
final LinkedList<String> argList = new LinkedList<>();
argList.addAll(Arrays.asList(args));
final LinkedList<String> argList = new LinkedList<>(Arrays.asList(args));
for (int i = 0; i < argList.size(); i++) {
String arg = argList.get(i);
List<String> aliases = aliasOptions(arg);

+ 2
- 4
testing/src/test/java/org/aspectj/testing/OutputSpec.java View File

@@ -87,10 +87,8 @@ public class OutputSpec {
createFailureMessage(output, -1, outputFound.size());
return;
}
List<String> expected = new ArrayList<>();
expected.addAll(expectedOutputLines);
List<String> found = new ArrayList<>();
found.addAll(outputFound);
List<String> expected = new ArrayList<>(expectedOutputLines);
List<String> found = new ArrayList<>(outputFound);
for (String lineFound : outputFound) {
for (String lineExpected : expectedOutputLines) {
if (lineFound.contains(lineExpected)) {

+ 1
- 2
testing/src/test/java/org/aspectj/testing/harness/bridge/JavaRun.java View File

@@ -167,8 +167,7 @@ public class JavaRun implements IAjcRun {
File[] files = sandbox.findFiles(spec.aspectpath);
aspectURLs = FileUtil.getFileURLs(files);
}
ArrayList classpath = new ArrayList();
classpath.addAll(Arrays.asList(aspectURLs));
ArrayList classpath = new ArrayList(Arrays.asList(aspectURLs));
final URL[] classURLs;
{
classpath.addAll(Arrays.asList(clAndLibs));

+ 2
- 3
testing/src/test/java/org/aspectj/testing/util/FileUtil.java View File

@@ -185,9 +185,8 @@ public class FileUtil {
// skip if not file or not right time
return false;
}
};
ArrayList unexp = new ArrayList();
unexp.addAll(Arrays.asList(dir.listFiles(touchedCollector)));
};
ArrayList unexp = new ArrayList(Arrays.asList(dir.listFiles(touchedCollector)));
// report any unexpected changes
return Diffs.makeDiffs(label, expected, unexp, String.CASE_INSENSITIVE_ORDER);

+ 5
- 8
testing/src/test/java/org/aspectj/testing/util/LangUtil.java View File

@@ -402,8 +402,7 @@ public class LangUtil {
* @see Util#combine(Object[], Object[])
*/
public static String[] combine(String[] one, String[] two) {
ArrayList twoList = new ArrayList();
twoList.addAll(org.aspectj.util.LangUtil.arrayAsList(two));
ArrayList twoList = new ArrayList(org.aspectj.util.LangUtil.arrayAsList(two));
ArrayList result = new ArrayList();
if (null != one) {
for (String s : one) {
@@ -938,13 +937,11 @@ public class LangUtil {
if ((0 == actualListIn.size()) && (0 == expectedListIn.size()) ) {
return;
}
ArrayList expected = new ArrayList();
expected.addAll(expectedListIn);

ArrayList expected = new ArrayList(expectedListIn);
expected.sort(comparator);
ArrayList actual = new ArrayList();
actual.addAll(actualListIn);

ArrayList actual = new ArrayList(actualListIn);
actual.sort(comparator);
Iterator actualIter = actual.iterator();
Object act = null;

+ 2
- 4
testing/src/test/java/org/aspectj/testing/util/LangUtilTest.java View File

@@ -269,8 +269,7 @@ public class LangUtilTest extends TestCase {
if (unmodifiable) {
return Collections.unmodifiableList(Arrays.asList(ra));
} else {
ArrayList list = new ArrayList();
list.addAll(Arrays.asList(ra));
ArrayList list = new ArrayList(Arrays.asList(ra));
return list;
}
}
@@ -317,8 +316,7 @@ public class LangUtilTest extends TestCase {
String label = one + "?=" + two;
assertTrue(label, (null == one) == (null == two));
if (null != one) {
ArrayList aone = new ArrayList();
aone.addAll(one);
ArrayList aone = new ArrayList(one);
ArrayList atwo = new ArrayList();
aone.addAll(two);
Collections.sort(aone);

+ 2
- 3
testing/src/test/java/org/aspectj/testing/util/MessageUtilTest.java View File

@@ -71,9 +71,8 @@ public class MessageUtilTest extends TestCase {

List getSampleMessageTexts() {
if (null == messageTexts) {
ArrayList result = new ArrayList();
result.addAll(Arrays.asList(new String[]
{ "one", "two", "now is the time for all good men..." }));
ArrayList result = new ArrayList(Arrays.asList(new String[]
{"one", "two", "now is the time for all good men..."}));
messageTexts = result;
}
return messageTexts;

+ 3
- 6
testing/src/test/java/org/aspectj/testing/util/TestDiffs.java View File

@@ -141,8 +141,7 @@ public class TestDiffs { // XXX pretty dumb implementation
* @return ArrayList with all input except those in trim (by name)
*/
private static ArrayList trimByName(List input, List trim) {
ArrayList result = new ArrayList();
result.addAll(input);
ArrayList result = new ArrayList(input);
if (!LangUtil.isEmpty(input) && !LangUtil.isEmpty(trim)) {
for (ListIterator iter = result.listIterator(); iter.hasNext();) {
TestResult inputItem = (TestResult) iter.next();
@@ -281,8 +280,7 @@ public class TestDiffs { // XXX pretty dumb implementation
actualFailed = safeList(failed);

// stillPassing: expected.passed w/o broken, missingPasses
passed = new ArrayList();
passed.addAll(expectedPassed);
passed = new ArrayList(expectedPassed);
passed = trimByName(passed, this.broken);
ArrayList missingPasses = new ArrayList();
ArrayList missingFails = new ArrayList();
@@ -291,8 +289,7 @@ public class TestDiffs { // XXX pretty dumb implementation
stillPassing = safeList(passed);

// stillFailing: expected.failed w/o fixed, missingFails
failed = new ArrayList();
failed.addAll(expectedFailed);
failed = new ArrayList(expectedFailed);
failed = trimByName(failed, this.fixed);
failed = trimByName(failed, missingFails);
stillFailing = safeList(failed);

+ 1
- 2
tests/src/test/java/org/aspectj/systemtest/model/ModelTestCase.java View File

@@ -143,8 +143,7 @@ public abstract class ModelTestCase extends XMLBasedAjcTestCase {
while ((expectedLine = expect.readLine()) != null) {
fileContents.add(expectedLine);
}
List<String> expectedFileContents = new ArrayList<>();
expectedFileContents.addAll(fileContents);
List<String> expectedFileContents = new ArrayList<>(fileContents);

// Load the file with the output from this test run
BufferedReader found = new BufferedReader(new FileReader(new File(modelOutput)));

+ 1
- 2
util/src/main/java/org/aspectj/util/LangUtil.java View File

@@ -1000,8 +1000,7 @@ public class LangUtil {
if ((null == array) || (1 > array.length)) {
return Collections.emptyList();
}
ArrayList<T> list = new ArrayList<>();
list.addAll(Arrays.asList(array));
ArrayList<T> list = new ArrayList<>(Arrays.asList(array));
return list;
}


+ 1
- 2
util/src/test/java/org/aspectj/util/FileUtilTest.java View File

@@ -508,8 +508,7 @@ public class FileUtilTest extends TestCase {
errors.add(error);
}
};
List<String> sourceList = new ArrayList<>();
sourceList.addAll(Arrays.asList(sources));
List<String> sourceList = new ArrayList<>(Arrays.asList(sources));
sourceList = Collections.unmodifiableList(sourceList);
for (int k = 0; k < sources.length; k++) {
List<String> result = FileUtil.lineSeek("" + k, sourceList, true, errorSink);

+ 2
- 4
weaver/src/main/java/org/aspectj/weaver/bcel/BcelClassWeaver.java View File

@@ -923,8 +923,7 @@ class BcelClassWeaver implements IClassWeaver {
return false; // nothing to do
}

Set<DeclareAnnotation> unusedDecams = new HashSet<>();
unusedDecams.addAll(decaMs);
Set<DeclareAnnotation> unusedDecams = new HashSet<>(decaMs);

// These methods may have been targeted with declare annotation. Example: ITD on an interface
// where the top most implementor gets a real method. The top most implementor method
@@ -1413,8 +1412,7 @@ class BcelClassWeaver implements IClassWeaver {

List<BcelField> fields = clazz.getFieldGens();
if (fields != null) {
Set<DeclareAnnotation> unusedDecafs = new HashSet<>();
unusedDecafs.addAll(decafs);
Set<DeclareAnnotation> unusedDecafs = new HashSet<>(decafs);
for (BcelField field : fields) {
if (!field.getName().startsWith(NameMangler.PREFIX)) {
// Single first pass

+ 1
- 2
weaver/src/test/java/org/aspectj/weaver/ReferenceTypeTestCase.java View File

@@ -599,8 +599,7 @@ public class ReferenceTypeTestCase extends TestCase {
// ReferenceType.r = 0;
long stime = System.nanoTime();
for (int j = 0; j < 10; j++) {
List objects2 = new ArrayList();
objects2.addAll(objects);
List objects2 = new ArrayList(objects);
PartialOrder.sort(objects2);
}
long etime = System.nanoTime();

+ 2
- 4
weaver/src/test/java/org/aspectj/weaver/bcel/AroundWeaveTestCase.java View File

@@ -80,12 +80,10 @@ public class AroundWeaveTestCase extends WeaveTestCase {
private void aroundTestAndOthers(String outName, final boolean matchOnlyPrintln)
throws IOException
{
List<ShadowMunger> l = new ArrayList<>();

// the afterReturning was taken out to avoid circular advice dependency
// the afterReturning was taken out to avoid circular advice dependency

l.addAll(makeAdviceAll("before", matchOnlyPrintln));
List<ShadowMunger> l = new ArrayList<>(makeAdviceAll("before", matchOnlyPrintln));
//l.addAll(makeAdviceAll("afterReturning", matchOnlyPrintln));

l.add(makeAroundMunger(matchOnlyPrintln));

+ 2
- 4
weaver/src/test/java/org/aspectj/weaver/tools/Java15PointcutExpressionTest.java View File

@@ -286,8 +286,7 @@ public class Java15PointcutExpressionTest extends TestCase {
tps[parameterNumber].getAnnotationPattern().toString();
// parameter type annotation checking
Set<String> expected = new HashSet<>();
expected.addAll(mpnv.getParameterTypeAnnotations());
Set<String> expected = new HashSet<>(mpnv.getParameterTypeAnnotations());
StringTokenizer st = new StringTokenizer(expectedParameterTypeAnnotations==null?"":expectedParameterTypeAnnotations);
while (st.hasMoreTokens()) {
@@ -305,8 +304,7 @@ public class Java15PointcutExpressionTest extends TestCase {
}
// parameter annotation checking
expected = new HashSet<>();
expected.addAll(mpnv.getParameterAnnotations());
expected = new HashSet<>(mpnv.getParameterAnnotations());
st = new StringTokenizer(expectedParameterAnnotations==null?"":expectedParameterAnnotations);
while (st.hasMoreTokens()) {

Loading…
Cancel
Save