You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by su...@apache.org on 2019/11/03 15:00:44 UTC
[groovy] 01/05: Minor refactoring: 'for' loop can be replaced with
'foreach'
This is an automated email from the ASF dual-hosted git repository.
sunlan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/groovy.git
commit d6765906874951e69647b1d42af98c8212e1f81a
Author: Daniel Sun <su...@apache.org>
AuthorDate: Sun Nov 3 22:49:34 2019 +0800
Minor refactoring: 'for' loop can be replaced with 'foreach'
---
.../java/groovy/lang/BenchmarkInterceptor.java | 6 +-
src/main/java/groovy/lang/ExpandoMetaClass.java | 5 +-
src/main/java/groovy/lang/MetaClassImpl.java | 28 +++---
.../util/concurrentlinkedhashmap/Weighers.java | 8 +-
src/main/java/org/codehaus/groovy/antlr/Main.java | 31 +++---
.../groovy/ast/expr/ArgumentListExpression.java | 3 +-
.../codehaus/groovy/ast/tools/GenericsUtils.java | 4 +-
.../groovy/classgen/AsmClassGenerator.java | 18 ++--
.../codehaus/groovy/classgen/BytecodeSequence.java | 7 +-
.../groovy/classgen/DummyClassGenerator.java | 9 +-
.../codehaus/groovy/classgen/asm/CompileStack.java | 9 +-
.../groovy/classgen/asm/InvocationWriter.java | 15 ++-
.../codehaus/groovy/classgen/asm/MethodCaller.java | 3 +-
.../groovy/reflection/CachedConstructor.java | 3 +-
.../groovy/runtime/EncodingGroovyMethods.java | 4 +-
.../groovy/runtime/ScriptBytecodeAdapter.java | 4 +-
.../runtime/metaclass/ConcurrentReaderHashMap.java | 108 ++++++++++-----------
.../runtime/metaclass/MetaClassRegistryImpl.java | 4 +-
.../groovy/runtime/metaclass/MetaMethodIndex.java | 4 +-
.../java/org/codehaus/groovy/syntax/CSTNode.java | 14 +--
.../codehaus/groovy/tools/FileSystemCompiler.java | 4 +-
.../groovy/tools/javac/JavaStubGenerator.java | 6 +-
.../groovy/tools/shell/util/MessageSource.java | 11 +--
.../transform/AnnotationCollectorTransform.java | 3 +-
.../transform/stc/StaticTypeCheckingSupport.java | 3 +-
.../groovy/util/AbstractConcurrentMap.java | 12 +--
.../groovy/util/AbstractConcurrentMapBase.java | 100 +++++++++----------
.../groovy/util/ManagedConcurrentLinkedQueue.java | 4 +-
.../codehaus/groovy/vmplugin/v5/JUnit4Utils.java | 6 +-
.../v7/IndyGuardsFiltersAndSignatures.java | 5 +-
30 files changed, 199 insertions(+), 242 deletions(-)
diff --git a/src/main/java/groovy/lang/BenchmarkInterceptor.java b/src/main/java/groovy/lang/BenchmarkInterceptor.java
index 793286d..e289bda 100644
--- a/src/main/java/groovy/lang/BenchmarkInterceptor.java
+++ b/src/main/java/groovy/lang/BenchmarkInterceptor.java
@@ -107,14 +107,14 @@ public class BenchmarkInterceptor implements Interceptor {
*/
public List statistic() {
List result = new LinkedList();
- for (Iterator iter = calls.keySet().iterator(); iter.hasNext();) {
+ for (Object o : calls.keySet()) {
Object[] line = new Object[3];
result.add(line);
- line[0] = iter.next();
+ line[0] = o;
List times = (List) calls.get(line[0]);
line[1] = times.size() / 2;
int accTime = 0;
- for (Iterator it = times.iterator(); it.hasNext();) {
+ for (Iterator it = times.iterator(); it.hasNext(); ) {
Long start = (Long) it.next();
Long end = (Long) it.next();
accTime += end - start;
diff --git a/src/main/java/groovy/lang/ExpandoMetaClass.java b/src/main/java/groovy/lang/ExpandoMetaClass.java
index 42abd56..e3bdff7 100644
--- a/src/main/java/groovy/lang/ExpandoMetaClass.java
+++ b/src/main/java/groovy/lang/ExpandoMetaClass.java
@@ -49,7 +49,6 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
-import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
@@ -1060,8 +1059,8 @@ public class ExpandoMetaClass extends MetaClassImpl implements GroovyObject {
* @param modifiedSuperExpandos A list of modified super ExpandoMetaClass
*/
public void refreshInheritedMethods(Set modifiedSuperExpandos) {
- for (Iterator i = modifiedSuperExpandos.iterator(); i.hasNext();) {
- ExpandoMetaClass superExpando = (ExpandoMetaClass) i.next();
+ for (Object modifiedSuperExpando : modifiedSuperExpandos) {
+ ExpandoMetaClass superExpando = (ExpandoMetaClass) modifiedSuperExpando;
if (superExpando != this) {
refreshInheritedMethods(superExpando);
}
diff --git a/src/main/java/groovy/lang/MetaClassImpl.java b/src/main/java/groovy/lang/MetaClassImpl.java
index 8cee0f2..94cb823 100644
--- a/src/main/java/groovy/lang/MetaClassImpl.java
+++ b/src/main/java/groovy/lang/MetaClassImpl.java
@@ -721,8 +721,8 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass {
} else {
arr = ((FastArray) answer).copy();
}
- for (Iterator iter = used.iterator(); iter.hasNext(); ) {
- MetaMethod element = (MetaMethod) iter.next();
+ for (Object o : used) {
+ MetaMethod element = (MetaMethod) o;
if (!element.getDeclaringClass().getTheClass().isAssignableFrom(sender))
continue;
filterMatchingMethodForCategory(arr, element);
@@ -1821,8 +1821,8 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass {
*/
public void setProperties(Object bean, Map map) {
checkInitalised();
- for (Iterator iter = map.entrySet().iterator(); iter.hasNext(); ) {
- Map.Entry entry = (Map.Entry) iter.next();
+ for (Object o : map.entrySet()) {
+ Map.Entry entry = (Map.Entry) o;
String key = entry.getKey().toString();
Object value = entry.getValue();
@@ -2116,8 +2116,8 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass {
private static MetaMethod getCategoryMethodMissing(Class sender) {
List possibleGenericMethods = GroovyCategorySupport.getCategoryMethods("methodMissing");
if (possibleGenericMethods != null) {
- for (Iterator iter = possibleGenericMethods.iterator(); iter.hasNext(); ) {
- MetaMethod mmethod = (MetaMethod) iter.next();
+ for (Object possibleGenericMethod : possibleGenericMethods) {
+ MetaMethod mmethod = (MetaMethod) possibleGenericMethod;
if (!mmethod.getDeclaringClass().getTheClass().isAssignableFrom(sender))
continue;
@@ -2133,8 +2133,8 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass {
private static MetaMethod getCategoryMethodGetter(Class sender, String name, boolean useLongVersion) {
List possibleGenericMethods = GroovyCategorySupport.getCategoryMethods(name);
if (possibleGenericMethods != null) {
- for (Iterator iter = possibleGenericMethods.iterator(); iter.hasNext(); ) {
- MetaMethod mmethod = (MetaMethod) iter.next();
+ for (Object possibleGenericMethod : possibleGenericMethods) {
+ MetaMethod mmethod = (MetaMethod) possibleGenericMethod;
if (!mmethod.getDeclaringClass().getTheClass().isAssignableFrom(sender))
continue;
@@ -2154,8 +2154,8 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass {
private static MetaMethod getCategoryMethodSetter(Class sender, String name, boolean useLongVersion) {
List possibleGenericMethods = GroovyCategorySupport.getCategoryMethods(name);
if (possibleGenericMethods != null) {
- for (Iterator iter = possibleGenericMethods.iterator(); iter.hasNext(); ) {
- MetaMethod mmethod = (MetaMethod) iter.next();
+ for (Object possibleGenericMethod : possibleGenericMethods) {
+ MetaMethod mmethod = (MetaMethod) possibleGenericMethod;
if (!mmethod.getDeclaringClass().getTheClass().isAssignableFrom(sender))
continue;
@@ -2472,12 +2472,12 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass {
}
private void inheritStaticInterfaceFields(LinkedList superClasses, Set interfaces) {
- for (Iterator interfaceIter = interfaces.iterator(); interfaceIter.hasNext(); ) {
- CachedClass iclass = (CachedClass) interfaceIter.next();
+ for (Object anInterface : interfaces) {
+ CachedClass iclass = (CachedClass) anInterface;
SingleKeyHashMap iPropertyIndex = classPropertyIndex.getNotNull(iclass);
addFields(iclass, iPropertyIndex);
- for (Iterator classIter = superClasses.iterator(); classIter.hasNext(); ) {
- CachedClass sclass = (CachedClass) classIter.next();
+ for (Object superClass : superClasses) {
+ CachedClass sclass = (CachedClass) superClass;
if (!iclass.getTheClass().isAssignableFrom(sclass.getTheClass())) continue;
SingleKeyHashMap sPropertyIndex = classPropertyIndex.getNotNull(sclass);
copyNonPrivateFields(iPropertyIndex, sPropertyIndex, null);
diff --git a/src/main/java/org/apache/groovy/util/concurrentlinkedhashmap/Weighers.java b/src/main/java/org/apache/groovy/util/concurrentlinkedhashmap/Weighers.java
index 6713c4a..1fb654a 100644
--- a/src/main/java/org/apache/groovy/util/concurrentlinkedhashmap/Weighers.java
+++ b/src/main/java/org/apache/groovy/util/concurrentlinkedhashmap/Weighers.java
@@ -17,7 +17,6 @@ package org.apache.groovy.util.concurrentlinkedhashmap;
import java.io.Serializable;
import java.util.Collection;
-import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -235,10 +234,9 @@ public final class Weighers {
return ((Collection<?>) values).size();
}
int size = 0;
- for (Iterator<?> i = values.iterator(); i.hasNext();) {
- i.next();
- size++;
- }
+ for (Object value : values) {
+ size++;
+ }
return size;
}
}
diff --git a/src/main/java/org/codehaus/groovy/antlr/Main.java b/src/main/java/org/codehaus/groovy/antlr/Main.java
index ae3bb5f..ca10099 100644
--- a/src/main/java/org/codehaus/groovy/antlr/Main.java
+++ b/src/main/java/org/codehaus/groovy/antlr/Main.java
@@ -46,33 +46,29 @@ class Main {
System.err.println("Parsing...");
// for each directory/file specified on the command line
- for(int i=0; i< args.length;i++) {
- if ( args[i].equals("-showtree") ) {
+ for (String arg : args) {
+ if (arg.equals("-showtree")) {
showTree = true;
}
//else if ( args[i].equals("-xml") ) {
// xml = true;
//}
- else if ( args[i].equals("-verbose") ) {
+ else if (arg.equals("-verbose")) {
verbose = true;
- }
- else if ( args[i].equals("-trace") ) {
+ } else if (arg.equals("-trace")) {
GroovyRecognizer.tracing = true;
GroovyLexer.tracing = true;
- }
- else if ( args[i].equals("-traceParser") ) {
+ } else if (arg.equals("-traceParser")) {
GroovyRecognizer.tracing = true;
- }
- else if ( args[i].equals("-traceLexer") ) {
+ } else if (arg.equals("-traceLexer")) {
GroovyLexer.tracing = true;
+ } else if (arg.equals("-whitespaceIncluded")) {
+ whitespaceIncluded = true;
+ } else {
+ doFile(new File(arg)); // parse it
}
- else if ( args[i].equals("-whitespaceIncluded") ) {
- whitespaceIncluded = true;
- }
- else {
- doFile(new File(args[i])); // parse it
- }
- } }
+ }
+ }
else
System.err.println("Usage: java -jar groovyc.jar [-showtree] [-verbose] [-trace{,Lexer,Parser}]"+
"<directory or file name>");
@@ -91,8 +87,7 @@ class Main {
// If this is a directory, walk each file/dir in that directory
if (f.isDirectory()) {
String files[] = f.list();
- for(int i=0; i < files.length; i++)
- doFile(new File(f, files[i]));
+ for (String file : files) doFile(new File(f, file));
}
// otherwise, if this is a groovy file, parse it!
diff --git a/src/main/java/org/codehaus/groovy/ast/expr/ArgumentListExpression.java b/src/main/java/org/codehaus/groovy/ast/expr/ArgumentListExpression.java
index 0f4a7e4..a70fbed 100644
--- a/src/main/java/org/codehaus/groovy/ast/expr/ArgumentListExpression.java
+++ b/src/main/java/org/codehaus/groovy/ast/expr/ArgumentListExpression.java
@@ -45,8 +45,7 @@ public class ArgumentListExpression extends TupleExpression {
}
public ArgumentListExpression(Parameter[] parameters) {
- for (int i = 0; i < parameters.length; i++) {
- Parameter parameter = parameters[i];
+ for (Parameter parameter : parameters) {
addExpression(new VariableExpression(parameter));
}
}
diff --git a/src/main/java/org/codehaus/groovy/ast/tools/GenericsUtils.java b/src/main/java/org/codehaus/groovy/ast/tools/GenericsUtils.java
index 3b715ff..0644ed9 100644
--- a/src/main/java/org/codehaus/groovy/ast/tools/GenericsUtils.java
+++ b/src/main/java/org/codehaus/groovy/ast/tools/GenericsUtils.java
@@ -650,8 +650,8 @@ public class GenericsUtils {
ClassNode[] newUpper = upper;
if (upper != null && upper.length > 0) {
ClassNode[] upperCorrected = new ClassNode[upper.length];
- for (int j = 0; j < upper.length; j++) {
- upperCorrected[i] = correctToGenericsSpecRecurse(genericsSpec, upper[j]);
+ for (ClassNode classNode : upper) {
+ upperCorrected[i] = correctToGenericsSpecRecurse(genericsSpec, classNode);
}
upper = upperCorrected;
}
diff --git a/src/main/java/org/codehaus/groovy/classgen/AsmClassGenerator.java b/src/main/java/org/codehaus/groovy/classgen/AsmClassGenerator.java
index 31719f5..2111e0a 100644
--- a/src/main/java/org/codehaus/groovy/classgen/AsmClassGenerator.java
+++ b/src/main/java/org/codehaus/groovy/classgen/AsmClassGenerator.java
@@ -414,9 +414,9 @@ public class AsmClassGenerator extends ClassGenerator {
// Add parameter names to the MethodVisitor (jdk8+ only)
if (getCompileUnit().getConfig().getParameters()) {
- for (int i = 0; i < parameters.length; i++) {
+ for (Parameter parameter : parameters) {
// TODO handle ACC_SYNTHETIC for enum method parameters?
- mv.visitParameter(parameters[i].getName(), 0);
+ mv.visitParameter(parameter.getName(), 0);
}
}
@@ -860,8 +860,8 @@ public class AsmClassGenerator extends ClassGenerator {
} else {
return arguments instanceof SpreadExpression;
}
- for (Iterator iter = args.iterator(); iter.hasNext();) {
- if (iter.next() instanceof SpreadExpression) return true;
+ for (Object arg : args) {
+ if (arg instanceof SpreadExpression) return true;
}
return false;
}
@@ -1600,8 +1600,7 @@ public class AsmClassGenerator extends ClassGenerator {
mv.visitTypeInsn(ANEWARRAY, "java/lang/Object");
int i = 0;
- for (Iterator iter = entries.iterator(); iter.hasNext();) {
- Object object = iter.next();
+ for (Object object : entries) {
MapEntryExpression entry = (MapEntryExpression) object;
mv.visitInsn(DUP);
@@ -1699,8 +1698,8 @@ public class AsmClassGenerator extends ClassGenerator {
int size = 0;
int dimensions = 0;
if (sizeExpression != null) {
- for (Iterator iter = sizeExpression.iterator(); iter.hasNext();) {
- Expression element = (Expression) iter.next();
+ for (Object o : sizeExpression) {
+ Expression element = (Expression) o;
if (element == ConstantExpression.EMPTY_EXPRESSION) break;
dimensions++;
// let's convert to an int
@@ -1915,8 +1914,7 @@ public class AsmClassGenerator extends ClassGenerator {
MethodVisitor mv = controller.getMethodVisitor();
List instructions = bytecodeSequence.getInstructions();
int mark = controller.getOperandStack().getStackLength();
- for (Iterator iterator = instructions.iterator(); iterator.hasNext();) {
- Object part = iterator.next();
+ for (Object part : instructions) {
if (part instanceof EmptyExpression) {
mv.visitInsn(ACONST_NULL);
} else if (part instanceof Expression) {
diff --git a/src/main/java/org/codehaus/groovy/classgen/BytecodeSequence.java b/src/main/java/org/codehaus/groovy/classgen/BytecodeSequence.java
index 7da3c4d..b70b855 100644
--- a/src/main/java/org/codehaus/groovy/classgen/BytecodeSequence.java
+++ b/src/main/java/org/codehaus/groovy/classgen/BytecodeSequence.java
@@ -23,7 +23,6 @@ import org.codehaus.groovy.ast.GroovyCodeVisitor;
import org.codehaus.groovy.ast.stmt.Statement;
import java.util.ArrayList;
-import java.util.Iterator;
import java.util.List;
/**
@@ -66,10 +65,10 @@ public class BytecodeSequence extends Statement {
gen.visitBytecodeSequence(this);
return;
}
- for (Iterator iterator = instructions.iterator(); iterator.hasNext();) {
- Object part = (Object) iterator.next();
+ for (BytecodeInstruction instruction : instructions) {
+ Object part = (Object) instruction;
if (part instanceof ASTNode) {
- ((ASTNode)part).visit(visitor);
+ ((ASTNode) part).visit(visitor);
}
}
}
diff --git a/src/main/java/org/codehaus/groovy/classgen/DummyClassGenerator.java b/src/main/java/org/codehaus/groovy/classgen/DummyClassGenerator.java
index b85f91a..8b7e05d 100644
--- a/src/main/java/org/codehaus/groovy/classgen/DummyClassGenerator.java
+++ b/src/main/java/org/codehaus/groovy/classgen/DummyClassGenerator.java
@@ -34,8 +34,6 @@ import org.objectweb.asm.ClassVisitor;
import org.objectweb.asm.MethodVisitor;
import org.objectweb.asm.Opcodes;
-import java.util.Iterator;
-
/**
* To generate a class that has all the fields and methods, except that fields are not initialized
* and methods are empty. It's intended for being used as a place holder during code generation
@@ -84,8 +82,7 @@ public class DummyClassGenerator extends ClassGenerator {
classNode.visitContents(this);
- for (Iterator iter = innerClasses.iterator(); iter.hasNext();) {
- ClassNode innerClass = (ClassNode) iter.next();
+ for (ClassNode innerClass : innerClasses) {
ClassNode innerClassType = innerClass;
String innerClassInternalName = BytecodeHelper.getClassInternalName(innerClassType);
String outerClassName = internalClassName; // default for inner classes
@@ -163,8 +160,8 @@ public class DummyClassGenerator extends ClassGenerator {
}
protected void visitParameters(ASTNode node, Parameter[] parameters) {
- for (int i = 0, size = parameters.length; i < size; i++) {
- visitParameter(node, parameters[i]);
+ for (Parameter parameter : parameters) {
+ visitParameter(node, parameter);
}
}
diff --git a/src/main/java/org/codehaus/groovy/classgen/asm/CompileStack.java b/src/main/java/org/codehaus/groovy/classgen/asm/CompileStack.java
index 5686b75..4bd54c4 100644
--- a/src/main/java/org/codehaus/groovy/classgen/asm/CompileStack.java
+++ b/src/main/java/org/codehaus/groovy/classgen/asm/CompileStack.java
@@ -31,7 +31,6 @@ import org.objectweb.asm.Opcodes;
import java.util.Collections;
import java.util.HashMap;
-import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.ListIterator;
@@ -239,8 +238,8 @@ public class CompileStack implements Opcodes {
private void setEndLabels(){
Label endLabel = new Label();
controller.getMethodVisitor().visitLabel(endLabel);
- for (Iterator iter = stackVariables.values().iterator(); iter.hasNext();) {
- BytecodeVariable var = (BytecodeVariable) iter.next();
+ for (Object o : stackVariables.values()) {
+ BytecodeVariable var = (BytecodeVariable) o;
var.setEndLabel(endLabel);
}
thisEndLabel = endLabel;
@@ -365,8 +364,8 @@ public class CompileStack implements Opcodes {
mv.visitLocalVariable("this", className, null, thisStartLabel, thisEndLabel, 0);
}
- for (Iterator iterator = usedVariables.iterator(); iterator.hasNext();) {
- BytecodeVariable v = (BytecodeVariable) iterator.next();
+ for (Object usedVariable : usedVariables) {
+ BytecodeVariable v = (BytecodeVariable) usedVariable;
ClassNode t = v.getType();
if (v.isHolder()) t = ClassHelper.REFERENCE_TYPE;
String type = BytecodeHelper.getTypeDescription(t);
diff --git a/src/main/java/org/codehaus/groovy/classgen/asm/InvocationWriter.java b/src/main/java/org/codehaus/groovy/classgen/asm/InvocationWriter.java
index c4a40ad..472f70a 100644
--- a/src/main/java/org/codehaus/groovy/classgen/asm/InvocationWriter.java
+++ b/src/main/java/org/codehaus/groovy/classgen/asm/InvocationWriter.java
@@ -810,8 +810,8 @@ public class InvocationWriter {
Label defaultLabel = new Label();
Label afterSwitch = new Label();
mv.visitLookupSwitchInsn(defaultLabel, indices, targets);
- for (int i = 0; i < targets.length; i++) {
- mv.visitLabel(targets[i]);
+ for (Label target : targets) {
+ mv.visitLabel(target);
// to keep the stack height, we need to leave
// one Object[] on the stack as last element. At the
// same time, we need the Object[] on top of the stack
@@ -845,13 +845,13 @@ public class InvocationWriter {
// vargs need special attention and transformation though
Parameter[] parameters = cn.getParameters();
int lengthWithoutVargs = parameters.length;
- if (parameters.length>0 && parameters[parameters.length-1].getType().isArray()) {
+ if (parameters.length > 0 && parameters[parameters.length - 1].getType().isArray()) {
lengthWithoutVargs--;
}
for (int p = 0; p < lengthWithoutVargs; p++) {
loadAndCastElement(operandStack, mv, parameters, p);
}
- if (parameters.length>lengthWithoutVargs) {
+ if (parameters.length > lengthWithoutVargs) {
ClassNode type = parameters[lengthWithoutVargs].getType();
BytecodeHelper.pushConstant(mv, lengthWithoutVargs);
controller.getAcg().visitClassExpression(new ClassExpression(type));
@@ -907,12 +907,11 @@ public class InvocationWriter {
// we match only on the number of arguments, not anything else
private static ConstructorNode getMatchingConstructor(List<ConstructorNode> constructors, List<Expression> argumentList) {
ConstructorNode lastMatch = null;
- for (int i=0; i<constructors.size(); i++) {
- ConstructorNode cn = constructors.get(i);
+ for (ConstructorNode cn : constructors) {
Parameter[] params = cn.getParameters();
// if number of parameters does not match we have no match
- if (argumentList.size()!=params.length) continue;
- if (lastMatch==null) {
+ if (argumentList.size() != params.length) continue;
+ if (lastMatch == null) {
lastMatch = cn;
} else {
// we already had a match so we don't make a direct call at all
diff --git a/src/main/java/org/codehaus/groovy/classgen/asm/MethodCaller.java b/src/main/java/org/codehaus/groovy/classgen/asm/MethodCaller.java
index 9ebb34d..85fae66 100644
--- a/src/main/java/org/codehaus/groovy/classgen/asm/MethodCaller.java
+++ b/src/main/java/org/codehaus/groovy/classgen/asm/MethodCaller.java
@@ -75,8 +75,7 @@ public class MethodCaller implements Opcodes {
protected Method getMethod() {
Method[] methods = theClass.getMethods();
- for (int i = 0; i < methods.length; i++) {
- Method method = methods[i];
+ for (Method method : methods) {
if (method.getName().equals(name)) {
return method;
}
diff --git a/src/main/java/org/codehaus/groovy/reflection/CachedConstructor.java b/src/main/java/org/codehaus/groovy/reflection/CachedConstructor.java
index cb43103..347b9b0 100644
--- a/src/main/java/org/codehaus/groovy/reflection/CachedConstructor.java
+++ b/src/main/java/org/codehaus/groovy/reflection/CachedConstructor.java
@@ -47,8 +47,7 @@ public class CachedConstructor extends ParameterTypes {
public static CachedConstructor find(Constructor constructor) {
CachedConstructor[] constructors = ReflectionCache.getCachedClass(constructor.getDeclaringClass()).getConstructors();
- for (int i = 0; i < constructors.length; i++) {
- CachedConstructor cachedConstructor = constructors[i];
+ for (CachedConstructor cachedConstructor : constructors) {
if (cachedConstructor.cachedConstructor.equals(constructor))
return cachedConstructor;
}
diff --git a/src/main/java/org/codehaus/groovy/runtime/EncodingGroovyMethods.java b/src/main/java/org/codehaus/groovy/runtime/EncodingGroovyMethods.java
index d41f04e..2d4ba4f 100644
--- a/src/main/java/org/codehaus/groovy/runtime/EncodingGroovyMethods.java
+++ b/src/main/java/org/codehaus/groovy/runtime/EncodingGroovyMethods.java
@@ -317,9 +317,9 @@ public class EncodingGroovyMethods {
public static Writable encodeHex(final byte[] data) {
return new Writable() {
public Writer writeTo(Writer out) throws IOException {
- for (int i = 0; i < data.length; i++) {
+ for (byte datum : data) {
// convert byte into unsigned hex string
- String hexString = Integer.toHexString(data[i] & 0xFF);
+ String hexString = Integer.toHexString(datum & 0xFF);
// add leading zero if the length of the string is one
if (hexString.length() < 2) {
diff --git a/src/main/java/org/codehaus/groovy/runtime/ScriptBytecodeAdapter.java b/src/main/java/org/codehaus/groovy/runtime/ScriptBytecodeAdapter.java
index df1a4c4..69cd50f 100644
--- a/src/main/java/org/codehaus/groovy/runtime/ScriptBytecodeAdapter.java
+++ b/src/main/java/org/codehaus/groovy/runtime/ScriptBytecodeAdapter.java
@@ -799,8 +799,8 @@ public class ScriptBytecodeAdapter {
List ret = new ArrayList();
int argsPos = 0;
int spreadPos = 0;
- for (int pos = 0; pos < positions.length; pos++) {
- for (; argsPos < positions[pos]; argsPos++) {
+ for (int position : positions) {
+ for (; argsPos < position; argsPos++) {
ret.add(args[argsPos]);
}
Object value = spreads[spreadPos];
diff --git a/src/main/java/org/codehaus/groovy/runtime/metaclass/ConcurrentReaderHashMap.java b/src/main/java/org/codehaus/groovy/runtime/metaclass/ConcurrentReaderHashMap.java
index 560cf97..86277db 100644
--- a/src/main/java/org/codehaus/groovy/runtime/metaclass/ConcurrentReaderHashMap.java
+++ b/src/main/java/org/codehaus/groovy/runtime/metaclass/ConcurrentReaderHashMap.java
@@ -572,42 +572,40 @@ public class ConcurrentReaderHashMap
* reader thread that may be in the midst of traversing table
* right now.)
*/
-
- for (int i = 0; i < oldCapacity ; i++) {
- // We need to guarantee that any existing reads of old Map can
- // proceed. So we cannot yet null out each bin.
- Entry e = oldTable[i];
-
- if (e != null) {
- int idx = e.hash & mask;
- Entry next = e.next;
-
- // Single node on list
- if (next == null)
- newTable[idx] = e;
-
- else {
- // Reuse trailing consecutive sequence of all same bit
- Entry lastRun = e;
- int lastIdx = idx;
- for (Entry last = next; last != null; last = last.next) {
- int k = last.hash & mask;
- if (k != lastIdx) {
- lastIdx = k;
- lastRun = last;
- }
- }
- newTable[lastIdx] = lastRun;
-
- // Clone all remaining nodes
- for (Entry p = e; p != lastRun; p = p.next) {
- int k = p.hash & mask;
- newTable[k] = new Entry(p.hash, p.key,
- p.value, newTable[k]);
+
+ for (Entry e : oldTable) {
+ // We need to guarantee that any existing reads of old Map can
+ // proceed. So we cannot yet null out each bin.
+ if (e != null) {
+ int idx = e.hash & mask;
+ Entry next = e.next;
+
+ // Single node on list
+ if (next == null)
+ newTable[idx] = e;
+
+ else {
+ // Reuse trailing consecutive sequence of all same bit
+ Entry lastRun = e;
+ int lastIdx = idx;
+ for (Entry last = next; last != null; last = last.next) {
+ int k = last.hash & mask;
+ if (k != lastIdx) {
+ lastIdx = k;
+ lastRun = last;
+ }
+ }
+ newTable[lastIdx] = lastRun;
+
+ // Clone all remaining nodes
+ for (Entry p = e; p != lastRun; p = p.next) {
+ int k = p.hash & mask;
+ newTable[k] = new Entry(p.hash, p.key,
+ p.value, newTable[k]);
+ }
+ }
}
- }
}
- }
table = newTable;
recordModification(newTable);
@@ -716,12 +714,12 @@ public class ConcurrentReaderHashMap
if (value == null) throw new NullPointerException();
Entry tab[] = getTableForReading();
-
- for (int i = 0 ; i < tab.length; ++i) {
- for (Entry e = tab[i] ; e != null ; e = e.next)
- if (value.equals(e.value))
- return true;
- }
+
+ for (Entry entry : tab) {
+ for (Entry e = entry; e != null; e = e.next)
+ if (value.equals(e.value))
+ return true;
+ }
return false;
}
@@ -768,12 +766,12 @@ public class ConcurrentReaderHashMap
while (n >= threshold)
rehash();
- for (Iterator it = t.entrySet().iterator(); it.hasNext();) {
- Map.Entry entry = (Map.Entry) it.next();
- Object key = entry.getKey();
- Object value = entry.getValue();
- put(key, value);
- }
+ for (Object o : t.entrySet()) {
+ Map.Entry entry = (Map.Entry) o;
+ Object key = entry.getKey();
+ Object value = entry.getValue();
+ put(key, value);
+ }
}
@@ -868,14 +866,12 @@ public class ConcurrentReaderHashMap
}
public Object[] toArray() {
Collection c = new ArrayList();
- for (Iterator i = iterator(); i.hasNext(); )
- c.add(i.next());
+ for (Object o : this) c.add(o);
return c.toArray();
}
public Object[] toArray(Object[] a) {
Collection c = new ArrayList();
- for (Iterator i = iterator(); i.hasNext(); )
- c.add(i.next());
+ for (Object o : this) c.add(o);
return c.toArray(a);
}
}
@@ -911,14 +907,12 @@ public class ConcurrentReaderHashMap
}
public Object[] toArray() {
Collection c = new ArrayList();
- for (Iterator i = iterator(); i.hasNext(); )
- c.add(i.next());
+ for (Object o : this) c.add(o);
return c.toArray();
}
public Object[] toArray(Object[] a) {
Collection c = new ArrayList();
- for (Iterator i = iterator(); i.hasNext(); )
- c.add(i.next());
+ for (Object o : this) c.add(o);
return c.toArray(a);
}
}
@@ -964,14 +958,12 @@ public class ConcurrentReaderHashMap
}
public Object[] toArray() {
Collection c = new ArrayList();
- for (Iterator i = iterator(); i.hasNext(); )
- c.add(i.next());
+ for (Object o : this) c.add(o);
return c.toArray();
}
public Object[] toArray(Object[] a) {
Collection c = new ArrayList();
- for (Iterator i = iterator(); i.hasNext(); )
- c.add(i.next());
+ for (Object o : this) c.add(o);
return c.toArray(a);
}
}
diff --git a/src/main/java/org/codehaus/groovy/runtime/metaclass/MetaClassRegistryImpl.java b/src/main/java/org/codehaus/groovy/runtime/metaclass/MetaClassRegistryImpl.java
index 5edca84..791323d 100644
--- a/src/main/java/org/codehaus/groovy/runtime/metaclass/MetaClassRegistryImpl.java
+++ b/src/main/java/org/codehaus/groovy/runtime/metaclass/MetaClassRegistryImpl.java
@@ -389,8 +389,8 @@ public class MetaClassRegistryImpl implements MetaClassRegistry{
protected void fireConstantMetaClassUpdate(Object obj, Class c, final MetaClass oldMC, MetaClass newMc) {
MetaClassRegistryChangeEventListener[] listener = getMetaClassRegistryChangeEventListeners();
MetaClassRegistryChangeEvent cmcu = new MetaClassRegistryChangeEvent(this, obj, c, oldMC, newMc);
- for (int i = 0; i<listener.length; i++) {
- listener[i].updateConstantMetaClass(cmcu);
+ for (MetaClassRegistryChangeEventListener metaClassRegistryChangeEventListener : listener) {
+ metaClassRegistryChangeEventListener.updateConstantMetaClass(cmcu);
}
}
diff --git a/src/main/java/org/codehaus/groovy/runtime/metaclass/MetaMethodIndex.java b/src/main/java/org/codehaus/groovy/runtime/metaclass/MetaMethodIndex.java
index b70b344..e1ca0f8 100644
--- a/src/main/java/org/codehaus/groovy/runtime/metaclass/MetaMethodIndex.java
+++ b/src/main/java/org/codehaus/groovy/runtime/metaclass/MetaMethodIndex.java
@@ -487,8 +487,8 @@ public class MetaMethodIndex {
Entry[] table = this.table;
int length = table.length;
- for (int j = 0; j < length; j++) {
- for (Entry e = table[j]; e != null; e = e.nextHashEntry) {
+ for (Entry entry : table) {
+ for (Entry e = entry; e != null; e = e.nextHashEntry) {
if (e.methods instanceof FastArray)
e.methodsForSuper = ((FastArray) e.methods).copy();
else
diff --git a/src/main/java/org/codehaus/groovy/syntax/CSTNode.java b/src/main/java/org/codehaus/groovy/syntax/CSTNode.java
index 631c8ed..e074681 100644
--- a/src/main/java/org/codehaus/groovy/syntax/CSTNode.java
+++ b/src/main/java/org/codehaus/groovy/syntax/CSTNode.java
@@ -85,8 +85,8 @@ public abstract class CSTNode {
*/
public boolean isOneOf(int[] types) {
int meaning = getMeaning();
- for (int i = 0; i < types.length; i++) {
- if (Types.ofType(meaning, types[i])) {
+ for (int type : types) {
+ if (Types.ofType(meaning, type)) {
return true;
}
}
@@ -99,8 +99,8 @@ public abstract class CSTNode {
*/
public boolean isAllOf(int[] types) {
int meaning = getMeaning();
- for (int i = 0; i < types.length; i++) {
- if (!Types.ofType(meaning, types[i])) {
+ for (int type : types) {
+ if (!Types.ofType(meaning, type)) {
return false;
}
}
@@ -114,9 +114,9 @@ public abstract class CSTNode {
*/
public int getMeaningAs(int[] types) {
- for (int i = 0; i < types.length; i++) {
- if (isA(types[i])) {
- return types[i];
+ for (int type : types) {
+ if (isA(type)) {
+ return type;
}
}
diff --git a/src/main/java/org/codehaus/groovy/tools/FileSystemCompiler.java b/src/main/java/org/codehaus/groovy/tools/FileSystemCompiler.java
index 2c02e86..39e103f 100644
--- a/src/main/java/org/codehaus/groovy/tools/FileSystemCompiler.java
+++ b/src/main/java/org/codehaus/groovy/tools/FileSystemCompiler.java
@@ -299,8 +299,8 @@ public class FileSystemCompiler {
file.delete();
} else if (file.isDirectory()) {
File[] files = file.listFiles();
- for (int i = 0; i < files.length; i++) {
- deleteRecursive(files[i]);
+ for (File value : files) {
+ deleteRecursive(value);
}
file.delete();
}
diff --git a/src/main/java/org/codehaus/groovy/tools/javac/JavaStubGenerator.java b/src/main/java/org/codehaus/groovy/tools/javac/JavaStubGenerator.java
index 3fec399..2510ff0 100644
--- a/src/main/java/org/codehaus/groovy/tools/javac/JavaStubGenerator.java
+++ b/src/main/java/org/codehaus/groovy/tools/javac/JavaStubGenerator.java
@@ -611,9 +611,9 @@ public class JavaStubGenerator {
// if all remaining exceptions are used in the stub we are good
- outer: for (int i=0; i<superExceptions.length; i++) {
- ClassNode superExc = superExceptions[i];
- for (ClassNode stub:stubExceptions) {
+ outer:
+ for (ClassNode superExc : superExceptions) {
+ for (ClassNode stub : stubExceptions) {
if (stub.isDerivedFrom(superExc)) continue outer;
}
// not found
diff --git a/src/main/java/org/codehaus/groovy/tools/shell/util/MessageSource.java b/src/main/java/org/codehaus/groovy/tools/shell/util/MessageSource.java
index 1797043..82f5e6a 100644
--- a/src/main/java/org/codehaus/groovy/tools/shell/util/MessageSource.java
+++ b/src/main/java/org/codehaus/groovy/tools/shell/util/MessageSource.java
@@ -97,16 +97,15 @@ public class MessageSource
MissingResourceException error = null;
ResourceBundle[] bundles = getBundles();
-
- for (int i=0; i<bundles.length; i++) {
+
+ for (ResourceBundle bundle : bundles) {
try {
- return bundles[i].getString(code);
- }
- catch (MissingResourceException e) {
+ return bundle.getString(code);
+ } catch (MissingResourceException e) {
//
// FIXME: For now just save the first error, should really roll a new message with all of the details
//
-
+
if (error != null) {
error = e;
}
diff --git a/src/main/java/org/codehaus/groovy/transform/AnnotationCollectorTransform.java b/src/main/java/org/codehaus/groovy/transform/AnnotationCollectorTransform.java
index e256fc0..efe75e7 100644
--- a/src/main/java/org/codehaus/groovy/transform/AnnotationCollectorTransform.java
+++ b/src/main/java/org/codehaus/groovy/transform/AnnotationCollectorTransform.java
@@ -97,8 +97,7 @@ public class AnnotationCollectorTransform {
*/
public void transformClass(ClassNode cn) {
AnnotationNode collector = null;
- for (ListIterator<AnnotationNode> it = cn.getAnnotations().listIterator(); it.hasNext(); ) {
- AnnotationNode an = it.next();
+ for (AnnotationNode an : cn.getAnnotations()) {
if (an.getClassNode().getName().equals(AnnotationCollector.class.getName())) {
collector = an;
break;
diff --git a/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingSupport.java b/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingSupport.java
index dd74327..f27988a 100644
--- a/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingSupport.java
+++ b/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingSupport.java
@@ -978,8 +978,7 @@ public abstract class StaticTypeCheckingSupport {
if (c.equals(interfaceClass)) return 0;
ClassNode[] interfaces = c.getInterfaces();
int max = -1;
- for (int i = 0; i < interfaces.length; i++) {
- final ClassNode anInterface = interfaces[i];
+ for (final ClassNode anInterface : interfaces) {
int sub = getMaximumInterfaceDistance(anInterface, interfaceClass);
// we need to keep the -1 to track the mismatch, a +1
// by any means could let it look like a direct match
diff --git a/src/main/java/org/codehaus/groovy/util/AbstractConcurrentMap.java b/src/main/java/org/codehaus/groovy/util/AbstractConcurrentMap.java
index c341326..3fbf8e0 100644
--- a/src/main/java/org/codehaus/groovy/util/AbstractConcurrentMap.java
+++ b/src/main/java/org/codehaus/groovy/util/AbstractConcurrentMap.java
@@ -68,8 +68,8 @@ public abstract class AbstractConcurrentMap<K, V> extends AbstractConcurrentMapB
}
else {
Object arr [] = (Object[]) o;
- for (int i = 0; i < arr.length; i++) {
- Entry<K,V> e = (Entry<K,V>) arr[i];
+ for (Object value : arr) {
+ Entry<K, V> e = (Entry<K, V>) value;
if (e != null && e.isEqual(key, hash)) {
return e.getValue();
}
@@ -91,8 +91,8 @@ public abstract class AbstractConcurrentMap<K, V> extends AbstractConcurrentMapB
}
else {
Object arr [] = (Object[]) o;
- for (int i = 0; i < arr.length; i++) {
- Entry<K,V> e = (Entry<K,V>) arr[i];
+ for (Object item : arr) {
+ Entry<K, V> e = (Entry<K, V>) item;
if (e != null && e.isEqual(key, hash)) {
return e;
}
@@ -129,8 +129,8 @@ public abstract class AbstractConcurrentMap<K, V> extends AbstractConcurrentMapB
}
else {
Object arr [] = (Object[]) o;
- for (int i = 0; i < arr.length; i++) {
- Entry e = (Entry) arr[i];
+ for (Object item : arr) {
+ Entry e = (Entry) item;
if (e != null && e.isEqual(key, hash)) {
e.setValue(value);
return e;
diff --git a/src/main/java/org/codehaus/groovy/util/AbstractConcurrentMapBase.java b/src/main/java/org/codehaus/groovy/util/AbstractConcurrentMapBase.java
index f0625f6..500e3d4 100644
--- a/src/main/java/org/codehaus/groovy/util/AbstractConcurrentMapBase.java
+++ b/src/main/java/org/codehaus/groovy/util/AbstractConcurrentMapBase.java
@@ -68,24 +68,22 @@ public abstract class AbstractConcurrentMapBase {
public int fullSize() {
int count = 0;
- for (int i = 0; i < segments.length; i++) {
- segments[i].lock();
+ for (Segment segment : segments) {
+ segment.lock();
try {
- for (int j = 0; j < segments[i].table.length; j++) {
- Object o = segments[i].table [j];
+ for (int j = 0; j < segment.table.length; j++) {
+ Object o = segment.table[j];
if (o != null) {
if (o instanceof Entry) {
count++;
- }
- else {
- Object arr [] = (Object[]) o;
+ } else {
+ Object arr[] = (Object[]) o;
count += arr.length;
}
}
}
- }
- finally {
- segments[i].unlock();
+ } finally {
+ segment.unlock();
}
}
return count;
@@ -93,30 +91,28 @@ public abstract class AbstractConcurrentMapBase {
public int size() {
int count = 0;
- for (int i = 0; i < segments.length; i++) {
- segments[i].lock();
+ for (Segment segment : segments) {
+ segment.lock();
try {
- for (int j = 0; j < segments[i].table.length; j++) {
- Object o = segments[i].table [j];
+ for (int j = 0; j < segment.table.length; j++) {
+ Object o = segment.table[j];
if (o != null) {
if (o instanceof Entry) {
Entry e = (Entry) o;
if (e.isValid())
- count++;
- }
- else {
- Object arr [] = (Object[]) o;
- for (int k = 0; k < arr.length; k++) {
- Entry info = (Entry) arr[k];
+ count++;
+ } else {
+ Object arr[] = (Object[]) o;
+ for (Object value : arr) {
+ Entry info = (Entry) value;
if (info != null && info.isValid())
count++;
}
}
}
}
- }
- finally {
- segments[i].unlock();
+ } finally {
+ segment.unlock();
}
}
return count;
@@ -124,30 +120,28 @@ public abstract class AbstractConcurrentMapBase {
public Collection values() {
Collection result = new LinkedList();
- for (int i = 0; i < segments.length; i++) {
- segments[i].lock();
+ for (Segment segment : segments) {
+ segment.lock();
try {
- for (int j = 0; j < segments[i].table.length; j++) {
- Object o = segments[i].table [j];
+ for (int j = 0; j < segment.table.length; j++) {
+ Object o = segment.table[j];
if (o != null) {
if (o instanceof Entry) {
Entry e = (Entry) o;
if (e.isValid())
- result.add(e);
- }
- else {
- Object arr [] = (Object[]) o;
- for (int k = 0; k < arr.length; k++) {
- Entry info = (Entry) arr[k];
+ result.add(e);
+ } else {
+ Object arr[] = (Object[]) o;
+ for (Object value : arr) {
+ Entry info = (Entry) value;
if (info != null && info.isValid())
result.add(info);
}
}
}
}
- }
- finally {
- segments[i].unlock();
+ } finally {
+ segment.unlock();
}
}
return result;
@@ -187,19 +181,17 @@ public abstract class AbstractConcurrentMapBase {
else {
Object arr [] = (Object[]) o;
Object res = null;
- for (int i = 0; i < arr.length; i++) {
- Entry info = (Entry) arr[i];
+ for (Object value : arr) {
+ Entry info = (Entry) value;
if (info != null) {
- if(info != e) {
- if (info.isValid()) {
- res = put(info, res);
- }
- else {
- newCount--;
- }
- }
- else {
- newCount--;
+ if (info != e) {
+ if (info.isValid()) {
+ res = put(info, res);
+ } else {
+ newCount--;
+ }
+ } else {
+ newCount--;
}
}
}
@@ -261,8 +253,7 @@ public abstract class AbstractConcurrentMapBase {
Object[] newTable = new Object[newCount+1 < threshold ? oldCapacity : oldCapacity << 1];
int sizeMask = newTable.length - 1;
newCount = 0;
- for (int i = 0; i < oldCapacity ; i++) {
- Object o = oldTable[i];
+ for (Object o : oldTable) {
if (o != null) {
if (o instanceof Entry) {
Entry e = (Entry) o;
@@ -271,11 +262,10 @@ public abstract class AbstractConcurrentMapBase {
put(e, index, newTable);
newCount++;
}
- }
- else {
- Object arr [] = (Object[]) o;
- for (int j = 0; j < arr.length; j++) {
- Entry e = (Entry) arr[j];
+ } else {
+ Object arr[] = (Object[]) o;
+ for (Object value : arr) {
+ Entry e = (Entry) value;
if (e != null && e.isValid()) {
int index = e.getHash() & sizeMask;
put(e, index, newTable);
diff --git a/src/main/java/org/codehaus/groovy/util/ManagedConcurrentLinkedQueue.java b/src/main/java/org/codehaus/groovy/util/ManagedConcurrentLinkedQueue.java
index ab98f72..ea697c2 100644
--- a/src/main/java/org/codehaus/groovy/util/ManagedConcurrentLinkedQueue.java
+++ b/src/main/java/org/codehaus/groovy/util/ManagedConcurrentLinkedQueue.java
@@ -91,8 +91,8 @@ public class ManagedConcurrentLinkedQueue<T> implements Iterable<T> {
*/
public List<T> values() {
List<T> result = new ArrayList<T>();
- for (Iterator<T> itr = iterator(); itr.hasNext(); ) {
- result.add(itr.next());
+ for (T t : this) {
+ result.add(t);
}
return result;
}
diff --git a/src/main/java/org/codehaus/groovy/vmplugin/v5/JUnit4Utils.java b/src/main/java/org/codehaus/groovy/vmplugin/v5/JUnit4Utils.java
index 621bc39..10ce200 100644
--- a/src/main/java/org/codehaus/groovy/vmplugin/v5/JUnit4Utils.java
+++ b/src/main/java/org/codehaus/groovy/vmplugin/v5/JUnit4Utils.java
@@ -54,8 +54,7 @@ public class JUnit4Utils {
} else {
Class testAnnotationClass = loader.loadClass("org.junit.Test");
Method[] methods = scriptClass.getMethods();
- for (int i = 0; i < methods.length; i++) {
- Method method = methods[i];
+ for (Method method : methods) {
annotation = method.getAnnotation(testAnnotationClass);
if (annotation != null) {
isTest = true;
@@ -89,8 +88,7 @@ public class JUnit4Utils {
System.out.print(", Failures: " + InvokerHelper.getProperty(result, "failureCount"));
System.out.println(", Time: " + InvokerHelper.getProperty(result, "runTime"));
List failures = (List) InvokerHelper.getProperty(result, "failures");
- for (int i = 0; i < failures.size(); i++) {
- Object f = failures.get(i);
+ for (Object f : failures) {
System.out.println("Test Failure: " + InvokerHelper.getProperty(f, "description"));
System.out.println(InvokerHelper.getProperty(f, "trace"));
}
diff --git a/src/main/java/org/codehaus/groovy/vmplugin/v7/IndyGuardsFiltersAndSignatures.java b/src/main/java/org/codehaus/groovy/vmplugin/v7/IndyGuardsFiltersAndSignatures.java
index d86bcfd..2cffc58 100644
--- a/src/main/java/org/codehaus/groovy/vmplugin/v7/IndyGuardsFiltersAndSignatures.java
+++ b/src/main/java/org/codehaus/groovy/vmplugin/v7/IndyGuardsFiltersAndSignatures.java
@@ -43,7 +43,6 @@ import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
-import java.util.Iterator;
import java.util.Map;
import static org.codehaus.groovy.vmplugin.v7.IndyInterface.LOOKUP;
@@ -131,8 +130,8 @@ public class IndyGuardsFiltersAndSignatures {
* with property map.
*/
public static Object setBeanProperties(MetaClass mc, Object bean, Map properties) {
- for (Iterator iter = properties.entrySet().iterator(); iter.hasNext();) {
- Map.Entry entry = (Map.Entry) iter.next();
+ for (Object o : properties.entrySet()) {
+ Map.Entry entry = (Map.Entry) o;
String key = entry.getKey().toString();
Object value = entry.getValue();