From commits-return-9640-archive-asf-public=cust-asf.ponee.io@groovy.apache.org Sun Nov 3 15:42:19 2019 Return-Path: X-Original-To: archive-asf-public@cust-asf.ponee.io Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [207.244.88.153]) by mx-eu-01.ponee.io (Postfix) with SMTP id 869B6180670 for ; Sun, 3 Nov 2019 16:42:18 +0100 (CET) Received: (qmail 88801 invoked by uid 500); 3 Nov 2019 15:42:17 -0000 Mailing-List: contact commits-help@groovy.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@groovy.apache.org Delivered-To: mailing list commits@groovy.apache.org Received: (qmail 88574 invoked by uid 99); 3 Nov 2019 15:42:16 -0000 Received: from ec2-52-202-80-70.compute-1.amazonaws.com (HELO gitbox.apache.org) (52.202.80.70) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 03 Nov 2019 15:42:16 +0000 Received: by gitbox.apache.org (ASF Mail Server at gitbox.apache.org, from userid 33) id A96B4805F6; Sun, 3 Nov 2019 15:42:16 +0000 (UTC) Date: Sun, 03 Nov 2019 15:42:26 +0000 To: "commits@groovy.apache.org" Subject: [groovy] 10/18: Minor refactoring: 'for' loop can be replaced with 'foreach' MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit From: sunlan@apache.org In-Reply-To: <157279573613.25471.9638114992416249601@gitbox.apache.org> References: <157279573613.25471.9638114992416249601@gitbox.apache.org> X-Git-Host: gitbox.apache.org X-Git-Repo: groovy X-Git-Refname: refs/heads/GROOVY_3_0_X X-Git-Reftype: branch X-Git-Rev: 1528aeace57fee2a3807ca62485db702354b3182 X-Git-NotificationType: diff X-Git-Multimail-Version: 1.5.dev Auto-Submitted: auto-generated Message-Id: <20191103154216.A96B4805F6@gitbox.apache.org> This is an automated email from the ASF dual-hosted git repository. sunlan pushed a commit to branch GROOVY_3_0_X in repository https://gitbox.apache.org/repos/asf/groovy.git commit 1528aeace57fee2a3807ca62485db702354b3182 Author: Daniel Sun AuthorDate: Sun Nov 3 22:49:34 2019 +0800 Minor refactoring: 'for' loop can be replaced with 'foreach' (cherry picked from commit d6765906874951e69647b1d42af98c8212e1f81a) --- .../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}]"+ ""); @@ -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 bb2214b..da4e4be 100644 --- a/src/main/java/org/codehaus/groovy/ast/tools/GenericsUtils.java +++ b/src/main/java/org/codehaus/groovy/ast/tools/GenericsUtils.java @@ -656,8 +656,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 constructors, List argumentList) { ConstructorNode lastMatch = null; - for (int i=0; i= 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 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 extends AbstractConcurrentMapB } else { Object arr [] = (Object[]) o; - for (int i = 0; i < arr.length; i++) { - Entry e = (Entry) arr[i]; + for (Object value : arr) { + Entry e = (Entry) value; if (e != null && e.isEqual(key, hash)) { return e.getValue(); } @@ -91,8 +91,8 @@ public abstract class AbstractConcurrentMap 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)) { return e; } @@ -129,8 +129,8 @@ public abstract class AbstractConcurrentMap 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 implements Iterable { */ public List values() { List result = new ArrayList(); - for (Iterator 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();