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
The following commit(s) were added to refs/heads/master by this push: new 4090a96f4e Trivial refactor: simplify code with `String.repeat()` 4090a96f4e is described below commit 4090a96f4ec0f9859ec8139bc5ab77bb49f7a86f Author: Daniel Sun <sun...@apache.org> AuthorDate: Sat Jun 14 23:55:06 2025 +0900 Trivial refactor: simplify code with `String.repeat()` --- src/main/java/groovy/lang/TracingInterceptor.java | 6 +----- .../java/org/apache/groovy/ast/tools/ClassNodeUtils.java | 4 +--- .../org/codehaus/groovy/classgen/asm/CallSiteWriter.java | 4 +--- .../org/codehaus/groovy/runtime/StringGroovyMethods.java | 13 +++---------- .../groovy/runtime/callsite/CallSiteGenerator.java | 5 ++--- src/main/java/org/codehaus/groovy/tools/Utilities.java | 16 ++++------------ .../main/groovy/groovy/console/ui/text/GroovyFilter.java | 4 +--- .../console/ui/text/StructuredSyntaxDocumentFilter.java | 4 +--- .../src/main/java/groovy/test/GroovyAssert.java | 2 +- 9 files changed, 15 insertions(+), 43 deletions(-) diff --git a/src/main/java/groovy/lang/TracingInterceptor.java b/src/main/java/groovy/lang/TracingInterceptor.java index 6bcb62b76e..e4a266ae34 100644 --- a/src/main/java/groovy/lang/TracingInterceptor.java +++ b/src/main/java/groovy/lang/TracingInterceptor.java @@ -87,11 +87,7 @@ public class TracingInterceptor implements Interceptor { return true; } private String indent(){ - StringBuilder result = new StringBuilder(); - for (int i=0; i<indent;i++){ - result.append(" "); - } - return result.toString(); + return " ".repeat(Math.max(0, indent)); } protected void write(Object object, String methodName, Object[] arguments, final String origin) { diff --git a/src/main/java/org/apache/groovy/ast/tools/ClassNodeUtils.java b/src/main/java/org/apache/groovy/ast/tools/ClassNodeUtils.java index e91bc8f651..b16fae4603 100644 --- a/src/main/java/org/apache/groovy/ast/tools/ClassNodeUtils.java +++ b/src/main/java/org/apache/groovy/ast/tools/ClassNodeUtils.java @@ -83,9 +83,7 @@ public class ClassNodeUtils { } StringBuilder sb = new StringBuilder(cn.getName().length() + (2 * dim)); sb.append(formatTypeName(cn)); - for (int i = 0; i < dim; i += 1) { - sb.append("[]"); - } + sb.append("[]".repeat(dim)); return sb.toString(); } return cNode.isGenericsPlaceHolder() ? cNode.getUnresolvedName() : cNode.getName(); diff --git a/src/main/java/org/codehaus/groovy/classgen/asm/CallSiteWriter.java b/src/main/java/org/codehaus/groovy/classgen/asm/CallSiteWriter.java index 374ee9ee5f..1ebf8d495a 100644 --- a/src/main/java/org/codehaus/groovy/classgen/asm/CallSiteWriter.java +++ b/src/main/java/org/codehaus/groovy/classgen/asm/CallSiteWriter.java @@ -78,9 +78,7 @@ public class CallSiteWriter { } if (sig[numberOfArguments] == null) { StringBuilder sb = new StringBuilder("("); - for (int i = 0; i != numberOfArguments; ++i) { - sb.append("Ljava/lang/Object;"); - } + sb.append("Ljava/lang/Object;".repeat(numberOfArguments)); sb.append(")[Ljava/lang/Object;"); sig[numberOfArguments] = sb.toString(); } diff --git a/src/main/java/org/codehaus/groovy/runtime/StringGroovyMethods.java b/src/main/java/org/codehaus/groovy/runtime/StringGroovyMethods.java index 419f61deac..1df73c29ad 100644 --- a/src/main/java/org/codehaus/groovy/runtime/StringGroovyMethods.java +++ b/src/main/java/org/codehaus/groovy/runtime/StringGroovyMethods.java @@ -1940,16 +1940,9 @@ public class StringGroovyMethods extends DefaultGroovyMethodsSupport { */ public static String multiply(final CharSequence self, final Number factor) { int size = factor.intValue(); - if (size == 0) - return ""; - else if (size < 0) { - throw new IllegalArgumentException("multiply() should be called with a number of 0 or greater not: " + size); - } - StringBuilder answer = new StringBuilder(self); - for (int i = 1; i < size; i++) { - answer.append(self); - } - return answer.toString(); + if (size == 0) return ""; + if (size < 0) throw new IllegalArgumentException("multiply() should be called with a number of 0 or greater not: " + size); + return String.valueOf(self).repeat(size); } /** diff --git a/src/main/java/org/codehaus/groovy/runtime/callsite/CallSiteGenerator.java b/src/main/java/org/codehaus/groovy/runtime/callsite/CallSiteGenerator.java index 4b9aac7654..2dc9f45fd6 100644 --- a/src/main/java/org/codehaus/groovy/runtime/callsite/CallSiteGenerator.java +++ b/src/main/java/org/codehaus/groovy/runtime/callsite/CallSiteGenerator.java @@ -123,11 +123,10 @@ public class CallSiteGenerator { public static void genCallWithFixedParams(ClassWriter cw, String name, final String superClass, CachedMethod cachedMethod, String receiverType ) { if (cachedMethod.getParamsCount() > 4) return; - StringBuilder pdescb = new StringBuilder(); final int pc = cachedMethod.getParamsCount(); - for (int i = 0; i != pc; ++i) pdescb.append("Ljava/lang/Object;"); + final String pdescb = "Ljava/lang/Object;".repeat(pc); - writeMethod(cw,name,pc+2,superClass,cachedMethod,receiverType,pdescb.toString(),false); + writeMethod(cw, name, pc + 2, superClass, cachedMethod, receiverType, pdescb, false); } public static void genCallXxxWithArray(ClassWriter cw, final String name, final String superClass, CachedMethod cachedMethod, String receiverType) { diff --git a/src/main/java/org/codehaus/groovy/tools/Utilities.java b/src/main/java/org/codehaus/groovy/tools/Utilities.java index b749d2bccb..1e6e7dad1b 100644 --- a/src/main/java/org/codehaus/groovy/tools/Utilities.java +++ b/src/main/java/org/codehaus/groovy/tools/Utilities.java @@ -18,6 +18,8 @@ */ package org.codehaus.groovy.tools; +import org.codehaus.groovy.runtime.StringGroovyMethods; + import java.util.Arrays; import java.util.HashSet; import java.util.Set; @@ -37,23 +39,13 @@ public abstract class Utilities /** * Returns a string made up of repetitions of the specified string. */ - - public static String repeatString( String pattern, int repeats ) - { - StringBuilder buffer = new StringBuilder( pattern.length() * repeats ); - for( int i = 0; i < repeats; i++ ) - { - buffer.append( pattern ); - } - - return new String( buffer ); + public static String repeatString(String pattern, int repeats) { + return StringGroovyMethods.multiply(pattern, repeats); } - /** * Returns the end-of-line marker. */ - public static String eol() { return eol; diff --git a/subprojects/groovy-console/src/main/groovy/groovy/console/ui/text/GroovyFilter.java b/subprojects/groovy-console/src/main/groovy/groovy/console/ui/text/GroovyFilter.java index fbe1e849ce..1c9140dfb2 100644 --- a/subprojects/groovy-console/src/main/groovy/groovy/console/ui/text/GroovyFilter.java +++ b/subprojects/groovy-console/src/main/groovy/groovy/console/ui/text/GroovyFilter.java @@ -220,9 +220,7 @@ public class GroovyFilter extends StructuredSyntaxDocumentFilter { buffer.delete(0, buffer.length()); buffer.append('\n'); if (index > -1) { - for (int i = 0; i < index + 4; i++) { - buffer.append(' '); - } + buffer.append(" ".repeat(index + 4)); } try { doc.insertString(offset, buffer.toString(), diff --git a/subprojects/groovy-console/src/main/groovy/groovy/console/ui/text/StructuredSyntaxDocumentFilter.java b/subprojects/groovy-console/src/main/groovy/groovy/console/ui/text/StructuredSyntaxDocumentFilter.java index 8438aa7625..a9511805a6 100644 --- a/subprojects/groovy-console/src/main/groovy/groovy/console/ui/text/StructuredSyntaxDocumentFilter.java +++ b/subprojects/groovy-console/src/main/groovy/groovy/console/ui/text/StructuredSyntaxDocumentFilter.java @@ -69,9 +69,7 @@ public class StructuredSyntaxDocumentFilter extends DocumentFilter { int checked = checking.indexOf('('); if (checked > -1) { StringBuilder msg = new StringBuilder("Only non-capturing groups allowed:\r\n" + regexp + "\r\n"); - for (int i = 0; i < checked; i++) { - msg.append(" "); - } + msg.append(" ".repeat(checked)); msg.append("^"); throw new IllegalArgumentException(msg.toString()); } diff --git a/subprojects/groovy-test/src/main/java/groovy/test/GroovyAssert.java b/subprojects/groovy-test/src/main/java/groovy/test/GroovyAssert.java index 3795683efe..d72b17b176 100644 --- a/subprojects/groovy-test/src/main/java/groovy/test/GroovyAssert.java +++ b/subprojects/groovy-test/src/main/java/groovy/test/GroovyAssert.java @@ -301,7 +301,7 @@ public class GroovyAssert { int level = 0; while (th != null) { if (level > 1) { - for (int i = 0; i < level - 1; i++) sb.append(" "); + sb.append(" ".repeat(level - 1)); } if (level > 0) sb.append("-> "); if (level > MAX_NESTED_EXCEPTIONS) {