From 653f75f89f25ede91553f175584b739d31646a6e Mon Sep 17 00:00:00 2001 From: Xavier Le Vourch Date: Wed, 31 Jan 2007 01:37:56 +0000 Subject: [PATCH] Checking in some Java 5 changes git-svn-id: https://pmd.svn.sourceforge.net/svnroot/pmd/trunk@5018 51baf565-9d33-0410-a72c-fc3788e3496d --- .../pmd/symboltable/NameOccurrencesTest.java | 24 +++++++++---------- .../design/AssignmentToNonFinalStatic.java | 15 +++++------- .../pmd/rules/design/PreserveStackTrace.java | 7 +++--- .../design/UnnecessaryLocalBeforeReturn.java | 18 ++++++-------- .../LocalVariableCouldBeFinal.java | 11 ++++----- .../MethodArgumentCouldBeFinal.java | 11 ++++----- .../strings/ConsecutiveLiteralAppends.java | 12 ++++------ .../sunsecure/AbstractSunSecureRule.java | 11 ++++----- .../sunsecure/ArrayIsStoredDirectly.java | 10 ++++---- .../pmd/symboltable/AbstractScope.java | 8 +++---- .../pmd/symboltable/ClassScope.java | 6 ++--- .../pmd/symboltable/LocalScope.java | 2 +- .../pmd/symboltable/MethodScope.java | 2 +- .../pmd/symboltable/NameFinder.java | 2 +- .../pmd/symboltable/OccurrenceFinder.java | 6 ++--- .../pmd/symboltable/SourceFileScope.java | 2 +- 16 files changed, 64 insertions(+), 83 deletions(-) diff --git a/pmd/regress/test/net/sourceforge/pmd/symboltable/NameOccurrencesTest.java b/pmd/regress/test/net/sourceforge/pmd/symboltable/NameOccurrencesTest.java index bf478df684..30745f6e6c 100644 --- a/pmd/regress/test/net/sourceforge/pmd/symboltable/NameOccurrencesTest.java +++ b/pmd/regress/test/net/sourceforge/pmd/symboltable/NameOccurrencesTest.java @@ -16,22 +16,22 @@ public class NameOccurrencesTest extends STBBaseTst { parseCode(TEST1); List nodes = acu.findChildrenOfType(ASTPrimaryExpression.class); NameFinder occs = new NameFinder((ASTPrimaryExpression) nodes.get(0)); - assertEquals("super", ((NameOccurrence) occs.getNames().get(0)).getImage()); + assertEquals("super", occs.getNames().get(0).getImage()); } public void testThis() { parseCode(TEST2); List nodes = acu.findChildrenOfType(ASTPrimaryExpression.class); NameFinder occs = new NameFinder((ASTPrimaryExpression) nodes.get(0)); - assertEquals("this", ((NameOccurrence) occs.getNames().get(0)).getImage()); - assertEquals("x", ((NameOccurrence) occs.getNames().get(1)).getImage()); + assertEquals("this", occs.getNames().get(0).getImage()); + assertEquals("x", occs.getNames().get(1).getImage()); } public void testNameLinkage() { parseCode(TEST2); List nodes = acu.findChildrenOfType(ASTPrimaryExpression.class); NameFinder occs = new NameFinder((ASTPrimaryExpression) nodes.get(0)); - NameOccurrence thisNameOccurrence = (NameOccurrence) occs.getNames().get(0); + NameOccurrence thisNameOccurrence = occs.getNames().get(0); assertEquals(thisNameOccurrence.getNameForWhichThisIsAQualifier(), occs.getNames().get(1)); } @@ -39,30 +39,30 @@ public class NameOccurrencesTest extends STBBaseTst { parseCode(TEST3); List nodes = acu.findChildrenOfType(ASTPrimaryExpression.class); NameFinder occs = new NameFinder((ASTPrimaryExpression) nodes.get(0)); - assertEquals("x", ((NameOccurrence) occs.getNames().get(0)).getImage()); - assertFalse(((NameOccurrence) occs.getNames().get(0)).isThisOrSuper()); - assertFalse(((NameOccurrence) occs.getNames().get(0)).isMethodOrConstructorInvocation()); - assertTrue(((NameOccurrence) occs.getNames().get(0)).isOnLeftHandSide()); + assertEquals("x", occs.getNames().get(0).getImage()); + assertFalse(occs.getNames().get(0).isThisOrSuper()); + assertFalse(occs.getNames().get(0).isMethodOrConstructorInvocation()); + assertTrue(occs.getNames().get(0).isOnLeftHandSide()); } public void testQualifiedOccurrence() { parseCode(TEST4); List nodes = acu.findChildrenOfType(ASTPrimaryExpression.class); NameFinder occs = new NameFinder((ASTPrimaryExpression) nodes.get(0)); - assertEquals("b", ((NameOccurrence) occs.getNames().get(0)).getImage()); - assertEquals("x", ((NameOccurrence) occs.getNames().get(1)).getImage()); + assertEquals("b", occs.getNames().get(0).getImage()); + assertEquals("x", occs.getNames().get(1).getImage()); } public void testIsSelfAssignment(){ parseCode(TEST5); List nodes = acu.findChildrenOfType(ASTPrimaryExpression.class); NameFinder occs = new NameFinder((ASTPrimaryExpression) nodes.get(2)); - assertTrue(((NameOccurrence) occs.getNames().get(0)).isSelfAssignment()); + assertTrue(occs.getNames().get(0).isSelfAssignment()); parseCode(TEST6); nodes = acu.findChildrenOfType(ASTPrimaryExpression.class); occs = new NameFinder((ASTPrimaryExpression) nodes.get(2)); - assertTrue(((NameOccurrence) occs.getNames().get(0)).isSelfAssignment()); + assertTrue(occs.getNames().get(0).isSelfAssignment()); } public static final String TEST1 = diff --git a/pmd/src/net/sourceforge/pmd/rules/design/AssignmentToNonFinalStatic.java b/pmd/src/net/sourceforge/pmd/rules/design/AssignmentToNonFinalStatic.java index d4db2274f3..c05c387f59 100644 --- a/pmd/src/net/sourceforge/pmd/rules/design/AssignmentToNonFinalStatic.java +++ b/pmd/src/net/sourceforge/pmd/rules/design/AssignmentToNonFinalStatic.java @@ -13,7 +13,6 @@ import net.sourceforge.pmd.ast.SimpleNode; import net.sourceforge.pmd.symboltable.NameOccurrence; import net.sourceforge.pmd.symboltable.VariableNameDeclaration; -import java.util.Iterator; import java.util.List; import java.util.Map; @@ -24,26 +23,24 @@ import java.util.Map; public class AssignmentToNonFinalStatic extends AbstractRule { public Object visit(ASTClassOrInterfaceDeclaration node, Object data) { - Map vars = node.getScope().getVariableDeclarations(); - for (Iterator i = vars.entrySet().iterator(); i.hasNext();) { - Map.Entry entry = (Map.Entry) i.next(); - VariableNameDeclaration decl = (VariableNameDeclaration) entry.getKey(); + Map> vars = node.getScope().getVariableDeclarations(); + for (Map.Entry> entry: vars.entrySet()) { + VariableNameDeclaration decl = entry.getKey(); if (!decl.getAccessNodeParent().isStatic() || decl.getAccessNodeParent().isFinal()) { continue; } - if (initializedInConstructor((List) entry.getValue())) { + if (initializedInConstructor(entry.getValue())) { addViolation(data, decl.getNode(), decl.getImage()); } } return super.visit(node, data); } - private boolean initializedInConstructor(List usages) { + private boolean initializedInConstructor(List usages) { boolean initInConstructor = false; - for (Iterator j = usages.iterator(); j.hasNext();) { - NameOccurrence occ = (NameOccurrence) j.next(); + for (NameOccurrence occ: usages) { if (occ.isOnLeftHandSide()) { // specifically omitting prefix and postfix operators as there are legitimate usages of these with static fields, e.g. typesafe enum pattern. SimpleNode node = occ.getLocation(); SimpleNode constructor = node.getFirstParentOfType(ASTConstructorDeclaration.class); diff --git a/pmd/src/net/sourceforge/pmd/rules/design/PreserveStackTrace.java b/pmd/src/net/sourceforge/pmd/rules/design/PreserveStackTrace.java index d61abb0e96..a4f828037a 100644 --- a/pmd/src/net/sourceforge/pmd/rules/design/PreserveStackTrace.java +++ b/pmd/src/net/sourceforge/pmd/rules/design/PreserveStackTrace.java @@ -11,10 +11,10 @@ import net.sourceforge.pmd.ast.ASTPrimaryExpression; import net.sourceforge.pmd.ast.ASTPrimaryPrefix; import net.sourceforge.pmd.ast.ASTThrowStatement; import net.sourceforge.pmd.ast.SimpleNode; +import net.sourceforge.pmd.symboltable.NameOccurrence; import net.sourceforge.pmd.symboltable.VariableNameDeclaration; import java.util.ArrayList; -import java.util.Iterator; import java.util.List; import java.util.Map; @@ -47,9 +47,8 @@ public class PreserveStackTrace extends AbstractRule { } if (child != null){ if( child.getClass().equals(ASTName.class) && (!target.equals(child.getImage()) && !child.hasImageEqualTo(target + ".fillInStackTrace"))) { - Map vars = ((ASTName) child).getScope().getVariableDeclarations(); - for (Iterator i = vars.keySet().iterator(); i.hasNext();) { - VariableNameDeclaration decl = (VariableNameDeclaration) i.next(); + Map> vars = ((ASTName) child).getScope().getVariableDeclarations(); + for (VariableNameDeclaration decl: vars.keySet()) { args = ((SimpleNode) decl.getNode().jjtGetParent()) .getFirstChildOfType(ASTArgumentList.class); if (args != null) { diff --git a/pmd/src/net/sourceforge/pmd/rules/design/UnnecessaryLocalBeforeReturn.java b/pmd/src/net/sourceforge/pmd/rules/design/UnnecessaryLocalBeforeReturn.java index e579b399ec..9320bb702e 100644 --- a/pmd/src/net/sourceforge/pmd/rules/design/UnnecessaryLocalBeforeReturn.java +++ b/pmd/src/net/sourceforge/pmd/rules/design/UnnecessaryLocalBeforeReturn.java @@ -1,6 +1,5 @@ package net.sourceforge.pmd.rules.design; -import java.util.Iterator; import java.util.List; import java.util.Map; @@ -36,13 +35,11 @@ public class UnnecessaryLocalBeforeReturn extends AbstractRule { return data; } - Map vars = name.getScope().getVariableDeclarations(); - for (Iterator i = vars.entrySet().iterator(); i.hasNext();) { - Map.Entry entry = (Map.Entry) i.next(); - VariableNameDeclaration key = (VariableNameDeclaration) entry.getKey(); - List usages = (List) entry.getValue(); - for (Iterator j = usages.iterator(); j.hasNext();) { - NameOccurrence occ = (NameOccurrence) j.next(); + Map> vars = name.getScope().getVariableDeclarations(); + for (Map.Entry> entry: vars.entrySet()) { + VariableNameDeclaration key = entry.getKey(); + List usages = entry.getValue(); + for (NameOccurrence occ: usages) { if (occ.getLocation().equals(name)) { // only check declarations that occur one line earlier if (key.getNode().getBeginLine() == name.getBeginLine() - 1) { @@ -66,9 +63,8 @@ public class UnnecessaryLocalBeforeReturn extends AbstractRule { * @return true if any method calls are made within the given return */ private boolean isMethodCall(ASTReturnStatement rtn) { - List suffix = rtn.findChildrenOfType( ASTPrimarySuffix.class ); - for ( Iterator iter = suffix.iterator(); iter.hasNext(); ) { - ASTPrimarySuffix element = (ASTPrimarySuffix) iter.next(); + List suffix = rtn.findChildrenOfType( ASTPrimarySuffix.class ); + for ( ASTPrimarySuffix element: suffix ) { if ( element.isArguments() ) { return true; } diff --git a/pmd/src/net/sourceforge/pmd/rules/optimization/LocalVariableCouldBeFinal.java b/pmd/src/net/sourceforge/pmd/rules/optimization/LocalVariableCouldBeFinal.java index 0ead95c201..d9975dd4a7 100644 --- a/pmd/src/net/sourceforge/pmd/rules/optimization/LocalVariableCouldBeFinal.java +++ b/pmd/src/net/sourceforge/pmd/rules/optimization/LocalVariableCouldBeFinal.java @@ -3,11 +3,11 @@ */ package net.sourceforge.pmd.rules.optimization; -import java.util.Iterator; import java.util.List; import java.util.Map; import net.sourceforge.pmd.ast.ASTLocalVariableDeclaration; +import net.sourceforge.pmd.symboltable.NameOccurrence; import net.sourceforge.pmd.symboltable.Scope; import net.sourceforge.pmd.symboltable.VariableNameDeclaration; @@ -18,14 +18,13 @@ public class LocalVariableCouldBeFinal extends AbstractOptimizationRule { return data; } Scope s = node.getScope(); - Map decls = s.getVariableDeclarations(); - for (Iterator i = decls.entrySet().iterator(); i.hasNext();) { - Map.Entry entry = (Map.Entry) i.next(); - VariableNameDeclaration var = (VariableNameDeclaration) entry.getKey(); + Map> decls = s.getVariableDeclarations(); + for (Map.Entry> entry: decls.entrySet()) { + VariableNameDeclaration var = entry.getKey(); if (var.getAccessNodeParent() != node) { continue; } - if (!assigned((List) entry.getValue())) { + if (!assigned(entry.getValue())) { addViolation(data, var.getAccessNodeParent(), var.getImage()); } } diff --git a/pmd/src/net/sourceforge/pmd/rules/optimization/MethodArgumentCouldBeFinal.java b/pmd/src/net/sourceforge/pmd/rules/optimization/MethodArgumentCouldBeFinal.java index 1ff6795913..50e0ffdb84 100644 --- a/pmd/src/net/sourceforge/pmd/rules/optimization/MethodArgumentCouldBeFinal.java +++ b/pmd/src/net/sourceforge/pmd/rules/optimization/MethodArgumentCouldBeFinal.java @@ -3,13 +3,13 @@ */ package net.sourceforge.pmd.rules.optimization; -import java.util.Iterator; import java.util.List; import java.util.Map; import net.sourceforge.pmd.ast.ASTFormalParameter; import net.sourceforge.pmd.ast.ASTMethodDeclaration; import net.sourceforge.pmd.ast.AccessNode; +import net.sourceforge.pmd.symboltable.NameOccurrence; import net.sourceforge.pmd.symboltable.Scope; import net.sourceforge.pmd.symboltable.VariableNameDeclaration; @@ -20,12 +20,11 @@ public class MethodArgumentCouldBeFinal extends AbstractOptimizationRule { return data; } Scope s = meth.getScope(); - Map decls = s.getVariableDeclarations(); - for (Iterator i = decls.entrySet().iterator(); i.hasNext();) { - Map.Entry entry = (Map.Entry) i.next(); - VariableNameDeclaration var = (VariableNameDeclaration) entry.getKey(); + Map> decls = s.getVariableDeclarations(); + for (Map.Entry> entry: decls.entrySet()) { + VariableNameDeclaration var = entry.getKey(); AccessNode node = var.getAccessNodeParent(); - if (!node.isFinal() && (node instanceof ASTFormalParameter) && !assigned((List) entry.getValue())) { + if (!node.isFinal() && (node instanceof ASTFormalParameter) && !assigned(entry.getValue())) { addViolation(data, node, var.getImage()); } } diff --git a/pmd/src/net/sourceforge/pmd/rules/strings/ConsecutiveLiteralAppends.java b/pmd/src/net/sourceforge/pmd/rules/strings/ConsecutiveLiteralAppends.java index 7060cd70c8..3f908f0eb2 100644 --- a/pmd/src/net/sourceforge/pmd/rules/strings/ConsecutiveLiteralAppends.java +++ b/pmd/src/net/sourceforge/pmd/rules/strings/ConsecutiveLiteralAppends.java @@ -23,9 +23,9 @@ import net.sourceforge.pmd.ast.Node; import net.sourceforge.pmd.ast.SimpleNode; import net.sourceforge.pmd.properties.IntegerProperty; import net.sourceforge.pmd.symboltable.NameOccurrence; +import net.sourceforge.pmd.symboltable.VariableNameDeclaration; import java.util.HashSet; -import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; @@ -89,17 +89,15 @@ public class ConsecutiveLiteralAppends extends AbstractRule { int concurrentCount = checkConstructor(node, data); Node lastBlock = getFirstParentBlock(node); Node currentBlock = lastBlock; - Map decls = node.getScope().getVariableDeclarations(); + Map> decls = node.getScope().getVariableDeclarations(); SimpleNode rootNode = null; // only want the constructor flagged if it's really containing strings if (concurrentCount == 1) { rootNode = node; } - for (Iterator iter = decls.entrySet().iterator(); iter.hasNext();) { - Map.Entry entry = (Map.Entry) iter.next(); - List decl = (List) entry.getValue(); - for (int ix = 0; ix < decl.size(); ix++) { - NameOccurrence no = (NameOccurrence) decl.get(ix); + for (Map.Entry> entry: decls.entrySet()) { + List decl = entry.getValue(); + for (NameOccurrence no: decl) { SimpleNode n = no.getLocation(); currentBlock = getFirstParentBlock(n); diff --git a/pmd/src/net/sourceforge/pmd/rules/sunsecure/AbstractSunSecureRule.java b/pmd/src/net/sourceforge/pmd/rules/sunsecure/AbstractSunSecureRule.java index 48795a0968..b2e4a77227 100644 --- a/pmd/src/net/sourceforge/pmd/rules/sunsecure/AbstractSunSecureRule.java +++ b/pmd/src/net/sourceforge/pmd/rules/sunsecure/AbstractSunSecureRule.java @@ -15,7 +15,6 @@ import net.sourceforge.pmd.ast.ASTTypeDeclaration; import net.sourceforge.pmd.ast.ASTVariableDeclaratorId; import net.sourceforge.pmd.ast.SimpleNode; -import java.util.Iterator; import java.util.List; /** @@ -33,10 +32,9 @@ public abstract class AbstractSunSecureRule extends AbstractRule { * @return true if there is a field in the type declaration named varName, false in other case */ protected final boolean isField(String varName, ASTTypeDeclaration typeDeclaration) { - final List fds = typeDeclaration.findChildrenOfType(ASTFieldDeclaration.class); + final List fds = typeDeclaration.findChildrenOfType(ASTFieldDeclaration.class); if (fds != null) { - for (Iterator it = fds.iterator(); it.hasNext();) { - final ASTFieldDeclaration fd = (ASTFieldDeclaration) it.next(); + for (ASTFieldDeclaration fd: fds) { final ASTVariableDeclaratorId vid = fd.getFirstChildOfType(ASTVariableDeclaratorId.class); if (vid != null && vid.hasImageEqualTo(varName)) { return true; @@ -76,10 +74,9 @@ public abstract class AbstractSunSecureRule extends AbstractRule { * @return true if the method declaration contains any local variable named vn and false in other case */ protected boolean isLocalVariable(String vn, SimpleNode node) { - final List lvars = node.findChildrenOfType(ASTLocalVariableDeclaration.class); + final List lvars = node.findChildrenOfType(ASTLocalVariableDeclaration.class); if (lvars != null) { - for (Iterator it = lvars.iterator(); it.hasNext();) { - final ASTLocalVariableDeclaration lvd = (ASTLocalVariableDeclaration) it.next(); + for (ASTLocalVariableDeclaration lvd: lvars) { final ASTVariableDeclaratorId vid = lvd.getFirstChildOfType(ASTVariableDeclaratorId.class); if (vid != null && vid.hasImageEqualTo(vn)) { return true; diff --git a/pmd/src/net/sourceforge/pmd/rules/sunsecure/ArrayIsStoredDirectly.java b/pmd/src/net/sourceforge/pmd/rules/sunsecure/ArrayIsStoredDirectly.java index 4996150acf..18c6c32cb7 100644 --- a/pmd/src/net/sourceforge/pmd/rules/sunsecure/ArrayIsStoredDirectly.java +++ b/pmd/src/net/sourceforge/pmd/rules/sunsecure/ArrayIsStoredDirectly.java @@ -20,7 +20,6 @@ import net.sourceforge.pmd.ast.ASTStatementExpression; import net.sourceforge.pmd.ast.ASTVariableDeclaratorId; import net.sourceforge.pmd.ast.SimpleNode; -import java.util.Iterator; import java.util.List; import java.util.ArrayList; @@ -40,7 +39,7 @@ public class ArrayIsStoredDirectly extends AbstractSunSecureRule { ASTFormalParameter[] arrs = getArrays(node.getParameters()); if (arrs != null) { //TODO check if one of these arrays is stored in a non local variable - List bs = node.findChildrenOfType(ASTBlockStatement.class); + List bs = node.findChildrenOfType(ASTBlockStatement.class); checkAll(data, arrs, bs); } return data; @@ -55,7 +54,7 @@ public class ArrayIsStoredDirectly extends AbstractSunSecureRule { return data; } - private void checkAll(Object context, ASTFormalParameter[] arrs, List bs) { + private void checkAll(Object context, ASTFormalParameter[] arrs, List bs) { for (int i = 0; i < arrs.length; i++) { checkForDirectAssignment(context, arrs[i], bs); } @@ -64,11 +63,10 @@ public class ArrayIsStoredDirectly extends AbstractSunSecureRule { /** * Checks if the variable designed in parameter is written to a field (not local variable) in the statements. */ - private boolean checkForDirectAssignment(Object ctx, final ASTFormalParameter parameter, final List bs) { + private boolean checkForDirectAssignment(Object ctx, final ASTFormalParameter parameter, final List bs) { final ASTVariableDeclaratorId vid = parameter.getFirstChildOfType(ASTVariableDeclaratorId.class); final String varName = vid.getImage(); - for (Iterator it = bs.iterator(); it.hasNext();) { - final ASTBlockStatement b = (ASTBlockStatement) it.next(); + for (ASTBlockStatement b: bs) { if (b.containsChildOfType(ASTAssignmentOperator.class)) { final ASTStatementExpression se = b.getFirstChildOfType(ASTStatementExpression.class); if (se == null || !(se.jjtGetChild(0) instanceof ASTPrimaryExpression)) { diff --git a/pmd/src/net/sourceforge/pmd/symboltable/AbstractScope.java b/pmd/src/net/sourceforge/pmd/symboltable/AbstractScope.java index f210ff2de8..fe47095a3b 100644 --- a/pmd/src/net/sourceforge/pmd/symboltable/AbstractScope.java +++ b/pmd/src/net/sourceforge/pmd/symboltable/AbstractScope.java @@ -3,9 +3,9 @@ */ package net.sourceforge.pmd.symboltable; -import java.util.Iterator; import java.util.List; import java.util.Map; +import java.util.Set; public abstract class AbstractScope implements Scope { @@ -49,10 +49,10 @@ public abstract class AbstractScope implements Scope { protected abstract NameDeclaration findVariableHere(NameOccurrence occurrence); - protected String glomNames(Iterator i) { + protected String glomNames(Set s) { StringBuffer result = new StringBuffer(); - while (i.hasNext()) { - result.append(i.next().toString()); + for (T t: s) { + result.append(t.toString()); result.append(','); } return result.length() == 0 ? "" : result.toString().substring(0, result.length() - 1); diff --git a/pmd/src/net/sourceforge/pmd/symboltable/ClassScope.java b/pmd/src/net/sourceforge/pmd/symboltable/ClassScope.java index 19d2b80bf8..442f547927 100644 --- a/pmd/src/net/sourceforge/pmd/symboltable/ClassScope.java +++ b/pmd/src/net/sourceforge/pmd/symboltable/ClassScope.java @@ -157,16 +157,16 @@ public class ClassScope extends AbstractScope { public String toString() { String res = "ClassScope (" + className + "): "; - if (!classNames.isEmpty()) res += "(" + glomNames(classNames.keySet().iterator()) + ")"; + if (!classNames.isEmpty()) res += "(" + glomNames(classNames.keySet()) + ")"; if (!methodNames.isEmpty()) { for (MethodNameDeclaration mnd: methodNames.keySet()) { res += mnd.toString(); - int usages = ((List) methodNames.get(mnd)).size(); + int usages = methodNames.get(mnd).size(); res += "(begins at line " + mnd.getNode().getBeginLine() + ", " + usages + " usages)"; res += ","; } } - if (!variableNames.isEmpty()) res += "(" + glomNames(variableNames.keySet().iterator()) + ")"; + if (!variableNames.isEmpty()) res += "(" + glomNames(variableNames.keySet()) + ")"; return res; } diff --git a/pmd/src/net/sourceforge/pmd/symboltable/LocalScope.java b/pmd/src/net/sourceforge/pmd/symboltable/LocalScope.java index 185f42c9d1..a2ed329e18 100644 --- a/pmd/src/net/sourceforge/pmd/symboltable/LocalScope.java +++ b/pmd/src/net/sourceforge/pmd/symboltable/LocalScope.java @@ -52,6 +52,6 @@ public class LocalScope extends AbstractScope { } public String toString() { - return "LocalScope:" + glomNames(variableNames.keySet().iterator()); + return "LocalScope:" + glomNames(variableNames.keySet()); } } diff --git a/pmd/src/net/sourceforge/pmd/symboltable/MethodScope.java b/pmd/src/net/sourceforge/pmd/symboltable/MethodScope.java index 0146e1b080..ffd392d68d 100644 --- a/pmd/src/net/sourceforge/pmd/symboltable/MethodScope.java +++ b/pmd/src/net/sourceforge/pmd/symboltable/MethodScope.java @@ -68,6 +68,6 @@ public class MethodScope extends AbstractScope { } public String toString() { - return "MethodScope:" + glomNames(variableNames.keySet().iterator()); + return "MethodScope:" + glomNames(variableNames.keySet()); } } diff --git a/pmd/src/net/sourceforge/pmd/symboltable/NameFinder.java b/pmd/src/net/sourceforge/pmd/symboltable/NameFinder.java index 5d31513f2e..fe84f510f7 100644 --- a/pmd/src/net/sourceforge/pmd/symboltable/NameFinder.java +++ b/pmd/src/net/sourceforge/pmd/symboltable/NameFinder.java @@ -30,7 +30,7 @@ public class NameFinder { } } - public List getNames() { + public List getNames() { return names; } diff --git a/pmd/src/net/sourceforge/pmd/symboltable/OccurrenceFinder.java b/pmd/src/net/sourceforge/pmd/symboltable/OccurrenceFinder.java index 56b802b6a2..2ce67f7c24 100644 --- a/pmd/src/net/sourceforge/pmd/symboltable/OccurrenceFinder.java +++ b/pmd/src/net/sourceforge/pmd/symboltable/OccurrenceFinder.java @@ -3,7 +3,6 @@ package net.sourceforge.pmd.symboltable; import net.sourceforge.pmd.ast.ASTPrimaryExpression; import net.sourceforge.pmd.ast.JavaParserVisitorAdapter; -import java.util.Iterator; import java.util.List; public class OccurrenceFinder extends JavaParserVisitorAdapter { @@ -15,9 +14,8 @@ public class OccurrenceFinder extends JavaParserVisitorAdapter { // is null/not null? NameDeclaration decl = null; - List names = nameFinder.getNames(); - for (Iterator i = names.iterator(); i.hasNext();) { - NameOccurrence occ = (NameOccurrence) i.next(); + List names = nameFinder.getNames(); + for (NameOccurrence occ: names) { Search search = new Search(occ); if (decl == null) { // doing the first name lookup diff --git a/pmd/src/net/sourceforge/pmd/symboltable/SourceFileScope.java b/pmd/src/net/sourceforge/pmd/symboltable/SourceFileScope.java index 1d4fa91401..2af1db12b3 100644 --- a/pmd/src/net/sourceforge/pmd/symboltable/SourceFileScope.java +++ b/pmd/src/net/sourceforge/pmd/symboltable/SourceFileScope.java @@ -61,7 +61,7 @@ public class SourceFileScope extends AbstractScope { } public String toString() { - return "SourceFileScope: " + glomNames(classNames.keySet().iterator()); + return "SourceFileScope: " + glomNames(classNames.keySet()); } protected NameDeclaration findVariableHere(NameOccurrence occ) {